json api应该像“dict”和状态代码一样简单:)

django-raw-api的Python项目详细描述


django原始api

json api应该像dict和状态代码一样简单:)

你好,世界

fromraw_apiimportvalidate_json@validate_json({"name":str})defhello(request):name=request.json["name"]ifname=="world":return{"message":"too corny"},400return{"hello":name}

设置

  • 从pypi安装:pip install django-raw-api
  • raw_api.middleware中间件添加到MIDDLEWARE列表中

API

中间件

它添加lazyrequest.json属性并序列化原始响应,如 dict(data: dict, status: int)转换为json。

请求

  • request.json-解析的json
  • request.query-解析查询(仅在@validate_query之后)

响应

您可以只返回日期的dict,也可以添加状态代码

defjson_data(request):return{"hello":"world"}defwith_status(request):return{"message":"bad request"},400

认证

装饰符@user_required@staff_required类似于 @login_required@staff_member_required使用json输出而不是 重定向

fromraw_apiimportstaff_required@staff_requiredasyncdefhello(request):return{"admin":"zone"}

数据验证

您可以使用@validate_query@validate_json装饰符 以验证请求数据。他们用trafaret库来执行 验证。

fromraw_apiimportvalidate_json,validate_query@validate_json({"ids":[int],"hello?":str})asyncdeffoo(request):returnrequest.json@validate_query({"id":int})asyncdefbar(request):assertisinstance(id,int)returnrequest.query

测试

    python -m venv .venv
    source .venv/bin/activate
    pip install -Ur requirements-dev.txt
    python -m pytest tests

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中获取Path2D对象的坐标对?   javascript下载iFramePlayer视频   java intellij idea:定义的环境变量在maven pom中无法识别   批处理以调用Java主类   java SOAP TCP隧道/监视器替代方案   java更改文件中的特定字节   java将值插入HashBasedTable   web爬虫Java web爬虫静态URL   Java中逗号作为十进制分隔符的字符串格式   用eclipse导出可运行jar的java   控制台从java文件执行命令   在变量中使用多个类型的泛型Java通配符   java Sip INVITE错误并发送BYE消息   正则表达式Java:如何删除两个字符串之间匹配子字符串的第一个匹配项?