programing

토네이도 웹 서버와 함께 장고를 어떻게 사용합니까?

instargram 2023. 8. 15. 09:45
반응형

토네이도 웹 서버와 함께 장고를 어떻게 사용합니까?

토네이도 웹 서버에서 장고를 어떻게 사용합니까?

매우 간단합니다(특히 장고 1.4).

1 - 장고 프로젝트(및 앱)를 빌드하고 제대로 작동하는지 확인합니다.

2- 루트 폴더에 새 python 파일 생성(사용한 곳과 동일한 dir)django-admin.py startproject)

3- 그런 다음 아래 코드를 복사하고 편집합니다.os.environ['DJANGO_SETTINGS_MODULE']줄을 긋고 새 .py 파일에 붙여넣습니다.

import os
import tornado.httpserver
import tornado.ioloop
import tornado.wsgi
import sys
import django.core.handlers.wsgi
#sys.path.append('/home/lawgon/') # path to your project ( if you have it in another dir).


def main():
    os.environ['DJANGO_SETTINGS_MODULE'] = 'myProject.settings' # path to your settings module
    application = django.core.handlers.wsgi.WSGIHandler()
    container = tornado.wsgi.WSGIContainer(application)
    http_server = tornado.httpserver.HTTPServer(container)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()

장고 1.6+는 다음과 같아야 합니다.

import os
import tornado.httpserver
import tornado.ioloop
import tornado.wsgi
from django.core.wsgi import get_wsgi_application

def main():
    os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' # path to your settings module
    application = get_wsgi_application()
    container = tornado.wsgi.WSGIContainer(application)
    http_server = tornado.httpserver.HTTPServer(container)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()

업데이트:

Tornado 웹 서버를 사용하여 장고와 함께 잘 실행하는 방법을 보여주는 최소 작업 데모를 만들었습니다.

https://github.com/tamasgal/django-tornado

원본 게시물:

한 마디만 하겠습니다.WSGI 애플리케이션 워크플로우가 1.6에서 1.7로 변경되었습니다.가져오기를 교체해야 합니다.

import django.core.handlers.wsgi

와 함께

from django.core.wsgi import get_wsgi_application

애플리케이션 초기화 변경

application = django.core.handlers.wsgi.WSGIHandler()

로.

application = get_wsgi_application()

이것은 모아이야드 야기의 답변에서 수정된 코드입니다.

import os
import tornado.httpserver
import tornado.ioloop
import tornado.wsgi
import sys
import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application
#sys.path.append('/home/lawgon/') # path to your project ( if you have it in another dir).


def main():
    os.environ['DJANGO_SETTINGS_MODULE'] = 'myProject.settings' # path to your settings module
    application = django.core.handlers.wsgi.WSGIHandler()
    application = get_wsgi_application()
    container = tornado.wsgi.WSGIContainer(application)
    http_server = tornado.httpserver.HTTPServer(container)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":
    main()

토네이도-프록시라는 프로젝트가 있는데 도움이 프로젝트는 여러분을 도울 것입니다.하지만 는 당신이 Nginx를 사용하는 것을 추천하고 싶습니다.이제 Nginx 구성에서 proxy_pass를 사용하여 다음과 같이 호출할 수 있습니다.

location /comet {
  proxy_pass http://localhost:8081;
}

location / {
  proxy_pass http://localhost:8080;
}

실제로 당신은 장고와 WSGI를 사용하여 일부 생산 준비 웹 서버를 연결할 것입니다.이 데모에서는 다양한 URL 접두사를 제공하는 하나의 파이썬 모듈(https://github.com/bdarnell/django-tornado-demo 에서 Tornado(및 웹 서버)와 장고를 나란히 실행하는 방법을 보여줍니다.하지만 토네이도는 장고로 향하는 모든 요청을 처리하는 것을 차단할 것입니다.

언급URL : https://stackoverflow.com/questions/2534603/how-use-django-with-tornado-web-server

반응형