Python中Flask Blueprint的使用方法和最佳实践
D:\soft\python36\python.exe E:/code/Python/wbu_wechat/run.py
Traceback (most recent call last):
File "E:/code/Python/wbu_wechat/run.py", line 2, in <module>
from main import main
File "E:\code\Python\wbu_wechat\main\__init__.py", line 1, in <module>
from blueprint import Blueprint
File "D:\soft\python36\lib\site-packages\blueprint\__init__.py", line 1, in <module>
from ConfigParser import ConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
使用的是 python3 报上面的错 搜了一下 貌似是 ConfigParser 这个改名字了 求各位大佬指应该怎么弄
Python中Flask Blueprint的使用方法和最佳实践
6 回复
哪里跟 flask 有关系了
1. 你为什么装了个 https://pypi.python.org/pypi/blueprint
2. from flask import Blueprint
Flask Blueprint是组织大型Flask应用的核心工具。简单说,它能把应用拆成多个模块,每个模块有自己的路由、模板和静态文件,最后再组装起来。
基本使用方法:
# auth/__init__.py
from flask import Blueprint
auth_bp = Blueprint('auth', __name__, url_prefix='/auth')
@auth_bp.route('/login')
def login():
return 'Login page'
@auth_bp.route('/logout')
def logout():
return 'Logout page'
# main app.py
from flask import Flask
from auth import auth_bp
app = Flask(__name__)
app.register_blueprint(auth_bp)
if __name__ == '__main__':
app.run()
现在 /auth/login 和 /auth/logout 就能正常访问了。
最佳实践:
- 按功能模块划分:比如
auth_bp处理认证,api_bp处理API,admin_bp处理后台 - 使用工厂模式:在
create_app()函数里注册所有蓝图 - 资源隔离:每个蓝图可以有自己的模板文件夹和静态文件夹
- 命名规范:蓝图对象名和注册名保持一致,比如
auth_bp = Blueprint('auth', __name__)
工厂模式示例:
def create_app():
app = Flask(__name__)
from .auth import auth_bp
from .api import api_bp
app.register_blueprint(auth_bp)
app.register_blueprint(api_bp, url_prefix='/api/v1')
return app
目录结构建议:
myapp/
├── app.py
├── auth/
│ ├── __init__.py # 创建auth_bp
│ ├── routes.py
│ └── templates/ # auth专用的模板
├── api/
│ ├── __init__.py # 创建api_bp
│ └── routes.py
└── templates/ # 全局模板
关键点:
- 蓝图不是独立应用,需要注册到主app才生效
url_prefix让同一模块的路由有统一前缀- 蓝图之间完全独立,避免直接相互调用
一句话总结:用蓝图按功能拆分应用,工厂模式统一管理。
代码不全
谢谢大佬的确是您说的。。。
谢谢大佬 上面那位大佬已经帮忙解决了
十分感谢大佬

