FormPump

軟件截圖:
FormPump
軟件詳細信息:
版本: 0.1.7
上傳日期: 20 Feb 15
開發: Dave Mankoff
許可: 免費
人氣: 5

Rating: nan/5 (Total Votes: 0)

FormPump是一個Python的工具,與流行的模板引擎集成,讓您清晰地填入HTML表單。
該FormPump是寫盡HTML表單更容易一起工作的Python模板引擎擴展的集合。它直接訴求與填充值到你的投入,應用標籤到你的投入和快速的方式顯示錯誤消息的問題。它通過引入一組標籤/功能為您的模板創建一個直觀和自然的方式,是快速適應到現有代碼的形式元素做到這一點。
目前,FormPump支持的Jinja2。
介紹[Jinja2的]例如:
(在此自述所示的例子示於Jinja2的其它模板語言將有類似的用法)。
>>>從formpump進口JinjaPump
>>>從進口的Jinja2環境
>>> ENV =環境(擴展= [JinjaPump])
>>> TPL = env.from_string('''
... {%形式的“榜樣”級=“簡單形式”%}
... {%標籤'INP'}輸入一個值:{%ENDLABEL%}
... {%文本“INP”%}
... {%端部結構%}
...''')
>>>打印tpl.render()
<形式的行動=“”級=“簡單形式”的方法=“後”>
&NBSP; <標籤=“6GiCLEkUToekNy8xuN8AnT2esddU8MG8”>輸入一個值:
&NBSP;的

