python - TypeError: unhashable type: 'set' in Flask Form
问题描述
我正在尝试从 Flask 中的表单中获取数据:
应用程序.py
@app.route('/newProjectCreation/', methods=['GET', 'POST'])
def newProjectCreation():
try:
if request.method == 'POST':
# Data Fetch from Models Form
name = request.form['modelName']
modelDescription = request.form['modelDescription']
inputType = request.form.getlist['inputType[]']
outputType = request.form.getlist['outputType[]']
model = request.files['model']
modelLanguage = request.form['modelLanguage']
HTML
这是一个简单的表单(不是 Flask-WTF 表单),字段“ inputType ”和“ outputType ”应该返回数组,因为它们是动态输入字段。
错误:
Traceback (most recent call last):
File "/home/adiagarwal/cad/flaskapp-docker/flaskapp/app.py", line 106, in newProjectCreation
inputType = request.form.getlist['inputType[]']
TypeError: 'method' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/app.py", line 2464, in __call__
return self.wsgi_app(environ, start_response)
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/app.py", line 2450, in wsgi_app
response = self.handle_exception(e)
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/app.py", line 1867, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/home/adiagarwal/cad/env/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/adiagarwal/cad/flaskapp-docker/flaskapp/app.py", line 129, in newProjectCreation
return {{e}}
TypeError: unhashable type: 'set'
我没有js方面的经验,我正在学习,如果可能的话,请简化响应。
先感谢您。
解决方案
好的,我专注于一个大问题,但问题是如此简单以至于我没有意识到:全部替换[]
为()
. 见下文。
如果您[]
假设为dict
并且您正在返回列表或集合。
@app.route('/newProjectCreation/', methods=['GET', 'POST'])
def newProjectCreation():
try:
if request.method == 'POST':
# Data Fetch from Models Form
name = request.form('modelName')
modelDescription = request.form('modelDescription')
inputType = request.form.getlist('inputType[]')
outputType = request.form.getlist('outputType[]')
model = request.files('model')
modelLanguage = request.form('modelLanguage')
推荐阅读
- python - 具有大量零的数据集的建模思路
- excel - 我可以在 vlookup 中使用动态表数组吗?
- python - 如何在 Flask-SQLAlchemy 中为两个相同的结构表分页?
- redux - Redux Saga - 为什么 yield all 不等待 put 操作完成后再继续
- python - pygame中定义的变量抛出错误
- python - 从特定频道抓取 YouTube 视频并进行搜索?
- excel - 从网站中删除某个字符串的中间和结尾的空格
- android - Android/Kotlin,如何减少此代码的重复部分
- android - Android Studio 4.0 模拟器黑屏
- javascript - 如何确保 Bootstrap 模态仅将高度从向下更改为向上?