Flask-蓝图学习

什么是蓝图

蓝图:用于实现单个应用的视图、模板、静态文件就是模块化处理的类。

 

为什么要用蓝图

  • 随着业务代码的增加,把所有的代码都写进一个程序文件中是非常不合适的,这不仅仅会让代码阅读变得困难,而且会给后期维护带来麻烦。
  • 因此需要让带吗模块化。根据具体不同的功能模块的实现,划分成不同的分类,降低功能模块之间的耦合度、python中的模块制作和导入就是基于实现功能模块的封装的需求。
  • python中的米库奥华虽然能把代码拆分开,但不能解决路由映射的问题。

 

蓝图作用

  1. 将不同的功能模块化
  2. 构建大型应用
  3. 优化项目结构
  4. 增强可读性,易于维护

 

如何用蓝图实现模块化的应用

定义蓝图

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

 

你可能感兴趣的:(Flask-蓝图学习)