文档章节

采用Tornado作为Web Server 运行第三方Web框架

从前
 从前
发布于 2015/01/15 10:48
字数 311
阅读 668
收藏 7

    部门内部的所有Web应用,restful服务等都是采用Python开发的,主要用到了bottle框架和django框架。

    这两个框架都是采用的自身的Web Server运行的,在高负载的情况下响应比较慢。改为Tornado作为Web Server来承载应用。

1. Bottle应用

from bottle import run
import argparse
if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("-H", "--host", help="Host to bind the API server on", default="localhost", action="store", required=False)
    parser.add_argument("-p", "--port", help="Port to bind the API server on", default=8090, action="store", required=False)
    args = parser.parse_args()

    run(server="tornado",host=args.host, port=args.port)



2. Django应用

#!/usr/bin/env python

from tornado.options import options, define, parse_command_line
import django.core.handlers.wsgi
import tornado.httpserver
import tornado.ioloop
import tornado.web
import tornado.wsgi
import os
import sys
define('port', type=int, default=8000)

def main():
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
    parse_command_line()
    wsgi_app = tornado.wsgi.WSGIContainer(django.core.handlers.wsgi.WSGIHandler())
    tornado_app = tornado.web.Application([
      (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': os.path.join(os.path.join(os.getcwd()),"static")}),
      ('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
    ])
    server = tornado.httpserver.HTTPServer(tornado_app)
    server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == '__main__':
    main()



Django应用较为复杂,主要有几个点需要注意

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
Django的配置,不可缺少

(r'/static/(.*)', tornado.web.StaticFileHandler, {'path': os.path.join(os.path.join(os.getcwd()),"static")}),
用于配置静态文件的路由,不可缺少,同时必须将该route放在
('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
前面

© 著作权归作者所有

上一篇: YUM使用
从前

从前

粉丝 36
博文 75
码字总数 29813
作品 1
成都
程序员
私信 提问
加载中

评论(2)

从前
从前 博主

引用来自“以马内利”的评论

楼主,公司专门做python开发的?
米有,内部应用,运维之类的
h
halker123
楼主,公司专门做python开发的?
知乎技术方案初探

知乎是国内很少的使用Python开发的一个网站,也很多值得我们学习的地方,从知乎让我们也可以了解到一些新的WEB技术。 一、Python框架 知乎目前使用的是Tornado 框架。Tornado 全称Tornado W...

wanghhao
2015/09/07
89
0
黑马程序员Tornado

Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架 特点: 作为Web框架,是一个轻量级的Web框架,类似于另一个Python web框架Web.py,其拥有异步非阻塞IO的处...

sinat_23880167
2017/12/27
0
0
Tornado 2.0 发布,Python编写的Web服务器

Tornado web server 是使用Python编写出來的一个极轻量级、高可伸缩性和非阻塞IO的Web服务器软件,著名的 Friendfeed 网站就是使用它搭建的。 Tornado 跟其他主流的Web服务器框架(主要是Pyt...

红薯
2011/06/23
5K
7
Python Web框架Tornado运行和部署

运行和部署 因为Tornado内置了自己的HTTPServer,运行和部署它与其他Python web框架不太一样。你需要写一个函数来启动服务,而不是配置一个WSGI容器来运行你的应用: 配置你的操作系统或者进程...

lalamina
2016/04/14
3.6K
4
Python Web应用选型实例

简单项目,需要提供Http服务和简单页面交互的,采用 bottle + jinjia2 + html ,如果需要稳定高效的服务,使用tornado作为 http Server. 需要较为完善功能的Web功能,采用 Django + jinjia2...

从前
2014/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

idea下springboot 项目在static目录下添加文件不生效

idea下springboot 项目在static目录下添加文件不生效 问题描述 是这样子的,我的项目目录结构如下: 我在static目录下,创建了index.html和aaaa.jpg这两个文件。然后,启动服务访问 http://l...

wotrd
昨天
5
0
k8s1.14 一、环境

1. 4台虚拟机 (CentOS Linux release 7.2.1511 (Core) ) 192.168.130.211 master 192.168.130.212 node1 192.168.130.213 node2 192.168.130.214 node3 2. 设置服务器hostname 2.1 设置本机......

ThomasCheng
昨天
4
0
盖茨:如果我现在开创一家公司 将会专注于AI

新浪科技讯,北京时间 6 月 26 日凌晨消息,微软联合创始人比尔·盖茨(Bill Gates)在周一接受采访时表示,如果他今天从哈佛大学辍学并开创一家新公司,那么这家公司将会专注于人工智能(A...

linuxCool
昨天
1
0
聊聊feign的Retryer

序 本文主要研究一下feign的Retryer Retryer feign-core-10.2.3-sources.jar!/feign/Retryer.java public interface Retryer extends Cloneable { /** * if retry is permitted, retur......

go4it
昨天
14
0
HyperLogLog简介

  (1)HyperLogLog简介      在Redis 在 2.8.9 版本才添加了 HyperLogLog,HyperLogLog算法是用于基数统计的算法,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个...

SEOwhywhy
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部