Python学习笔记-WSGI接口

这篇具有很好参考价值的文章主要介绍了Python学习笔记-WSGI接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Web服务器网关接口Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。

是CGI和FastCGI的升级版本。

1. WSGI工作原理

Python学习笔记-WSGI接口,Python,python,学习,笔记当服

  • 客户端发起一个请求
  • 服务器通过wsgi接口交给后台的APPLICATION处理
  • APPLICATION处理完之后返回给服务器

 2. 定义WSGI接口

接口格式:

def application(environ, start_response):
    start_response("200 OK",[("Content-Type", "text/html")])
    return [b"Hello World."]

定义一个函数,响应请求:

  • environ:包含http所有请求的字典对象
  • start_response:一个发送Http响应的函数,可以简单的理解为头部信息。
  • return:返回的主体信息。

Python中可以使用wsgiref模块定义WSGI接口。

from wsgiref.simple_server import make_server

def app(environ, start_response):
    """application method"""

    start_response("200 OK", [("Content-Type", "text/html;charset=utf-8")])

    return [response.encode("utf-8")]

3. 运行WSGI服务

environ参数中有一些参数可以具体的识别,

wsgiref模块的官方文档网址如下:The WSGI Reference Library (telecommunity.com)

可以通过“PATH_INFO”识别请求的信息。

environ["PATH_INFO"]

然后根据不同的路径进行响应:

def app(environ, start_response):
    """application method"""

    start_response("200 OK", [("Content-Type", "text/html;charset=utf-8")])

    print("-"*20)
    print(environ["PATH_INFO"])
    print("-"*20)

    file_name = environ["PATH_INFO"][1:] or "index.html"
    file_path = f"""{ROOT_DIR}/zero.wcgiserver/views/{file_name}"""
    print(f"FilePath : \r\n{file_path}")

    try:
        file = open(file_path, "rb")
    except:
        response = "File is not found."

    else:
        filedata = file.read()
        file.close()
        response = filedata.decode("utf-8")

    print("-"*20)
    print(f"Response : \r\n{response}")
    return [response.encode("utf-8")]

4.运行结果

Python学习笔记-WSGI接口,Python,python,学习,笔记

Python学习笔记-WSGI接口,Python,python,学习,笔记

 Python学习笔记-WSGI接口,Python,python,学习,笔记

 文章来源地址https://www.toymoban.com/news/detail-599762.html

 

到了这里,关于Python学习笔记-WSGI接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python学习笔记(十八)————python包相关

    目录 (1)python包作用 (2)自定义python包  (3)导入自定义包 方式一: 方式二:  (4)导入第三方包 ①pip安装 ②PyCharm安装 (1)python包作用 基于 Python 模块,我们可以在编写代码的时候,导入许多外部代码来丰富功能。 但是,如果 Python 的模块太多了 ,就可能造成一定

    2024年02月13日
    浏览(56)
  • Python爬虫学习笔记(一)---Python入门

    pycharm的安装可以自行去搜索教程。 pycharm的使用需要注意: 1、venv文件夹是这个项目的虚拟环境文件,应与代码文件分开。 2、如果运行没有,最后一行是“进程已结束,退出代码为0”,如果最后不是0,那么,就说明运行出错。 print括号中使用单引号或者双引号都是可以的。

    2024年01月17日
    浏览(31)
  • 从0开始python学习-50.pytest之多接口用例封装

    1. yaml用例设计--一个yaml中多个用例,且互相存在关联关系 2. 设计多接口用例读取封装 3. 将读取caseinfo的方法进行list格式的兼容设计

    2024年01月21日
    浏览(35)
  • Python学习笔记_基础篇(一)_初识python

    Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 Python和其他语言的对比: C 和 Python、Java、C#等 C语言: 代码编译得到 机器码 ,机器码在

    2024年02月13日
    浏览(44)
  • 深度学习常用的python库学习笔记

    Numpy中文网 ndarray 数组和标量之间的运算 基本的索引和切片 数学和统计方法 线性代数 Pandas中文网 Matplotlib中文网 Pillow Pillow(PIL)入门教程(非常详细)

    2024年02月13日
    浏览(42)
  • 《Python深度学习基于Pytorch》学习笔记

    有需要这本书的pdf资源的可以联系我~ 这本书不是偏向于非常详细的教你很多函数怎么用,更多的是交个基本使用,主要是后面的深度学习相关的内容。 1.Numpy提供两种基本的对象:ndarray(n维数组对象)(用于储存多维数据)和ufunc(通用函数对象,用于处理不同的数据)。

    2024年02月09日
    浏览(41)
  • Python学习笔记(持续更新)

    目录 一、基础语法 1.Print()函数  2.变量的定义和使用 3.整数类型  4.浮点类型 5.布尔类型 6.字符串类型 7.数据类型转换 8.注释 9.input()函数 10.算术运算符 11.赋值运算符 12.比较运算符 13.布尔运算符 14.逻辑运算符 15.运算符的优先级 16.对象的布尔值 二、结构 1.分支结构 2.ra

    2024年02月10日
    浏览(40)
  • Python学习笔记—基本语法

    1、一般代码第一行会有#!/usr/bin/python3 这句注释是告诉操作系统执行该脚本时,调用/usr/bin目录下的Python 解释器。 在windows 下可以不写第一行注释 2、多行注释’’’和”””,用法类似verilog中的/**/ 如 ’’’ 第一行注释 第二行注释 ‘’‘ 3、多行语句表示 一般最好是一行

    2024年02月07日
    浏览(42)
  • Python学习笔记--容器类型

    本文摘自朱雷老师所著《Python工匠》一书内容,作为笔记予以记录。 列表、元组、字典、集合是Python中4中内置容器类型,是Python语言中最为重要的组成部分,在《Python工匠》第三章容器类型中做了重要知识点的介绍,并引申出了对象的可变性、可哈希性等诸多基础概念,在

    2024年01月25日
    浏览(41)
  • 【python学习笔记——列表】

    列表是写在方括号 [] 之间、用逗号分隔开的元素列表。 空列表 list=[] 非空列表 列表定义时例如list=[‘csdn’, ‘is’ ,‘good’ ,2023],直接给列表内赋值 列表名[start:stop:step],前闭后开,即取索引为start到索引为stop-step的元素,step默认为1。 1、从左到右,索引从 0 开始,第二个

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包