本文实例讲述了Sanic框架请求与响应。分享给大家供大家参考,具体如下:
前面介绍了Sanic框架的路,由这里接着介绍Sanic框架的请求与响应。
Sanic是一个类似瓶的Python 3.5 + Web服务器,它的写入速度非常快。除了瓶之外,Sanic还支持异步请求处理程序。这意味着你可以使用Python 3.5中新的闪亮的异步/等待语法,使你的代码非阻塞和快速。
<强>前言强>:<强> >强,如果需要学习Sanic,请先下载
当一个端点收到一个HTTP请求时,路由功能被传递到一个请求对象。以下变量可以作为请求对象的属性访问:
-
<李> <>强json 强>:json数据李>
@app.route (“/post_data”、方法=[" POST "]) 异步def post_data(请求): #将打印传递过来的JSON数据 打印(request.json) 返回文本(“好的!”) >之前
-
<李> <>强参数强>:查询字符串变量。查询字符串是类似于URL的部分<代码> & # 63;name=laozhang&=20岁> 代码。如果URL被解析,那么args字典将如下所示:<代码>{“名称”:“老张”接连,“年龄”:[20]}代码> 李>
<李> <>强raw_args 强>:在许多情况下,我们需要获取压缩程度低的字典中的url参数。对于之前的<代码> url # 63; name=laozhang&年龄=20 代码>,<代码> raw_args> 代码字典将如下所示:<代码>{“名称”:“老张”接连,“年龄”:20}代码> 李>
<李> <强>文件强>:文件对象字典,具有名称,正文和类型的文件列表李>
@app.route (“/post_file_data”、方法=[" POST "]) 异步def post_file_data(请求): 信息=request.files.get(“文件”) 打印(info.name) 打印(info.type) 打印(info.body) 返回文本(“好的!”) >之前
-
<李> 强> <强>形式:表单数据,形成字典将如下所示:<代码> {" name ":[“老张”接连]}代码> 李>
@app.route (“/post_form_data”、方法=[" POST "]) 异步def post_form_data(请求): name=request.form.get(“名称”) 返回文本(“好的!”) >之前
-
<李> <>强身体强>:原始数据,无论内容类型如何,该属性都允许检索请求的原始数据。<代码> 代码>类字节型李>
<李> <>强头强>:获取请求表头的不区分大小写的字典。<代码> dict> 代码类型李>
<李> <>强ip 强>:ip地址,<代码> str> 代码类型李>
<李> <强> >强港:端口,<代码> str> 代码类型李>
<李> <>强套接字强>:请求者的IP地址和端口,(IP地址,端口)。<代码>元组代码>类型李>
<李> <>强应用强>:对处理请求的Sanic应用程序对象的引用。李>
@appr.route ("/get_app_info”) 异步def get_app_info(请求): 打印(request.app.config) 返回文本(“好的!”) >之前
-
<李> 强>:<强> url请求的完整的url,如:李>
<李> 强>:<强>方案获取与请求关联的URL方案:<代码> http 代码>或<代码> https 代码> 李>
<李> <强>主机强>:获取与请求关联的主机李>
<李> <>强路径强>:获取请求的路径,如:<代码>/get_app_info 代码> 李>
<李> <>强query_string 强>:获取查询的字符串,如:<代码>名称=zhangsan> 代码或者为一个空白字符串李>
<李> <>强uri_template 强>:获取匹配路由处理程序的模板,如:<代码>//& lt; id> 代码> 李>
<李> 强> <强>标记:授权标头的值李>
当我们访问一个请求,并传入相关参数时,如下的请求:
@app.route ("/get_info”) 异步def get_info(请求): print (request.args.get(“名字”)) 打印(request.args.getlist(“名字”) 返回文本(“好的!”) >之前当我们传入一个<代码> 代码>名称为<代码>老张代码>时,接连在上面有提到,args字典将会是<代码>{“名称”:“老张”接连> 代码,所以,访问上面的路由,将会打印如下结果:
老张
接连(“老张”接连)
引用>
使用<代码> sanic.response 代码>模块中的函数来创建响应
<强>纯文本:强>
从sanic。响应导入文本 @app.route(“/文本”) 异步def get_text(请求): 返回文本(“文本响应!”)Sanic框架请求与响应实例分析