使用Tornado作为Django App的服务器

闲来无事,折腾折腾。 
老是听说tonado是个异步web框架和服务器,作为框架倒是了解到了,但是服务器一直不太懂。所以决定了解一下,既然可以做服务器,那就把自己的django app部署到这上边去。


    先是*Google*了一下,找到了一篇相关[博客](https://thinkfaster.co/2015/01/run-django-on-tornado/)。于是乎,将其改造改造,直接搬过来。原作是要用*websocket*这个东东,而我只是要App部署上去就OK。发现需要的代码是相当精简的。
  • 1
  • 2
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings")
import django.conf
import django.contrib.auth
import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application
import django.db

import tornado.httpserver
import tornado.ioloop
import tornado.web
import tornado.wsgi

from tornado.options import options, define

define(‘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就把他给跑起来了。

原文地址:https://www.cnblogs.com/ExMan/p/9506012.html

时间: 2024-10-21 00:51:19

使用Tornado作为Django App的服务器的相关文章

django (二) 第一个django app

第一个django app 我们来做一个投票网站. 他由两部分组成: 一个公共界面让用户去投票 一个管理界面,对投票增删改. 首先,你得创建一个新的项目,只需一行代码,django将自动为你完成这项任务. cd切换到你想存储你项目的路径下如C:\,输入: django-admin.py startproject mysite 这时,你的C:\下将多了一个文件夹mysite,打开后你会看到: mysite/ manage.py mysite/ __init__.py settings.py url

在 Django/Flask 开发服务器上使用 HTTPS

使用 Django 或 Flask 这种框架开发 web app 的时候一般都会用内建服务器开发和调试程序,等程序完成后再移交到生产环境部署.问题是这些内建服务器通常都不支持 HTTPS,我们想在开发的时候就能够使用和测试 HTTPS,不想还没测试就部署到生产环境,所以我们需要内建服务器能支持 HTTPS. 这个问题可以通过一个外部程序 stunnel 来解决,stunnel 的作用是通过 OpenSSL 库对 TCP 会话进行加密,建立起一个安全通道,保护没有加密功能或未加密的程序.其主要功能

Nginx+uWSGI+Django部署web服务器

目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py 编辑luffy/luffy/urls.py 运行并测试 uWSGI部署 测试运行uWSGI 使用uWSGI运行django项目 uWSGi热加载Djangoa项目 部署nginx nginx配置uwsgi和django django部署static文件 重新加载nginx进行测试 测试nginx

Django 初探--Django的开发服务器及创建数据库(笔记)

1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发. 在我们创建的Django_Pro项目的目录下,打开Dos命令行,启动内置服务器: manage.py runserver 默认情况下,使用命令manage.py runserver 启动内置服务器,默认使用本机8000端口,若需要使用其他端口(例如8001),则使用命令 manage.py runs

Django之HttpServer服务器分析详解

大家知道,软件的正向工程,是从软件的需求获取开始,大概经历需求分析,概要分析,领域分析,设计分析,详细设计,代码实现,部署,实施这几个步骤,最终交付给用户使用.而在某些时候,比如某个软件产品是用PHP开发的,因为某些原因,我们想移植到JAVA平台去.或者某公司看到某个软件的市场前景很好,想COPY它的主要功能,然后经过加工润色后推出一个具有相同功能,更好用户体验或更多功能的软件.或者单纯的以研究软件的结构.设计思想为目的.基于这些需求,我们需要逆向工程.正向工程是一个从过程导出结果的步骤,而逆向

【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(3-1)Android 和 Service 的交互之GET方式

好久没更新了,罪过罪过.最对不起的人莫过于那些支持和等待在下拙文的诸位,在此道一声抱歉.管窥之见,侥幸博得各位认同,给了我莫大的鼓励. 话休絮烦,文接前章. 到[一步一个脚印]Tomcat+MySQL为自己的APP打造服务器(2-3)Servlet连接MySQL数据库为止,我们已经将服务端的部分走通了:通过 Servlet 连接 MySQL ,分析业务需求进行响应的增删改查操作返回对应的处理结果.(上一篇结尾是说接下来该说POST请求了,但是在准备这篇文章时发现POST再推后一篇,等我们把 An

【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(2-2)Servlet的使用

在上一篇 [一步一个脚印]Tomcat+MySQL为自己的APP打造服务器(2-1)Servlet 的使用 中我们只是简单的对 Servlet 要做的任务.在服务器中的地位有了一个大概的了解,完成了在一个全新的 WorkSpace 中创建第一个 Dynamic Web Project ,并创建第一个 Servlet ,解决期间可能遇到的常见问题,还留了不少的内容重要内容没有完成,今天我们来继续解决这几个问题: 一.怎么能访问到一个Servlet & URL中各部分的含义 我们来回顾上一篇篇末时在

基于nginx部署app下载服务器

今天,公司推出一款手游,但是需要部署一个下载服务器,为了让用户通过互联网访问,或者扫码下载!于是需部署app下载服务器: 环境:nginx已部署好,基于虚拟主机 直接添加个虚拟主机就可以了:配置文件如下 server {       listen       8085;        #端口       server_name  localhost;   #服务名       root    d:/web/;  #显示的根索引目录       autoindex on;             

白手起家搭建django app

$django-admin.py startproject web2 $cd web2/ $python manage.py startapp blog $vim web2/settings.py 注意settings.py以下两个部分,首先要配置数据库,其次要在INSTALLED_APP里添加刚才新建的app DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2',