&NBSP;>>>打印tpl.render(form_vars = {'的例子“:{”INP“:123}})
<形式的行動=“”級=“簡單形式”的方法=“後”>
&NBSP; <標籤=“pnBP2IoFmfExTQdDZe44GKsFN6wrVOPu”>輸入一個值:
&NBSP;的

在上面的例子中,我們看到正在創建一個簡單的模板對象,它包含的一種形式。如果不帶任何參數渲染,它只是簡單地打印出來,沒有填寫信息的形式。當特殊的“form_vars”字典提供,它填補任何值就可以找到到形式,因為它產生的。
您可能還注意到已設置的長,醜陋的ID屬性。這些都是必需的,以便FormPump可以聯想到輸入標籤; FormPump使得它們自有其道理。你可以自由地重寫它們自己只需提供自己的身份證,並為你的元素屬性。 FormPump自動跟踪模板中的標籤和輸入的,並嘗試智能使它們相互關聯的,但只有當輸入不具有ID的指定,和標籤不具備的指定。
填寫表格
FormPump通過查找輸入值在指定的模板變量填寫表格。這個變量的默認form_vars但可以通過設置延長的values​​_dict_name屬性進行配置(用於Jinja2的,設置此對環境:env.values​​_dict_name)。
form_vars是字典的字典。頂層鍵形式上下文標識符,在下面更詳細說明。每種形式的上下文是指另一個字典是一組簡單的鍵 - 值對FormPump用來查找值的形式。鍵指的輸入名稱。這些值成為價值屬性*用於輸入,轉換為Unicode。
*注:對於像一個單選按鈕,其中的值是預定的投入,FormPump使用form_vars值來確定預選,如果其中任何一個單選按鈕。
形式Context的
FormPump可以讓你在你的模板不止一種形式。每個表單可以有重疊的輸入名稱。形式是由什麼FormPump調用形式方面消除歧義。上面的例子顯示了一個表格背景設置為“榜樣” - 這是字符串緊隨形式的關鍵字。該字符串必須是一個常量字符串,而不是一個變量或其他動態表情,(有辦法解決下面介紹)。
一個簡單的例子應該澄清它們的用法:
&NBSP;>>> TPL = env.from_string('''
... {%表“一份”%}
... {%文本“INP”%}
... {%端部結構%}
... {%“B”型%}
... {%文本“INP”%}
... {%端部結構%}
...''')
&NBSP;>>>打印tpl.render(form_vars = {'A​​':{'INP':'A'},'B':{'INP':'B'}})
<形式的行動=“”的方法=“後”>
&NBSP;的

<形式的行動=“”的方法=“後”>
&NBSP;的

形式的上下文實際上起到雙重作用。與具有單個頁面上的多個HTML表單的常見障礙在於可能難以確定哪個表單提交,如果這兩種形式具有相同的操作屬性。表格上下文可以提供幫助。
使用默認設置,如圖所示迄今為止,他們對輸出沒有直接的影響。但是,如果你在擴展設置form_name_key財產,FormPump會自動插入一個隱藏輸入包含表單上下文值正如其名,(對於Jinja2的,設置這樣的環境)。
&NBSP;>>> env.form_name_key ='__'
&NBSP;>>> TPL = env.from_string('''
... {%形式的“榜樣”%}
... {%端部結構%}
...''')
&NBSP;>>>打印tpl.render()
<形式的行動=“”的方法=“後”>的

然後提交的值可以用來在服務器上容易地識別所提交的形式。
但是,使用此功能帶來了一個更多的並發症!假設我們希望有一種形式重複多次在一個頁面上。隨著形式的每次重複,我們要改變那些預填的變量。例如,假設你有一個公司的人的名單,並且希望能夠編輯並提交更新的電話號碼每一個。因此,你要提交到服務器相同的窗體名稱,但_different形式的背景下,在填表的時候。進入form_ctx功能,它可以讓你改變的地方FormPump查找從飛值範圍內。該form_ctx功能,您還可以動態分配上下文名稱為您的形式,其中標準型功能不會:
&NBSP;>>> TPL = env.from_string('''
...


    ... {%的人在人們%}
    ...

  • ... {%形成“人”%}
    ... {%form_ctx“的人。%D”%的人['身份證']%}
    ... {%隱藏的“身份證”%}
    ... {%標籤“手機”%} {{人['名稱']}} {%ENDLABEL%}
    ... {%文本“手機”%}
    ... {%端部結構%}
    ......

  • ... {%ENDFOR%}
    ......

...''')
&NBSP;>>>人= {['身份證':1,'名':'比爾·B','電話':'555-123-4567'},
... {'身份證':2,'名':'克里斯C.','電話':'555-7654-321'}]
&NBSP;>>>打印tpl.render(人=人,
... form_vars =的dict([('的人。%D'%的人['身份證'],人)的人的人))

    &NBSP;

  • &NBSP; <形式的行動=“”的方法=“後”>的
    &NBSP;的
    &NBSP; <標籤=“weiOPnfowyRnF2tKTM9dGCVTUjmS7NZM”>比爾·B
    &NBSP;的
    &NBSP;
    &NBSP;

  • &NBSP;

  • &NBSP; <形式的行動=“”的方法=“後”>的
    &NBSP;的
    &NBSP; <標籤=“2EKjdwWOY1GdtCVK20dtZYAqBSs4Bo9i”>克里斯C.
    &NBSP;的
    &NBSP;
    &NBSP;

如果你看看上面,你會看到兩種形式,兩者具有相同形式的名稱,但在填補由於動態form_ctx不同的值。該form_ctx功能會影響到來後,所有的輸入。您可以在表單中指定多個form_ctx的,如果你想,每一個先發製人前面。但是請注意,他有可能成為文體混亂。
形式錯誤
形式錯誤的工作很像form_vars。您可以使用誤差函數在你的模板,以指示錯誤應該去,然後指定form_error含有任何字典和所有錯誤消息的嵌套字典,你想放英寸,它沒有找到在一個對應值的任何錯誤form_error查詢將被排除在最終輸出。
>>> TPL = env.from_string('''
... {%形式的“榜樣”%}
... {%錯誤“field_A”%}
... {%文本“field_A”%}
... {%錯誤“field_B”%}
... {%文本“field_B”%}
... {%端部結構%}
...''')
>>>打印tpl.render(form_vars = {“榜樣”:{“field_A”:“VAL A”,“field_B”:“VAL B”},
... form_errors = {“榜樣”:{“field_B”:“錯誤B”}})
<形式的行動=“”的方法=“後”>
&NBSP;的
&NBSP;
錯誤B

&NBSP; <輸入級=“錯誤”類型=“文本”名稱=“field_B”值=“VAL B”ID =“rP5RGqTnitBwA3oP8BZNcQ9oz3pFp0BC”/>

還要注意的發現錯誤的任何輸入將加入到他們的“錯誤”的CSS類。
默認情況下,錯誤消息輸出像上面&mdash;在與類“錯誤消息”一個div。 {%的誤差渲染=“定制”%}:您可以通過分配功能,其error_renderers字典,然後指定渲染屬性模板中指定自己的錯誤消息的風格。默認情況下,所有的錯誤使用“默認”的渲染,你可以自由地重寫

要求

  • 在Python中

顯影劑的其他軟件 Dave Mankoff

plocal
plocal

11 May 15

htmlmin
htmlmin

12 May 15

意見 FormPump

評論沒有發現
添加評論
打開圖片!