赞
踩
蓝图(blueprint):用于实现单个应用的视图、模板、静态文件的集合。
蓝图就是模块化处理的类。类似于django中app,子应用。
简单来说,蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关联的功能。 在Flask中,使用蓝图可以帮助我们实现模块化应用的功能。
flask中,将项目模块化,blueprint,是flask自带的一种开发模式,目的是为了方便开发大型的项目
蓝图是保存了一组将来可以在应用对象上执行的操作。
注册路由就是一种操作,当在程序实例上调用route装饰器注册路由时,这个操作将修改对象的url_map路由映射列表。
当我们在蓝图对象上调用route装饰器注册路由时,它只是在内部的一个延迟操作记录列表defered_functions中添加了一个项。
当执行应用对象的 register_blueprint() 方法时,应用对象从蓝图对象的 defered_functions 列表中取出每一项,
即调用应用对象的 add_url_rule() 方法,这将会修改程序实例的路由映射列表。
函数名相同;先注册先访问
from flask import Flask from flask_sqlalchemy import SQLAlchemy import pymysql from flask_restful import Api from flask_migrate import Migrate from flask_wtf import CSRFProtect ## 导入csrf保护 pymysql.install_as_MySQLdb() csrf = CSRFProtect() db = SQLAlchemy() api = Api() migrate =Migrate() def Create(): """ 生成flask 配置文件 """ app = Flask(__name__) ## import sys # print(sys.path) import os app.config.from_pyfile(os.path.join(sys.path[0],"settings.py")) ## 从配置文件中加载配置 app.config.from_object("settings.TestConfig") # 从类中加载配置 db.init_app(app) ### db = Sqlalchemy(app) migrate.init_app(app) api.init_app(app) csrf.init_app(app) from app.main import main app.register_blueprint(main) return app
import os BASE_DIR = os.path.abspath(os.path.dirname(__file__)) STATIC_PATH = os.path.join(BASE_DIR,"static") class Product: SQLALCHEMY_COMMIT_ON_TEARDOWN = True ### 请求结束之后自动提交 SQLALCHEMY_TRACK_MODIFICATIONS = True ## 跟踪修改 flask 1.x 之后增加的配置项 class Config(Product): ## 正式环境的 配置 SQLALCHEMY_DATABASE_URI = "mysql://root:123123@localhost/flask" ##链接mysql 配置 SECRET_KEY = "fdshfkjdsjfheofhihfkfjl" class TestConfig(Product): ## 测试环境的配置 SQLALCHEMY_DATABASE_URI = "mysql://root:123123@localhost/flask" ##链接mysql 配置 DEBUG = True SECRET_KEY = "fdshfkjdsjfheofhihfkfjl"
__init__.py
下修改实例化对象Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。