V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nanfangzai
V2EX  ›  Flask

flask 如何验证 post 提交的 json 数据

  •  
  •   nanfangzai · 2020-07-01 09:38:16 +08:00 · 6111 次点击
    这是一个创建于 1603 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家在使用 flask 时,都是怎么验证 post 提交的 json 数据啊? 我现在都是用 if 来判断各个字段是否符合要求,但是显得代码太不好看了,大家有什么建议吗?

    16 条回复    2021-04-08 20:59:01 +08:00
    bolide2005
        1
    bolide2005  
       2020-07-01 09:41:21 +08:00   ❤️ 1
    https://github.com/guokr/swagger-py-codegen

    推荐用这个。

    先用 swagger 定义 path,再用工具生成 flask 代码,代码里自带各种字段的校验和检查,节省大量重复劳动
    altboy
        2
    altboy  
       2020-07-01 09:47:41 +08:00
    用 Flask-WTF?
    cassidyhere
        3
    cassidyhere  
       2020-07-01 09:53:42 +08:00
    Marshmallow/Pydantic/JSON Schema
    BBCCBB
        4
    BBCCBB  
       2020-07-01 09:58:11 +08:00
    Pydantic 是可以的.
    qdzzyb
        5
    qdzzyb  
       2020-07-01 10:08:29 +08:00
    Pydantic
    cigarzh
        6
    cigarzh  
       2020-07-01 10:19:53 +08:00
    pydantic 吧,别的 flask-restxx 之类的看起来都维护的不咋地
    nanfangzai
        7
    nanfangzai  
    OP
       2020-07-01 10:58:30 +08:00
    这个不是 fastapi 用的吗?
    nanfangzai
        8
    nanfangzai  
    OP
       2020-07-01 10:59:25 +08:00
    这个好像只能验证 form 表单~
    nanfangzai
        9
    nanfangzai  
    OP
       2020-07-01 11:02:58 +08:00
    @altboy 这个好像只能验证 form 表单~
    liuliu1992
        10
    liuliu1992  
       2020-07-01 11:16:39 +08:00
    可是使用 json-schema 做 json 验证
    xulolololololo
        11
    xulolololololo  
       2020-07-01 20:50:51 +08:00
    json-schema 你值得拥有
    ClericPy
        12
    ClericPy  
       2020-07-02 00:16:01 +08:00
    关键词
    JSON schema check
    flask validator

    反正我用 Fastapi 是真香...
    jesnridy
        13
    jesnridy  
       2020-07-02 10:32:59 +08:00
    dataclass 结合 dacite
    poxiaobbs
        14
    poxiaobbs  
       2020-09-04 17:27:39 +08:00
    Marshmallow
    Kobayashi
        15
    Kobayashi  
       2020-10-16 09:29:45 +08:00 via Android
    ila
        16
    ila  
       2021-04-08 20:59:01 +08:00
    @nanfangzai 也可以检验 get 请求,传入 request.args
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3123 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:30 · PVG 22:30 · LAX 06:30 · JFK 09:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.