使用Tornado作為Django App的伺服器

來源:互聯網
上載者:User

標籤:proc   ber   sso   instance   zed   import   server   服務   func   

閑來無事,折騰折騰。 
老是聽說tonado是個非同步web架構和伺服器,作為架構倒是瞭解到了,但是伺服器一直不太懂。所以決定瞭解一下,既然可以做伺服器,那就把自己的django app部署到這上邊去。

    先是*Google*了一下,找到了一篇相關[部落格](https://thinkfaster.co/2015/01/run-django-on-tornado/)。於是乎,將其改造改造,直接搬過來。原作是要用*websocket*這個東東,而我只是要App部署上去就OK。發現需要的代碼是相當精簡的。
  • 1
  • 2
import osos.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings")import django.confimport django.contrib.authimport django.core.handlers.wsgifrom django.core.wsgi import get_wsgi_applicationimport django.dbimport tornado.httpserverimport tornado.ioloopimport tornado.webimport tornado.wsgifrom tornado.options import options, definedefine(‘port‘, type=int, default=8080)class HelloHandler(tornado.web.RequestHandler):    def get(self):        self.write(‘Hello from tornado‘)def main():    wsgi_app = tornado.wsgi.WSGIContainer(get_wsgi_application())    tornado_app = tornado.web.Application(        [            (r‘/hello-tornado*‘, HelloHandler),            (r‘.*‘, tornado.web.FallbackHandler, dict(fallback=wsgi_app)),        ])    server = tornado.httpserver.HTTPServer(tornado_app)    server.listen(options.port, address=‘192.168.1.59‘)    tornado.ioloop.IOLoop.instance().start()if __name__ == ‘__main__‘:    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

有一些改動,在WSGIContainer中,原作使用的是:

    wsgi_app = tornado.wsgi.WSGIContainer(      django.core.handlers.wsgi.WSGIHandler())
  • 1
  • 2

然後自己用就報錯了The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don’t make non-lazy gettext calls at import time我勒個去。 
最後發現得用

from django.core.wsgi import get_wsgi_application
  • 1

get_wsgi_application替代。 
哈哈,OK,python tonado_main.py就把他給跑起來了。

使用Tornado作為Django App的伺服器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.