Sanic框架请求与响应实例分析

  

本文实例讲述了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岁> {“名称”:“老张”接连,“年龄”:[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框架请求与响应实例分析