tornado框架基本知识总结
目录
- tornado
- 快速上手
tornado
Tornado是使用Python编写的一个强大的、可扩展的Web服务器。它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中。
我们现在所知道的Tornado是基于Bret Taylor和其他人员为FriendFeed所开发的网络服务框架,当FriendFeed被Facebook收购后得以开源。不同于那些最多只能达到10,000个并发连接的传统网络服务器,Tornado在设计之初就考虑到了性能因素,旨在解决C10K问题,这样的设计使得其成为一个拥有非常高性能的框架。此外,它还拥有处理安全性、用户验证、社交网络以及与外部服务(如数据库和网站API)进行异步交互的工具。
Tornado实现二级域名的函数,是要传入两个参数,一个是二级域名名称,一个是url映射规则。
其中url映射规则,也就是一个列表,可以直接放在各个app的url文件,
而二级域名名称,则放在系统下配置文件里,每个二级域名,对应url文件路径,和url文件下的列表变量为一个组合存放
url 文件
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from .Controllers import Account
from .Controllers import Home
patterns = [
(r"/Login.html$", Account.LoginHandler),
(r"/CheckCode.html$", Account.CheckCodeHandler),
(r"/Register.html$", Account.RegisterHandler),
(r"/Index.html$", Home.IndexHandler),
(r"/Detail-(?P<product_id>\d+)-(?P<price_id>\d+).html$", Home.DetailHandler),
(r"/Pay.html$", Home.PayHandler),
(r"/", Home.IndexHandler),
]
config配置文件
routes = (
{
'host_pattern': 'www.tornado.com',
'route_path': 'UIWeb.Urls',
'route_name': 'patterns'
},
{
'host_pattern': 'admin.tornado.com',
'route_path': 'UIAdmin.Urls',
'route_name': 'patterns'},
{
'host_pattern': 'dealer.tornado.com',
'route_path': 'UIDealer.Urls',
'route_name': 'patterns'
}
)
做好上面的路由分离后,最后一步就是定一个 url
的加载方法,在程序启动时,将这些 url
规则加载。
url 加载函数
def load_routes(app):
for route in Config.routes:
host_pattern = route['host_pattern']
route_path = route['route_path']
route_name = route['route_name']
m = __import__(route_path, fromlist=True)
pattern_list = getattr(m, route_name)
app.add_handlers(host_pattern, pattern_list)
启动程序
application = tornado.web.Application([
#(r"/index", home.IndexHandler),
], **settings)
load_routes(application)
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
https://www.cnblogs.com/yezigege/p/13447319.html#%E9%80%9A%E8%BF%87%E5%AE%9A%E5%88%B6%E4%BA%8C%E7%BA%A7%E5%9F%9F%E5%90%8D%E5%88%B6%E4%BD%9Cdjango%E5%BC%8F%E5%88%86%E5%B1%82%E8%B7%AF%E7%94%B1 :来源一 来源二