---恢复内容开始---

蓝图: flask模块化处理操作和URL的方式

作用:

  1. 将不同的功能模块化,实现模块化应用
  2. 构建大型应用
  3. 优化项目结构

使用步骤

  1. 创建蓝图对象
  2. 对蓝图对象进行操作(注册路由; 指定静态文件夹; 注册模板过滤器)
  3. 在应用对象上注册蓝图对象

代码操作

通过目录式结构定义蓝图

1.简单版

项目文件夹-模块文件夹-模块文件, __init__.py

from flask import Blueprint

# 1.创建蓝图
goods_dp = Blueprint('goods', __name__) # 3.和views关联起来,导入views.py 放在此处导入是延迟导入解决循环导入问题
from .views import *

项目文件夹-模块文件夹-模块文件, views.py

from goods import goods_dp

# 2.使用蓝图
@goods_dp.route('/goods/info')
def goods():
"""商品视图函数"""
return 'goods'

项目文件夹下项目文件demo1.py

from flask import Flask
from goods import goods_dp app = Flask(__name__) # 4.注册蓝图
app.register_blueprint(goods_dp) if __name__ == '__main__':
print(app.url_map)
app.run(debug=True)

2.加强版, 一般大致是以下这种

项目文件下templates文件夹, 按不同模块建立不同文件夹, 如此处的goods文件夹; goods文件夹下建立HTML文件

goods.HTML里面放入需要添加的内容, 演示只简单操作如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>商品模块</h1> </body>
</html>

1中的代码做下面更改

  • views.py做以下更改

  导入模块 from flask import render_template

  返回语句return render_template("goods/goods.html")

from goods import goods_dp
from flask import render_template # 2.使用蓝图
@goods_dp.route('/goods/info')
def goods():
"""商品视图函数"""
return render_template("goods/goods.html")

运行demo1文件后, 此时浏览器访问127.0.0.1:5000/goods/info, 可以网页显示  商品模块


  • 上面views.py中的代码继续更改:

  把路径中的goods去掉放入__init__.py文件

from goods import goods_dp
from flask import render_template # 2.使用蓝图
@goods_dp.route('/info')
def goods():
"""商品视图函数"""
return render_template("goods/goods.html")
  • __init__.py文件更改

加入前缀url_profix, 在蓝图上注册的路由URL自动被加上了这个前缀,这个可以保证在多个蓝图中使用相同的URL规则而不会最终引起冲突,只要在注册蓝图时将不同的蓝图挂接到不同的自路径即可

from flask import Blueprint

# 1.创建蓝图
goods_dp = Blueprint('goods', __name__, url_prefix="/goods") # 3.和views关联起来,导入views.py 放在此处导入是延迟导入解决循环导入问题
from .views import *

蓝图Blueprint的更多相关文章

  1. 第九篇 蓝图 blueprint

    在Flask中的蓝图 blueprint 的作用就是将 功能 与 主服务 分开 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_use ...

  2. 第九篇 Flask 中的蓝图(BluePrint)

    第九篇 Flask 中的蓝图(BluePrint)   蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? ...

  3. Flask路由与蓝图Blueprint

    需求分析: 当一个庞大的系统中有很多小模块,在分配路由的时候怎么处理呢?全部都堆到一个py程序中,调用@app.route? 显然这是很不明智的,因为当有几十个模块需要写路由的时候,这样程序员写着写着 ...

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

    蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...

  5. Flask 中的蓝图(BluePrint)

    蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开 怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查 ...

  6. python 全栈开发,Day120(路由系统, 实例化Flask的参数, 蓝图(BluePrint), before_request after_request)

    昨日内容回顾 1.Flask: from flask import Flask app = Flask(__name__) # 从源码中可以看出,Flask集成的run方法是由werkzeug中的ru ...

  7. 5. 使用Flask蓝图(blueprint)

    一直到现在都没有怎么写代码,可能更得比较慢. 作业回顾 先来看一下文章4的作业吧,使用logbook的时候,遇到了时区不对的情况.那么我们怎么去解决这个问题呢? 实际上logbook默认采用的是世界标 ...

  8. 蓝图-BluePrint

    蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...

  9. 蓝图(Blueprint)详解

    Blueprint 模块化 随着flask程序越来越复杂,我们需要对程序进行模块化的处理,针对一个简单的flask程序进行模块化处理 举例来说: 我们有一个博客程序,前台界面需要的路由为:首页,列表, ...

  10. 9,Flask 中的蓝图(BluePrint)

    蓝图,听起来就是一个很宏伟的东西,在Flask中的蓝图 blueprint 也是非常宏伟的,它的作用就是将 功能 与 主服务 分开. 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的 ...

随机推荐

  1. Linux vsftpd 安装配置使用

    1.安装 yum install vsftpd 2.配置 允许root登陆: /etc/vsftpd/user_list文件中把root那一行删除或者注释掉 /etc/vsftpd/ftpusers文 ...

  2. django url 反响解析,视图

    1. 内容回顾 1. 模板语言(字符串替换) 1. 母版和继承 1. 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) 2. 子页面如 ...

  3. Vue-admin工作整理(二):项目结构个人配置

    通过上一篇文章(Vue-admin工作整理(一):项目搭建)操作完毕后,基础项目已经搭建,下面就要对项目本身进行一下项目结构调整来符合自己的项目要求 1.首先要对package.json文件进行调整, ...

  4. #宽带选择# V2EX讨论

    毫无疑问上海联通是最好的,如果你的小区有的话IP 基本上固定,只要你的路由器不掉线不断电我的 IP 已经 hold 了三个多月了.无论是北美 还是日韩新,联通(上海)出口都甩电信普通家宽 N 条街.如 ...

  5. 20165303魏煜第一周kali安装

    1.根据网址下载kali 这是kali的下载地址https://www.kali.org 找到download选择Kali Linux 64 bit VMware VM,点击后面蓝色部分开始下载选择6 ...

  6. Android系统下app测试功能点

    一.安装卸载 1.验证app能否正常的安装启动运行,安装后的文件夹及文件是否写到了指定的目录里,卸载后相关文件是否清除 2.软件安装/卸载过程中意外情况的处理是否符合需求(如死机,重启,断电) 3.安 ...

  7. Lab 10-1

    This lab includes both a driver and an executable. You can run the executable from anywhere, but in ...

  8. C#通过读取Mysql脚本创建数据库

    #region script helper private bool ExecuteScriptFile(string pathToScriptFile, out string errorMsg) { ...

  9. 毕设记录(ajax第一次请求失败,之后成功的问题)

    解决方法:将button标签的type属性改为button,而不是submit,将会解决此问题,至于原因,,,还是没太搞清楚..

  10. JQuery的常用选择器 转

    JQuery的常用选择器 刚开始学JQuery写的如有错误欢迎批评指正 JQuery拥有的选择器可以让我们更快更方便找到想要的元素,然后对相应的元素进行操作 简单介绍一下一些常用的选择器: 1.基本选 ...