python flask 嵌套后数据

dkqlctbz  于 2023-01-19  发布在  Python
关注(0)|答案(2)|浏览(120)

我试图建立一种方式来处理大量的张贴选项,例如。

my_posted_data = {"item": "value", "item_options":{"a":2, "b":2} }

这可能是来自API环境中的其他地方,在那里我不能控制环境,现在它是模拟的,我将通过请求库发布它;并移动到服务器端,我尝试从应用程序的路由/视图中获取此信息。request.form被读取到一个变量(form)中,该变量被传递到task_manager队列。在此任务中,我将尝试执行以下操作:

options = form.get("item_options", None)

options总是以NoneType结束。为什么不选择{"a": 2, "b": 2}的dict(like)值呢?我想我做错了,但是在这一点上我无法精确定位。
基于我提供的这幅不完整的图片,我如何以最有效的方式使用Flask请求来发布和检索嵌套值?
编辑:我不得不走一条不同的路,使用JSON数据,因为我意识到对于最好的情况来说,表单更多的是用于用户从html页面输入,这需要一种不同的方法。

nwsw7zdq

nwsw7zdq1#

通过在WTForms中使用带字段封闭的Flask-WTF,可以轻松处理嵌套的post数据。

nbnkbykc

nbnkbykc2#

class ListField(Field):
def process_formdata(self, valuelist):
    self.data = valuelist

class ItemsForm(Form):
    a = StringField()
    b = StringField()

class TestForm(FlaskForm):
    item = StringField()
    product = ListField(FormField(ItemsForm))

由于FormField添加了默认前缀,因此JSON将如下所示

{
    "item": "value",
    "product": {
        "product-a": "string",
        "product-b": "string",
    }
}

相关问题