前言
如果我们每个项目都把逻辑,视图处理都放在app.py上,那维护起来将会是一个噩梦。
例子
项目结构
app.py负责运行项目
from view import app
if __name__ == '__main__':
app.run()
view.py负责处理视图
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
导入的logic模块是来自logic.py的。一个文件为一个模块。
def get_home():
"""
获取图书馆主页资料,一般是读取数据库或者缓存系统
"""
return 'data of home page'
def get_books():
"""
获取图书馆所有书的列表, 一般是读取缓存系统
"""
return 'list of books basic info'
def get_book(book_id):
"""
获取一本书的详细信息,一般是读数据库,如果数据比较热门的话,一般可以读取缓存系统
"""
return 'detailed info of book : {}'.format(book_id)
def get_students():
"""
获取学生列表,一般是读取数据库
"""
return 'list of students basic info'
def get_student(student_id):
"""
获取某一个学生的详细信息,一般是读取数据库
"""
return 'detailed info of student : {}'.format(student_id)