使用类型注释解析sanic中的查询参数

sanicargs的Python项目详细描述


Build StatusLatest VersionPython Support

Sanicargs

分析Sanic中的查询参数 使用类型批注。

调查

请填写this survey 如果您使用的是Sanicargs,我们将收集反馈:-)

安装

使用pip安装

$ pip install sanicargs

使用量

使用parse_query_argsdecorator解析查询参数和类型转换 使用查询参数和路径参数 Sanic的路线或蓝图 就像在 example 下面:

importdatetimefromsanicimportSanic,responsefromsanicargsimportparse_query_argsapp=Sanic("test_sanic_app")@app.route("/me/<id>/birthdate",methods=['GET'])@parse_query_argsasyncdeftest_datetime(req,id:str,birthdate:datetime.datetime):returnresponse.json({'id':id,'birthdate':birthdate.isoformat()})if__name__=="__main__":app.run(host="0.0.0.0",port=8080,access_log=False,debug=False)

使用

$ curl 'http://0.0.0.0:8080/me/123/birthdate?birthdate=2017-10-30'

字段

  • strex: ?message=hello world
  • intex: ?age=100
  • boolex: ?missing=false
  • datetime.datetimeex: ?currentdate=2017-10-30T10:10:30 or 2017-10-30
  • datetime.dateex: ?birthdate=2017-10-30
  • list[str]ex: ?words=you,me,them,we

注意日期时间

对日期和日期时间进行分析时,没有时区信息为您提供 “原始日期时间”对象。请参阅上的注释 datetime.timestamp() 关于处理时区,如果您需要epoch格式的时间戳。

关于装饰工的重要注意事项

像往常一样,decorators序列在python中很重要。

您需要应用parse_query_argsdecorator作为第一个 执行,这意味着最接近def

request是必需的!

您应该始终将request作为函数中的第一个参数 使用parse_query_args的顺序。

注意requestarg可以重命名,甚至可以将类型注释为 只要是第一个参数。

历史记录

0.0.1(2017-01-09)

  • Git初始化

1.0.0(2017-01-12)

  • 添加了测试套件
  • 添加了路径参数类型转换

1.1.0(2018-03-01)

  • 请求可以重命名,甚至可以键入注释

1.2.0(2018-03-01)

  • 增加了对布尔参数的支持

1.3.0(2019-01-08)

  • @包装内部函数以保留args签名

1.4.0(2019-03-04)

  • 更新deps以允许sanic的最新版本

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

推荐PyPI第三方库


热门话题
java如何在jprogressbar上添加文本?   java生成30到32位之间的随机数   我想从我自己的服务器而不是java worldwind中的nasa服务器获取数据   jsp中带有外部java文件的html计数器   java如何找到运行Servlet的主机和端口   我怎么能看到数学。java中的cos方法计算平方根?   java这个docker run命令做什么?   java如何在将表单提交到servlet后将原始JSP保存在URL中?   如何在Java中访问Arraylist中的字典数据?   java JPA如果我有一个实体被用作复合键,那么级联是否也构成复合键的一部分?   连接Java:文件读取/添加到文件程序时未按预期工作(逻辑错误)   java从Android向PLC发送布尔值   java Get build。gradle文件作为一个。类文件   Youtube API V3 Java无需调用浏览器即可上传视频   java如何在Unittest中测试StackOverflower错误   实现方法中的java异常处理   java这个::instanceMethod在java8中用作方法参数有什么用途   java偶尔会获得javax。邮政使用javamail阅读gmail电子邮件时的FolderClosedException