前言
如果我們每個(gè)項(xiàng)目都把邏輯熙尉,視圖處理都放在app.py上,那維護(hù)起來(lái)將會(huì)是一個(gè)噩夢(mèng)盆色。
例子
項(xiàng)目結(jié)構(gòu)
app.py負(fù)責(zé)運(yùn)行項(xiàng)目
from view import app
if __name__ == '__main__':
app.run()
view.py負(fù)責(zé)處理視圖
from flask import Flask
import logic
app = Flask(__name__)
@app.route('/')
def home_page():
home_data = logic.get_home()
return home_data
@app.route('/books')
def books():
books_data = logic.get_books()
return books_data
@app.route('/book/<string:book_id>')
def book(book_id):
book_data = logic.get_book(book_id)
return book_data
@app.route('/students')
def students():
students_data = logic.get_students()
return students_data
@app.route('/student/<string:student_id>')
def student(student_id):
student_data = logic.get_student(student_id)
return student_data
導(dǎo)入的logic模塊是來(lái)自logic.py的煤禽。一個(gè)文件為一個(gè)模塊键兜。
def get_home():
"""
獲取圖書(shū)館主頁(yè)資料,一般是讀取數(shù)據(jù)庫(kù)或者緩存系統(tǒng)
"""
return 'data of home page'
def get_books():
"""
獲取圖書(shū)館所有書(shū)的列表映挂, 一般是讀取緩存系統(tǒng)
"""
return 'list of books basic info'
def get_book(book_id):
"""
獲取一本書(shū)的詳細(xì)信息泽篮,一般是讀數(shù)據(jù)庫(kù),如果數(shù)據(jù)比較熱門(mén)的話柑船,一般可以讀取緩存系統(tǒng)
"""
return 'detailed info of book : {}'.format(book_id)
def get_students():
"""
獲取學(xué)生列表帽撑,一般是讀取數(shù)據(jù)庫(kù)
"""
return 'list of students basic info'
def get_student(student_id):
"""
獲取某一個(gè)學(xué)生的詳細(xì)信息,一般是讀取數(shù)據(jù)庫(kù)
"""
return 'detailed info of student : {}'.format(student_id)