什么是蓝图
蓝图:用于实现单个应用的视图、模板、静态文件就是模块化处理的类。
为什么要用蓝图
- 随着业务代码的增加,把所有的代码都写进一个程序文件中是非常不合适的,这不仅仅会让代码阅读变得困难,而且会给后期维护带来麻烦。
- 因此需要让带吗模块化。根据具体不同的功能模块的实现,划分成不同的分类,降低功能模块之间的耦合度、python中的模块制作和导入就是基于实现功能模块的封装的需求。
- python中的米库奥华虽然能把代码拆分开,但不能解决路由映射的问题。
蓝图作用
- 将不同的功能模块化
- 构建大型应用
- 优化项目结构
- 增强可读性,易于维护
如何用蓝图实现模块化的应用
定义蓝图
app/home/__init__.py:
from flask import Blueprint
home = Blueprint("home", __name__)
import app.home.views
app/home/__init__.py:
from flask import Blueprint
admin = Blueprint("admin", __name__)
import app.admin.views
注册蓝图
app/__init__.py
from flask import Flask
app = Flask(__name__)
app.debug = True
from app.home import home as home_blueprint
from app.admin import admin as admin_blueprint
#注册蓝图
app.register_blueprint(home_blueprint)
app.register_blueprint(admin_blueprint, url_prefix="/admin")
调用蓝图
app/home/viwes.py
from . import home
@home.route("/")
def index():
return "this is home"
app/admin/viwes.py
from . import admin
@admin.route("/")
def index():
return "this is admin"
入口文件
manage.py
from app import app
if __name__ == "__main__":
app.run(host='0.0.0.0', port='8080')
简单项目结构
web
└── app
├── admin
│ ├── __init__.py #定义
│ └── views.py #调用
├── home
│ ├── __init__.py #定义
│ └── views.py #调用
├── __init__.py #注册
├── manage.py #入口文件
├── models.py
├── static
└── templates