web开发框架tornado

匿名 (未验证) 提交于 2019-12-02 23:40:02
在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()
在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"])
在appication.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)
在 index.py中存放和路由有关的首页视图集import tornado.web import json import os import base64   class IndexHandler(tornado.web.RequestHandler):     def get(self):         self.write("hello world")   class SunckHandler(tornado.web.RequestHandler):     # 获取路由中的参数,并传给http请求方式,进行处理     def initialize(self, word1, word2):         self.word1 = word1         self.word2 = word2      def get(self):         print(self.word1, self.word2)         self.write("sunck....")   class JsonHandler(tornado.web.RequestHandler):     def get(self):         per = {             "name": "张三",             "age": 23,             "classes": "初二(1)班",         }         # 将Python数据类型转换为字符串         json_str = json.dumps(per)         self.set_header("Content-Type","Application/json")          self.write(json_str)   class JsonsHandler(tornado.web.RequestHandler):     def get(self):         per = {             "name": "张三",             "age": 23,             "classes": "初二(1)班",             "height": 78,         }         self.write(per)   # 重定向到首页 class RedirectHandler(tornado.web.RequestHandler):     def get(self):         self.redirect("/")         self.write("redirect......")

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!