項目 01 項目簡介和基本頁面

項目 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到網頁
相關文章
相關標籤/搜索