运行此程序时,输出“调用了Get方法”
为什么是html代码1.不运行2.返回get请求(默认)
并在输入数据时不返回发布请求? html似乎根本没有运行。
这是HTML文件中具有输入内容的部分:
<div>
<h2>Welcome</h2>
<form action="{{ url_for('login') }}" method="POST">
<input type="text" id="user" name="user" placeholder="Please enter username">
<button>Submit</button>
</form>
</div>
这是相关的.PY文件的一部分:
@app.route('/', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return "Get method was called"
else:
user = request.form.get('user')
return redirect(url_for('home'))
return render_template("login.html", user = user)
我是python的新手,所以我不知道该如何开始寻找错误。
答案 0 :(得分:0)
它不起作用,因为需要路由和函数来调用html表单。否则,该表单将永远不会被调用。第二条路线需要一个新的html文件。 该代码应显示为:
from flask import Flask, render_template, request, url_for
app = Flask(__name__, template_folder="./templates")
@app.route('/login')
def login():
return render_template("login.html")
@app.route('/home', methods=['GET', 'POST'])
def home():
if request.method == 'GET':
return "Get method was called"
else:
user = request.form.get('user')
return render_template("home.html", user = user)
login.html:
<form action="{{ url_for('home') }}" method="post">
<input type="text" id="user" name="user" placeholder="Please enter username">
<button>Submit</button>
</form>
home.html:
<h2 style='color:blueviolet;'>User: {{user}}</h2>