使用类型注释解析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如何在href中将struts2文本字段的值作为参数传递?   java检查对象属性是否为空的最佳方法是什么?   java通过Maven使用Junit类别运行Cucumber测试   java如何在selenium Webdriver(Mac)中使用Robot类上传多个文件?   如何用python绘制图形或将python转换为java和Matlab?   java Osgi捆绑包更新和ResourceBundle   java使用流api将流<@Nullable T>转换为流<@NonNull T>   java中EXCEL的平台无关连接字符串   JavaFX中的java表   java Jetty线程池和sun。HttpServer会话   JPA存储库bean的java Spring注入无法工作NullPointerException   java从另一个Kubernetes作业触发Kubernetes   我的java netbeans抽奖计划需要帮助吗   泛型中的java有界类型无法扩展另一个有界类型   如果混合使用全局构建和概要文件构建,java cxfcodegenplugin会生成错误代码   封装SQL平台之间差异的java策略?