首页 > 解决方案 > 无法从 html 表单获取任何 POST

问题描述

我有一个无法POSThtml
Log 获取的问题:

127.0.0.1 - - [01/Apr/2021 00:51:25] "←[37mGET /main?user=adasd&pass=123123 HTTP/1.1←[0m" 200 -
127.0.0.1 - - [01/Apr/2021 00:51:25] "←[36mGET /static/css/index.css HTTP/1.1←[0m" 304 -
127.0.0.1 - - [01/Apr/2021 00:51:25] "←[36mGET /static/js/index.js HTTP/1.1←[0m" 304 -

我已经在stackoverflow&上搜索过google,但仍然没有找到解决方案,
Flask 没有接收到 HTML POST 的数据 Flask:
无法接收 HTML 表单 POST 数据
Flask:MySql 教程,只需查看 html

index.html中的 POST

...
<form action="{{url_for('enter')}}" methods="POST" autocomplete="off">
        <p>Username:</p><input type="text" name='user'><br>
        <p>Password:</p><input type="password" name='pass'><br><br><br>
        <input type='submit' value='Enter'>
        <input type='button' onclick="location.href='{{url_for('register')}}'" value='Register Here'>
    </form>
...

主文件

@app.route('/',methods=['GET','POST'])
def index():
    return render_template('index.html')

@app.route("/main",methods=["POST","GET"])
def enter():
    app.logger.info("main "+request.method) # return GET
    if request.method == "POST":
        username = request.form.get("user")
        password = request.form.get("pass")
        app.logger.info(username) # returns None
        app.logger.info(password) # returns None
        return render_template('enter.html')
    if request.method == "GET":
        return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True,host='localhost', port=5000)

我如何在 Powershell 上 运行我的代码python main.py
注意:ImmutableMultiDict([])

标签: pythonflask

解决方案


您的输入类型字段缺少value属性。这就是您没有收到输入的原因。


推荐阅读