Flask初学者:蓝图Blueprint

蓝图这个名字好像就是根据单词Blueprint字面意思来,跟平常我们理解的蓝图完全挂不上钩,这里蓝图就是指Blueprint。

使用蓝图的好处是可以将不同功能作用的视图函数/类视图放到不同的模块中,可以更加方便的开发和维护

  1. 导入Blueprint:from flask import Blueprint
  2. 创建一个蓝图:例如user_bp = Blueprint(‘user’, __name__, prefix=’/user’),第一参数指定蓝图名称,第二个参数与flask中的使用是相同的(用于指定静态文件的相对路径,也方便其他三方插件报错时定位问题),第三个参数prefix为这个蓝图指定url前缀,这个前缀会和视图函数/类视图指定的url直接连接起来形成一个有效的url
  3. 视图函数:也是和Flask的使用一样,使用对应的route装饰器即可
  4. 注册蓝图:使用方法app.register_blueprint(user_bp)即可
  5. HTML模板查找规则:如果创建蓝图时,第二个参数使用的是__name__,那么默认的模板文件路径就是项目根目录下的templates文件夹(Flask实例化时的__name__),如果不想使用这个templates文件夹,可以在实例化Blueprint时指定template_folder参数,那么此时模板文件的查找顺序就是先在templates文件夹中查找,查找不到时,就会在蓝图文件同级目下template_folder参数指定的文件夹(Blueprint实例化时的__name__)中查找
  6. 静态文件查找规则:如果创建蓝图时,如果第二个参数使用的是__name__,那么,在使用url_for(‘static’, filename=xxx)时,就只会在项目根目录的static文件夹中查找,如果使用url_for(‘user.static’, filename=xxx)就会在蓝图创建时static_folder参数指定的文件夹中查找
  7. url_for反转:反转获取蓝图中的url时,必须加上蓝图名称的前缀,即便是就在该蓝图模块中使用url_for,也要加上蓝图的名称,例如url_for(‘blue_name.viewfunc_name’)
  8. 子域名:在创建蓝图的时候可以使用subdomain参数指定子域名,需要注意的是具体的IP地址和localhost是不能有子域名的

原文地址:https://www.cnblogs.com/guyuyun/p/9950015.html

时间: 2024-08-30 06:18:57

Flask初学者:蓝图Blueprint的相关文章

flask的蓝图(blueprint)

第一步 第二步 第三步 第四步 原文地址:https://www.cnblogs.com/lilied/p/8424137.html

Flask基础(一)之蓝图(blueprint)

蓝图(blueprint)的目的是实现 各个模块的视图函数写在不同的文件目录中,程序入口模块(主视图)中导入功能模块(模块视图),并且注册蓝图对象功能模块(分路由视图)中利用蓝图对象.route 进行装饰视图函数 main.py from flask import Flask from orders import order_blue # 导入我们自定义的蓝图(功能模块蓝图对象) app = Flask(__name__) # 将蓝图注册到 程序入口文件 app.register_bluepri

Flask最强攻略 - 跟DragonFire学Flask - 第九篇 Flask 中的蓝图(BluePrint)

蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_user)模块,然后又加入了一个修改客户的功能(up_user)模块,在这个系统中,就可以将 查看客户,修改客户,添加客户,删除客户的四个功能做成蓝图加入到客户管理系统中,本篇最后会做

flask中的蓝图 Blueprint

模块化 随着flask程序越来越复杂,我们需要对程序进行模块化的处理,之前学习过python的模块化管理,于是针对一个简单的flask程序进行模块化处理 简单来说,Blueprint 是一个存储操作方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求. Flask使用Blueprint让应用实现模块化,在Flask中,Blueprint具有如下属性: 一个应用可以具有多个Blueprint 可以将一个Blu

Flask 中的蓝图(BluePrint)

目录 1.Flask蓝图概述 2.一个简单的蓝图实现 2.1 实例一: 2.2 实例二: 3.蓝图实现学生信息的增删改查 3.1学生信息查看: 3.2学生信息更新: 3.3学生信息增加: 3.4管理学生信息的主服务器: 3.5管理学生信息的web视图: 1.Flask蓝图概述 作用就是将功能与主服务分开,蓝图没有run方法 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_u

蓝图(Blueprint)详解

Blueprint 模块化 随着flask程序越来越复杂,我们需要对程序进行模块化的处理,针对一个简单的flask程序进行模块化处理 举例来说: 我们有一个博客程序,前台界面需要的路由为:首页,列表,详情等页面 源程序app.py文件: from flask import Flask app=Flask(__name__) @app.route('/') def index(): return 'index' @app.route('/list') def list(): return 'lis

【Flask】蓝图

蓝图应用 在Flask中的蓝图 blueprint其实本质上就是将应用解耦,不同的应用分别放在不同的文件内 蓝图一 from flask import Blueprint,render_template user = Blueprint("user",__name__,template_folder="tmp") # 参数user表示蓝图唯一标识不能重复,实例化一个蓝图(Blueprint)对象 @user.route("/user",metho

flask的蓝图设计

flask的蓝图 蓝图的作用以及结构(结构的目录需要自己定义) 蓝图的作用:规范文件的目录(可以实现多个app,如admin的APP,user的APP) 比如: -proj_flask -proj_flask _admin -static -templates -__init__.py -views.py -user -static -templates -__init__.py -views.py -user.py -blog.py -__init__.py -run.py 启动文件run.p

Python Flask 蓝图Blueprint

1. 目录结构 2. manage.py类似于django中manage import fcrm if __name__ == '__main__': fcrm.app.run(port=8001) 3. fcrm下面的__init__.py文件 from flask import Flask from .views import account #导入fcrm.views目录下account.py模块, from .views import order #导入fcrm.views目录下orde