項目 01 項目簡介和基本頁面html
app.pypython
import os.path import tornado.ioloop import tornado.options import tornado.web from tornado.options import define,options #導入包 from handlers import main #導入handlers目錄下的main.py define('port',default='8000',help='Listening port',type=int) #定義如何接收傳進來的東西 class Application(tornado.web.Application):#引入Application類,重寫方法,這樣作的好處在於能夠自定義,添加另外一些功能 def __init__(self): handlers = [ ('/',main.IndexHandler), #定義main路由 ('/explore', main.ExploreHandler), #定義explore路由 ('/post/(?P<post_id>[0-9]+)', main.PostHandler),#定義post的路由,利用了正則捕獲 ] #額外指定handlers settings = dict( debug = True, #自動保存並調用 template_path = 'templates', #模板文件目錄 static_path = 'static' #靜態文件目錄 ) #額外指定settings super(Application,self).__init__(handlers,**settings) #用super方法將父類的init方法從新執行一遍,而後將handlers和settings傳進去,完成初始化 application = Application() #Application的實例化 if __name__ == '__main__': #增長main判斷 tornado.options.parse_command_line() application.listen(options.port)#監聽路徑 print("Server start on port {}".format(str(options.port))) #提示跑的時候所在的端口 tornado.ioloop.IOLoop.current().start()#執行ioloop
用python pakpackage建立handlers目錄,在該目錄放方全部的handler文件web
handlers/main.pyapp
import tornado.web #導入包 class IndexHandler(tornado.web.RequestHandler): #index路由 """ Home page for user,photo feeds 主頁----用戶,照片提要 """ def get(self,*arg,**kwargs):#重寫get self.render('index.html') #打開index.html網頁 class ExploreHandler(tornado.web.RequestHandler): #explore路由 """ Explore page,photo of other users 瀏覽頁面和其餘用戶的照片 """ def get(self,*arg,**kwargs): self.render('explore.html')#打開explore.html class PostHandler(tornado.web.RequestHandler):#post路由 """ Single photo page and maybe 單獨的照片頁 """ def get(self,*arg,**kwargs): self.render('post.html',post_id = kwargs['post_id']) #根據正則輸入的內容,接收到kwargs(關鍵字),打開相應的圖片
建立一個模板包templatestornado
templates/base.htmloop
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{% block title %}Tornado Title {% end %}</title>#自定義標題 </head> <body> {% block content %} base content {% end %} #自定義body </body> </html>
templates/index.htmlpost
{% extends 'base.html' %} #繼承base.html {% block title %} index page {% end %} #重寫title {% block content %} index content {% end %} #重寫body
templates/explore.htmlspa
{% extends 'base.html' %} {% block title %} explore page {% end %} {% block content %} explore content {% end %}
templates/post.htmldebug
{% extends 'base.html' %} {% block title %} post page {% end %} {% block content %} post of {{ post_id }} content {% end %}#獲取post_id並write到網頁