tornado学习(一)项目搭建

安装: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

扫描二维码关注公众号,回复: 1803207 查看本文章
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的一个项目的结构

猜你喜欢

转载自blog.csdn.net/pzl_pzl/article/details/80573226