flask无法获取表单提交的值



我是烧瓶的新手,我有这样一种形式:

<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的动作属性?(动作=")

最新更新