TypeError:无法损坏的类型:Flask形式中的“set”

2024-06-07 13:07:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从Flask中的表单获取数据:

app.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”应该返回数组,因为它们是dynamically input fields

错误:

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方面的经验,我正在学习,如果可能,请简化回答

先谢谢你


Tags: inpyformenvappflaskhomerequest
1条回答
网友
1楼 · 发布于 2024-06-07 13:07:08

好的,我关注的是一个大问题,但问题太简单了,我没有意识到:用()替换所有[]。见下文

如果您[],它将假定为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')

相关问题 更多 >

    热门问题