Flask와 Tornado를 함께 사용하십니까?
그것은 부분적으로는 간단하고 부분적으로는 많은 확장 기능을 가지고 있기 때문에 나는 Flask 의 열렬한 팬입니다 . 그러나 Flask는 WSGI 환경에서 사용하기위한 것이며 WSGI는 비 차단이 아니므로 특정 종류의 응용 프로그램에 대해 Tornado 만큼 확장되지 않습니다 .
각각에는 함수를 호출하는 URL 디스패처가 있고 둘 다 Python 파일을 사용하기 때문에 (Django에서는 Python 파일을 실행하지 않지만 flask 또는 tornado에서는 실행합니다) 웹 사이트에 두 개의 개별 부분을 갖는 것이 합리적입니까? 한 부분은 Tornado로 비 차단 작업을 실행하고 다른 부분은 Flask로 작성 되었습니까?
이것이 좋은 생각이라면 Flask와 Tornado간에 쿠키 / 세션을 공유하는 방법은 무엇입니까? Flask가 자체 시스템을 사용하고 Tornado가 자체 시스템을 사용하므로 문제가 발생합니까?
나는 해결책의 50 %를 얻었다 고 생각하고, 쿠키는 아직 테스트되지 않았지만 이제 Tornado를 사용하여 Flask 응용 프로그램을로드하고 Tornado + Flask를 함께 혼합 할 수 있습니다. :)
첫 번째는 flasky.py 파일입니다. 플라스크 애플리케이션은 다음과 같습니다.
from flask import Flask
app = Flask(__name__)
@app.route('/flask')
def hello_world():
return 'This comes from Flask ^_^'
그리고 cyclone.py 파일은 플라스크 응용 프로그램과 토네이도 서버 + 간단한 토네이도 응용 프로그램을로드합니다. "cyclone"이라는 모듈이 없기를 바랍니다 ^ _ ^
from tornado.wsgi import WSGIContainer
from tornado.ioloop import IOLoop
from tornado.web import FallbackHandler, RequestHandler, Application
from flasky import app
class MainHandler(RequestHandler):
def get(self):
self.write("This message comes from Tornado ^_^")
tr = WSGIContainer(app)
application = Application([
(r"/tornado", MainHandler),
(r".*", FallbackHandler, dict(fallback=tr)),
])
if __name__ == "__main__":
application.listen(8000)
IOLoop.instance().start()
이것이 그들을 혼합하고 싶은 사람에게 도움이되기를 바랍니다 :)
1 과 2를 기반으로 결합되고 더 짧은 대답은 다음과 같습니다.
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(8000)
IOLoop.instance().start()
Please consider the warning about performance that has been mentioned on 2 , 3
ReferenceURL : https://stackoverflow.com/questions/8143141/using-flask-and-tornado-together
'programing' 카테고리의 다른 글
명부 (0) | 2021.01.14 |
---|---|
vim에서 X 개의 문자를 어떻게 잡아 당기나요? (0) | 2021.01.14 |
Chrome 개발자 도구> 리소스> 쿠키> http 열, 여기에 체크 표시가 HttpOnly 쿠키를 나타 냅니까? (0) | 2021.01.14 |
포착되지 않은 TypeError : 정의되지 않은 'createDocumentFragment'속성을 읽을 수 없습니다. (0) | 2021.01.14 |
Kotlin에서 사용하지 않는 매개 변수 표시 (0) | 2021.01.14 |