我是新手,我有这样一种形式:
<form class="form" action={{ url_for('/login') }} method="POST">
<input type="text" name="usename" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<button type="submit" id="login-button">Login</button>
</form>
我使用request.form()
和request.form.get()
来获取提交的值,但结果始终相同**&#34; GET / HTTP / 1.1&#34; 200 - **
@app.route('/login',methods=['POST','GET'])
def login():
name=request.form['usename']
password=request.form['password']
form_data=request.form.get('usename')
print name,password,form_data
return render_template('login.html')
我尝试访问/login
,它显示错误请求。但是当它被修改为这样时,它没问题。它似乎是我的request
语句块是不正确的。
@app.route('/login',methods=['POST','GET'])
def login():
return render_template('login.html')
答案 0 :(得分:0)
这是因为表单操作改变了
action="{{url_for('index')}}"
您的表单实际上并未发布,您尝试获取值。并且不要忘记添加名为index
的视图函数,或者您可以使用login
而不是index
答案 1 :(得分:0)
我猜你是想从login.html
文件中获取这些值。如果是这样你必须使用这样的东西
@app.route('/login',methods = ['GET','POST'])
def login():
if request.method =='POST':
name=request.form['usename']
password=request.form['password']
form_data=request.form.get('usename')
print name,password,form_data
return render_template('login.html')
答案 2 :(得分:0)
尝试离开动作字段emtpy。
<form class="form" action="" method="POST">
将其留空将发布到下载表单的同一位置,我想这是你的用例。
[1] Is it a good practice to use an empty URL for a HTML form's action attribute? (action="")