NO IMAGE

為了我們的檢視能夠方便的複用,我們有必要學習一下flask的插撥式檢視

首先我們需要從flask.view匯入MethodView類,該類能夠輕鬆的實現不同的HTTP方法,比如本例中的“GET”方法,當然我們也可以定義“POST”、“PUT”等方法。
然後我們定義一個IndexView類,定義“GET”方法的檢視函式get(),讓它返回我們想要的功能。(maple-master/forums/views.py)

from flask.views import MethodView
class IndexView(MethodView):
def get(self):
return "<h1>Hollo World</h1>"

然後我們使用藍圖註冊路由(maple-master/forums/urls.py)
這裡我們用了add_url_rule方法新增路由。

from flask import Blueprint
from .views import IndexView
site = Blueprint('forums', __name__)
site.add_url_rule('/', view_func=IndexView.as_view('index'))

最後註冊藍圖(maple-master/forums/_init_.py

from flask import Flask
from forums.urls import site
import os
def create_app(config):
templates = os.path.abspath(
os.path.join(os.path.dirname(__file__), os.pardir, 'templates'))
static = os.path.abspath(
os.path.join(os.path.dirname(__file__), os.pardir, 'static'))
app = Flask(__name__, template_folder=templates, static_folder=static)
app.config.from_object(config)
register(app)
return app
# 定義一個註冊函式
# url_prefix引數為url增加一個字首
def register(app):
app.register_blueprint(site, url_prefix='/site')

最後啟動服務(maple-master/runserver.py)

from forums import create_app
app = create_app('config')
if __name__ == '__main__':
app.run(debug=True)

瀏覽器開啟http:127.0.0.1:5000/site 就能看到“Hollo World”了

專案結構:
maple-master
│ config.py
│ runserver.py

├─forums
│ │ urls.py
│ │ views.py
│ │ init.py
│ │
│ └─pycache
│ urls.cpython-35.pyc
│ views.cpython-35.pyc
init.cpython-35.pyc

├─static
├─templates
└─pycache
config.cpython-35.pyc
runserver.cpython-35.pyc