WSGI 앱은 기본적으로 일부 입력을 수신하고 응답을 반환하는 기능이며, WSGI 앱을 제공하는 데 실제로 pserve
이 필요하지 않습니다. 이는 .ini 파일에서 애플리케이션을 어셈블하는 래퍼와 비슷합니다.
는 피라미드 문서에서
Creating Your First Pyramid Application 장에서 살펴 유무 :
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
def hello_world(request):
return Response('Hello %(name)s!' % request.matchdict)
if __name__ == '__main__':
config = Configurator()
config.add_route('hello', '/hello/{name}')
config.add_view(hello_world, route_name='hello')
app = config.make_wsgi_app()
server = make_server('0.0.0.0', 8080, app)
server.serve_forever()
마지막 두 줄이 포트에서 수신 서버를 만들 수를 8080
이제, 난이도 문제는 serve_forever
호출이 때문이다 차단, Ctrl - 을 입력하고 스크립트를 중지 할 때까지 프로그램이 해당 줄에서 중지됩니다. 이렇게하면 "원격 장치를 제어하는 네트워크 프로토콜을 구동"하고 동시에 웹 페이지를 제공하는 프로그램을 만드는 것이 중요하지 않습니다 (Node.js와 같은 다른 이벤트 기반 플랫폼과는 달리). 동일한 프로세스 내의 다른 포트에서 수신 대기하는 두 개의 서버가 있음).
이 문제에 대한 가능한 해결책 중 하나는 별도의 스레드에서 웹 서버를 실행하는 것입니다.
별도의 스레드가 어려운 것처럼 보입니다. ini 파일의 모든 것이 Configurator()의 기능을 통해 제어 될 수 있습니까? – AlanObject
글쎄, 스레드를 시작하는 것은 실제로 어렵지 않습니다. "호스트 응용 프로그램 개체"에 대한 동시 액세스는 일부 트릭이 필요할 수도 있습니다. – Sergey
Configurator()와 관련하여 .ini - 구성자는 Pyramid 앱 *을 구성 할 수있는 모든 것을 가지고 있지만 Paste는 .ini 파일을 사용하여 피라미드 앱이 아닐 수도있는 WSGI 앱 스택을 어셈블 할 수 있습니다. Pyramid 앱, Django 앱 및 Flask 앱을 함께 실행할 수 있습니다. – Sergey