在上一篇中我们了解了建起tonado的服务,为了方便我们更好的使用这里建议大家仿照django框架去构建。
首先建立static放置静态文件如js,jquery等
建立templates文件放入html
建立upfile文件放置上传文件
建立views文件我们在这个文件下写视图
建立server.py
import tornado.web import tornado.ioloop import tornado.httpserver import config #这里是配置文件 from application import Application #这里是建立的路由配置器 if __name__ == "__main__": app=Application() # application.listen(8888) httpServer=tornado.httpserver.HTTPServer(app) # httpServer.listen(8000) httpServer.bind(config.options["port"]) httpServer.start() tornado.ioloop.IOLoop.instance().start()
AI 代码解读
这里就把服务跟设计代码分离开了,我们就可以愉快的玩耍了
建立config这里面配置文件。
import os BASE_DIRS=os.path.dirname(__file__) #参数 options={ "port":7001, } #配置tornoto的静态文件路径 settings={ 'debug':True, 'static_path':os.path.join(BASE_DIRS,"static"), 'template_path':os.path.join(BASE_DIRS,'templates') }
AI 代码解读
接下来就构建appliccation
接下来就在views中构建简单的视图玩耍吧import tornado.web import views.index import config class Application(tornado.web.Application): def __init__(self): handlers=[ (r'/',views.index.IndexHandler), (r'/json1',views.index.json1), (r'/redirect',views.index.RedirectHandler), (r'/Errorstack',views.index.Errorindex), tornado.web.url(r'/wenge',views.index.wenge,{'word3':'h1','word4':'h2'},name='wengegood'), (r'/zgr/(\w+)/(\w+)/(\w+)',views.index.zgr), (r'/postfile',views.index.PostFileHandler) ]#这个里面是路由,根据自己的实际情况来 super(Application,self).__init__(handlers,**config.settings)#继承到
server.py的AplicationAI 代码解读
import tornado.web from tornado.web import RequestHandler #name找到所在路由 class IndexHandler(RequestHandler): def get(self,*args,**kwargs): url=self.reverse_url("wengegood") self.write("<a href='%s'>去另外一个界面</a>"%url) # self.write("gggggg") # # self.write("sunck is a good tornado") #json格式返回界面 class json1(RequestHandler): def get(self,*args,**kwargs): per={ 'name':'wenwen', 'age':20, 'sex':'男' } self.write(per) class RedirectHandler(RequestHandler): def get(self,*args,**kwargs): self.redirect("/")#重定向 #自定义错误 class Errorindex(RequestHandler): def write_error(self, status_code, **kwargs): if status_code==500: code=500 self.write('服务器出错') if status_code==404: code=404 self.write('资源不存在') self.set_status(code) def get(self,*args,**kwargs): flag=self.get_query_argument("flag") if flag=='0': self.send_error(404) self.write('hello tornoto') #后台传入参数 class wenge(RequestHandler): def initialize(self,word3,word4): self.word3=word3 self.word4=word4 def get(self, *args, **kwargs): print(self.word3,self.word4) self.write('wenge is a nice men') #url传入参数 class zgr(RequestHandler): def get(self,a,b,c,*args, **kwargs): print(a,b,c) self.write('zgr is a nice man') #post接收参数 class PostFileHandler(RequestHandler): def get(self, *args, **kwargs): a={'a':'sdfa'} self.render('1.html',a) def post(self,*args, **kwargs): name=self.get_body_argument('username') passwd=self.get_body_argument('passwd') hobbylist=self.get_body_arguments('hobby') print(name,passwd,hobbylist) self.write('姓名%s,密码%s,爱好%s'%(name,passwd,hobbylist))
AI 代码解读