2017-06-03 274 views
-1

我在HTML中有一個非常簡單的提交按鈕,但它不起作用。最簡單的按鈕不起作用

main_page.html

<form class="main_page" method="POST" action="."> 
    <div class="form-row"> 
     <input type="submit" name="invoer" value="Invoeren"/> 
    </div> 
</form> 

flask_app.py

from flask import Flask, render_template, request 

app = Flask(__name__) 
app.config["DEBUG"] = True 

@app.route("/", methods=["GET", "POST"]) 

def main(): 
    if request.method == "GET": 
     return render_template("main_page.html") 

    if request.form["invoer"] == "POST": 
     return render_template("main_page.html") 

當我按一下按鈕,它表明我:

------ -------------------------------------------------- -------------------------------------------------- ------------------------- - https://i.gyazo.com/65bb8c9fa02d007a8ed8d3d465412e4f.png


我已經犯了這樣的一個按鈕之前,但當時它的工作,也許我做了一些不同的東西。我該怎麼辦?

+1

1.你看過日誌的時候,和2.是否真的是你的HTML?這顯然是壞的。 – jonrsharpe

+0

1.是的,我已經這樣做了,但它給了我這個https://pastebin.com/pZE0KY3E,我不知道爲什麼以及它意味着什麼。 2. HTML只是完整html文件的一部分,我添加了複製時錯過的''''。爲什麼downvote .... – Jip1912

+0

把[mcve] *放在問題*中。 – jonrsharpe

回答

1

錯誤顯示ValueError: View function did not return a response,這意味着當您單擊HTML中的提交按鈕時,您的POST沒有返回任何對模板的響應。 Chagne代碼flask_app.py到:

from flask import Flask, render_template, request 

app = Flask(__name__) 
app.config["DEBUG"] = True 

@app.route("/", methods=["GET", "POST"]) 

def main(): 
    if request.method == "GET": 
     return render_template("main_page.html") 

    if request.method == "POST": # change code here 
     return render_template("main_page.html") 

這將使得它的工作原理,但是,它會返回一樣的模板。

+0

這就是我需要的!謝謝:) – Jip1912

+0

@ Jip1912如果是解決方案,請標記爲接受答案,謝謝:) –