我是烧瓶的新手,我有这样一种形式:
<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()
来获取提交的值,但结果始终相同**"get/HTTP/1.1"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')
这是因为表单操作更改了
action="{{url_for('index')}}"
您的表单实际上并没有发布,您正在尝试获取值。不要忘记添加一个名为index
的视图函数,也可以使用login
代替index
我猜您正试图从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')
尝试离开操作字段emtpy。
<form class="form" action="" method="POST">
将其留空将张贴到表单下载的同一位置,我想这就是您在这里的用例。
[1] 对HTML表单使用空URL是一种好的做法吗';s的动作属性?(动作=")