>백엔드 개발 >파이썬 튜토리얼 >Python WSGI 응용 프로그램의 원리는 무엇입니까?

Python WSGI 응용 프로그램의 원리는 무엇입니까?

王林
王林앞으로
2023-05-19 13:25:131238검색

이 기사가 의존하는 python 환경은 다음과 같습니다: python环境为:

python WSGI Application原理是什么

什么是WSGI

WSGI也称之为web服务器通用网关接口,全称是web server gateway interface。它定义了在pythonweb服务器与web应用程序之间应该如何通信并且处理http请求和响应的一个标准,注意,它只是一个协议,或者说是规范、标准,你也可以不按这个标准来,就像我们上一篇文章所写的web服务器那样。

WSGI 也分为应用程序 和 服务器网关, 其中我们熟知的Flask就是属于应用程序,uWSGIwsgiref属于服务器网关。

个人感觉,WSGI避免了造轮子,事情让更擅长的人去做,写服务器的,那就写符合WSGI规范的服务器就好,如果是写应用端的,就写符合WSGI规范应用就好。不用在重复的写轮子。

除此之外,WSGI还能与传统web服务器对接,例如: nginxapache等进行交互。

python WSGI Application原理是什么

WSGI对应用程序规定了什么

WSGI中规定了其应用程序必须是一个可被调用的对象,通常来说,该对象是一个函数或者是一个类。 该对象必须接收2个参数,分别是environ字典 和 start_response函数,并且在对象结束前,应该调用start_response函数。而函数应该传参statusheaders,其中status应该定义响应状态码以及短语,headers应该定义响应头。

如果用代码来阐述的话,应该是这样来写的:

def application(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/plain')]
    start_response(status, headers)
    return [b'Hello, world!']

其中,application是一个可迭代的对象,接受了2个参数,一个是environ,其类型是字典,还是一个是start_response,其类型是函数,在application结束前,应该调用start_response函数,并且传入statusheaders值。

修改代码写出符合WSGI标准的web业务层

我们昨天写的代码,将返回一个Hello, Destined Person.,我们来看下,如果我们使用WSGI标准来写业务层,我们应该如何定义,并且如何调用WSGI服务器。

python WSGI Application原理是什么

上述,我们引入了一个符合WSGI的服务器: wsgiref.simple_server,我们仅需按照WSGI的标准来编写业务层,也就是上述的application即可。我们在定义状态码的时候,估计将其设置为299 OK,在设置请求头的时候,设置了一个Serverpdudo_web_sites

我们使用curl请求一下服务器。

python WSGI Application原理是什么

发现,哦,只要按照WSGI

Python WSGI 응용 프로그램의 원리는 무엇입니까🎜

WSGI란 무엇입니까

🎜WSGI 서버 범용 게이트웨이 인터페이스라고도 합니다. 전체 이름은 웹 서버 게이트웨이 인터페이스입니다. 이는 서버와 python 애플리케이션이 http 요청과 통신하고 처리하는 방법을 정의합니다. 이전 기사에서 작성한 서버처럼 이 표준을 따를 필요는 없습니다. 🎜🎜WSGI도 애플리케이션과 서버 게이트웨이로 구분됩니다. 그 중 잘 알려진 Flask는 애플리케이션인 uWSGI, 에 속합니다. wsgiref는 서버 게이트웨이에 속합니다. 🎜🎜개인적으로 <code>WSGI는 바퀴를 재발명하는 것을 피하고 작업을 더 잘하는 사람들이 할 수 있도록 합니다. 서버를 작성하는 경우 WSGI 사양을 준수하는 서버를 작성하면 됩니다. 애플리케이션을 작성하는 경우 WSGI 사양을 준수하는 애플리케이션을 작성하세요. 휠을 반복해서 쓸 필요가 없습니다. 🎜🎜또한 WSGInginx, apache와 같은 기존 서버와 연결할 수도 있습니다. 등 상호 작용합니다. 🎜🎜Python WSGI 응용 프로그램의 원리는 무엇입니까🎜

WSGI 애플리케이션 프로그램이 규정하는 것

🎜WSGI애플리케이션호출 가능한 객체여야 한다고 규정합니다. 일반적으로 객체는 함수입니다. 아니면 수업. 이 객체는 environ 사전과 start_response 함수라는 2개의 매개변수를 받아야 하며, start_response 함수는 객체가 끝나기 전에 호출되어야 합니다. 함수는 statusheaders 매개변수를 전달해야 하며, 여기서 status는 응답 상태 코드 및 구문과 headers를 정의해야 합니다. 응답 헤더를 정의해야 합니다. 🎜🎜코드로 설명한다면 다음과 같이 작성해야 합니다:🎜rrreee🎜그 중 application은 2개의 매개변수를 허용하는 반복 가능한 객체입니다. 하나는 environ code>이고, 해당 유형은 사전 또는 <code>start_response이고 해당 유형은 application이 끝나기 전에 start_response 함수를 호출해야 합니다. 상태헤더 값을 전달합니다. 🎜

WSGI 표준을 준수하는 웹 비즈니스 레이어를 작성하도록 코드 수정

🎜어제 작성한 코드는 Hello, Destined Person.을 반환합니다. 우리는 WSGI 표준을 사용하여 비즈니스 레이어를 작성하고, 어떻게 정의해야 하며 WSGI 서버를 호출하는 방법을 설명합니다. 🎜🎜Python WSGI 응용 프로그램의 원리는 무엇입니까🎜🎜위에서 우리는 WSGI: wsgiref.simple_server를 준수하는 서버를 도입했습니다. WSGI 표준에 따라 비즈니스 계층만 작성하면 됩니다. 위의 애플리케이션이면 충분합니다. 상태 코드를 정의할 때 아마도 299 OK로 설정했을 것입니다. 요청 헤더를 설정할 때 Serverpdudo_web_sites로 설정했습니다. 🎜🎜우리는 서버를 요청하기 위해 curl을 사용합니다. 🎜🎜파이썬 WSGI 응용 프로그램의 원리는 무엇입니까🎜🎜발견하세요, 오 , WSGI 사양에 따라 작성하면 간단한 서버를 쉽게 작성할 수 있습니다. 🎜

위 내용은 Python WSGI 응용 프로그램의 원리는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제