zoukankan      html  css  js  c++  java
  • Tornado项目基本架构

    项目模块基本架构如下:

      

    -------------application.py
    import tornado.web
    
    from views import index, login
    import config
    
    
    class Application(tornado.web.Application):
        def __init__(self):
            handlers = [
                (r"/", index.IndexHandler),
                (r"/sunck", index.SunckHandler, {"word1": "good", "word2": "nice"}),
                (r"/login", login.LoginHandler),
                (r"/json", index.JsonHandler),
                (r"/json2", index.JsonsHandler)
    
            ]
    
            super(Application, self).__init__(handlers, **config.settings)
            print(config.settings)
            # super(Application, self).__init__(handlers, autoreload=True)
    
    
    -------------config.py
    import os
    
    # 获取当前目录下的根目录
    BASE_DIR = os.path.dirname(__file__)
    
    # 参数
    options = {
        "port": 8000,
    
    }
    
    IMAGES_PATH = "./image/test"
    # 配置
    settings = {
    
        "static_path": os.path.join(BASE_DIR, "static"),
        "template_path": os.path.join(BASE_DIR, "templates"),
    
        # debug为True是调试模式,如果为False的是生产模式 和Django这点相同
        "debug": True,
    
        # 为True的特性:
        # 取消缓存编译的模板  compiled_template_cache = False
        # 取消缓存静态文件的hash值  static_hash_cache = False
        # 提供追踪信息  serve_traceback = True
        # 自动重启 autoreload=True
    
        # self.redirect  重定向
        # self.send_error(state_code=500)
        # self.write_error(state_code=500)
        # self.reverse_url()  反向解析
    
        # tornado.web.RequestHandler
          # 利用http协议向服务端传递参数
            # 提取url特定参数,get/post传递参数,既可以获取get请求也可以获取post请求,在http的报文头中增加自定义的参数
            # self.get_query_argument()  获取get请求时url中的参数
            # self.get_query_arguments()  获取get请求时url中的参数两个以上同名的返回值为一个list
          # request对象
          # tornado.httputil.HTTPFile对象
    }
    
    print("当前的根目录为")
    print(BASE_DIR)
    print("当前静态文件存储路径为")
    print(settings["static_path"])
    print("当前模板文件的存储路径为")
    print(settings["template_path"])
    
    
    -------------server.py
    import tornado.web
    
    import tornado.ioloop
    import tornado.httpserver
    
    import config
    from views import index
    from application import Application
    
    app = Application()
    
    
    if __name__ == '__main__':
        # 创建服务
        # app.listen(8080)
        # app.listen(config.options['port'])
    
        # 自己创建一个服务
        httpServer = tornado.httpserver.HTTPServer(app)
        # 给该服务绑定一个端口
        httpServer.bind(config.options['port'])
        # 开启一个进程
        httpServer.start(1)
        # 启动服务,并监听
        tornado.ioloop.IOLoop.current().start()
  • 相关阅读:
    CodeForces 219D Choosing Capital for Treeland (树形DP)
    POJ 3162 Walking Race (树的直径,单调队列)
    POJ 2152 Fire (树形DP,经典)
    POJ 1741 Tree (树的分治,树的重心)
    POJ 1655 Balancing Act (树的重心,常规)
    HDU 2196 Computer (树形DP)
    HDU 1520 Anniversary party (树形DP,入门)
    寒门子弟
    JQuery选择器(转)
    (四)Web应用开发---系统架构图
  • 原文地址:https://www.cnblogs.com/wangxiongbing/p/10932985.html
Copyright © 2011-2022 走看看