python - 无法从 html 表单获取任何 POST
问题描述
我有一个无法POST
从html
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([])
解决方案
您的输入类型字段缺少value属性。这就是您没有收到输入的原因。
推荐阅读
- c# - 将 32bpp 转换为 8bpp UWP
- python - 在 python 3.8 中理解平台库输出的歧义
- python - 根据字符串中定义的条件填充新列
- android - Android Kotlin coroutines not working as I expected
- java - 在 lambda、方法引用和具有 Function<> 返回值的方法之间进行选择时要考虑的显着差异
- django - Django OneToOneField 通过在 save() 之后返回 None 来失去关系
- flutter - URI 的目标不存在:'package:google_fonts/google_fonts.dart'
- python - 将文件排列到numpy数组中
- python - ValueError:无法将输入数组从形状 (22640,32) 广播到形状 (22639,32)
- elasticsearch - ElasticSearch DSL 查询不适用于特定字段