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 就能正常访问了。

最佳实践:

  1. 按功能模块划分:比如 auth_bp 处理认证,api_bp 处理API,admin_bp 处理后台
  2. 使用工厂模式:在 create_app() 函数里注册所有蓝图
  3. 资源隔离:每个蓝图可以有自己的模板文件夹和静态文件夹
  4. 命名规范:蓝图对象名和注册名保持一致,比如 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 让同一模块的路由有统一前缀
  • 蓝图之间完全独立,避免直接相互调用

一句话总结:用蓝图按功能拆分应用,工厂模式统一管理。

代码不全

谢谢大佬的确是您说的。。。

谢谢大佬 上面那位大佬已经帮忙解决了

十分感谢大佬

回到顶部