安装:pip install tornado
结果:D:\tornado代码\project>pip install tornado
Requirement already satisfied: tornado in c:\python36\lib\site-packages (5.0.2)
新版本可以pip安装
项目结构搭建:
config.py:
import os
BASE_DIRS = os.path.dirname(__file__)
#参数
options = {
'port':8888,
}
#配置
setting = {
'static_path':os.path.join(BASE_DIRS,'static'),
'template_path':os.path.join(BASE_DIRS,'templates'),
'debug':True,
# 'autoreload':True
}
application.py:
import tornado.web
import views
import config
class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r"/", views.IndexHandler),
(r"/home", views.HomeHandler),
(r"/pzl", views.PzlHandler,{'word1':'good','word2':'nice'}),
(r"/json1", views.JsonHandler),
(r"/json2", views.Json2Handler),
(r"/iserror", views.ErrorHandler),
tornado.web.url(r'/p',views.PHandler,{'word3':'good','word4':'nice'},name='p'),
#uri
(r'/liuyifei/(?P<p1>\w+)/(?P<p3>\w+)/(?P<p2>\w+)/',views.LiuyifeiHandler),
#get
(r'/zhangmanyu',views.ZhangmanyuHandler),
#post
(r'/postfile', views.PostFileHandler),
#request对象
(r'/zhuyin', views.ZhuyinHandler),
#上传文件
(r'/upfile', views.UpFileHandler),
]
super(Application,self).__init__(handlers,**config.setting)
server.py:
import tornado.ioloop
import tornado.httpserver
import config
from application import Application
if __name__ == "__main__":
print('启动...')
app = Application()
httpServer = tornado.httpserver.HTTPServer(app)
# httpServer.listen(8888)
#绑定端口
httpServer.bind(config.options['port'])
#开启5个子进程(默认1,若为None或者小于0,开启对应硬件的CPU核心数个子进程)
httpServer.start(1)
tornado.ioloop.IOLoop.current().start()
views/__init__.py
from .index import IndexHandler,PzlHandler,JsonHandler,Json2Handler,ErrorHandler,PHandler
from .home import HomeHandler,LiuyifeiHandler,ZhangmanyuHandler,PostFileHandler,ZhuyinHandler,UpFileHandler
views下写视图类
例如:
from tornado.web import RequestHandler
class IndexHandler(RequestHandler):
def get(self, *args, **kwargs):
url=self.reverse_url('p')
print(url)
self.write("<a href='%s'>GO another page</a>"%(url))
upfile文件下放上传的文件,templates下放模板,static下放静态文件/css,/js,/img
这就是一个tornado的一个项目的结构