2016-03-21 60 views
0

我是一個noobie,我有複選框和一個下拉列表,我使用request.form.getlist(「」)檢索了這些值。如果複選框的值不存在下拉列表的值,我想繼續進一步操作。燒瓶中的驗證

try: 

    if drop not in check: 
     return render_template('index.html') 
except Exception: 
    return render_template('error.html') 

始終運行index.html的,即使降值出現在檢查, 卻不是因使用wtforms。 我應該如何驗證它?在此先感謝

+0

究竟是什麼'drop'和'check'?你有什麼樣的例外,希望它跳到「except」塊? – glibdud

+0

包含下拉列表和複選框值的變量,它只是在引發異常時彈出警告 – rey

回答

0

如果dropcheck是調用flask.Request.form.getlist()的直接結果,那麼它們都是列表。您的if drop not in check行詢問整個列表drop是否爲check列表的成員,這絕不是這種情況。如果drop只能有一個值,則使用get而不是getlist來獲取單個值。否則,請檢查您正在抓取的列表並從中選取一個值,以便對check進行測試。

這一切都假定dropcheck看起來像你期望他們看起來像。如果僅使用drop的單個值不會像您期望的那樣工作,請將其放入以顯示dropcheck的值,以便您可以看到它們的實際外觀。

+0

我在try塊中添加了其他功能,但它不適用於異常。 – rey

+0

@rey我不明白你的意思是「它不適用於異常」。 – glibdud

+0

而不是除了塊我添加其他try塊中返回error.html它的工作,但是當我刪除else並添加除了塊它返回視圖函數沒有返回響應。 – rey

0

使用wtforms與驗證,如:

if form.validate_on_submit(): 

形式的類將檢查驗證。

+0

'form.validate_on_submit()'涵蓋方法== POST和驗證 – ThiefMaster

+0

@ThiefMaster。對不起,我不知道。感謝您提供新的信息。 – JRazor