返回顶部
首页 > 资讯 > 后端开发 > Python >Flask 系列之 Blueprint
  • 266
分享到

Flask 系列之 Blueprint

系列之FlaskBlueprint 2023-01-31 00:01:37 266人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

说明 操作系统:windows 10 python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 学习如何使用 Blueprint 介绍 接触过 DotNet MVC 开发的朋友应该都对

说明

实验目标

学习如何使用 Blueprint

介绍

接触过 DotNet MVC 开发的朋友应该都对 路由 的概念有一定的了解。所谓 路由 就是指我们访问一个网站时,这个网站各个页面访问时对应的 URL 地址。在我们的网站不是很复杂时,我们可以使用最原始的方法来设计路由,但是对待一个大型项目如果我们的路由不能进行统一管理和配置的话,那么对于项目后期来说,是无法维护的。

对于 Flask 来说,当我们的项目达到一定级别的话,可以尝试将我们的项目进行模块化设计,那么对应的路由我们也应该通过某种方式来进行统一管理和配置,这个时候就可以使用 Blueprint 来解决。

Blueprint 中文叫 蓝图,其作用是用于路由的模块化配置与管理。其常用参数如下图所示:

其中常用的几个参数为:

  • name: 蓝图名称;
  • import_name:导入的名称,使用 name 即可;
  • url_prefix:蓝图的访问前缀;

使用

打开 Windows Cmd,执行下述操作:

mkdir flask_bp

Python -m viratulenv venv

venv\Scripts\activate

pip install flask

code .

执行完毕后,VS Code 会自动加载该目录并启动起来,我们尝试创建一个最简单的示例程序看一下效果,组织一下我们的项目代码,如下图所示:

我们创建了一个项目名为 app 的模块,这个模块作为我们的项目根目录,然后在里面创建了一个 home 子模块,这个模块我们作为我们网站的一个子站点,然后会被注册到主程序中。

定义

app\home  init.py 的示例代码如下所示:

from flask import Blueprint

bp = Blueprint('home', __name__)

from . import views

使用

app\home\views.py 的示例代码如下所示:

from flask import render_template
from . import bp


@bp.route('/index')
@bp.route('/')
def index():
    msg = '我是来至模块 home 的视图函数'
    return render_template('home/index.html', msg=msg)

添加页面

app\templates\base.html 的示例代码如下所示:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta Http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Flask-bp</title>
</head>

<body>
    {% block content %}{% endblock %}
</body>

</html>

app\templates\home\index.html 的示例代码如下所示:

{% extends 'base.html' %} {% block content %}
<center>
    <h1>{{msg}}</h1>
</center>
{% endblock %}

注册

**app__init__.py** 的示例代码如下所示:

from flask import Flask
from .home import bp as home_bp

app = Flask(__name__)

app.reGISter_blueprint(home_bp, url__prefix='/')

添加启动函数

manage.py 的示例代码如下所示:

from app import app

if __name__ == "__main__":
    app.run(debug=True)

修改完毕后,尝试在当前虚拟环境中执行 flask run 来运行我们的程序,会出现如下图所示的界面:

需要补充的一点是,如果我们在 HTML 中访问某个模块的视图函数,可以通过 modulename.routename 方式,在上述的示例中,如果我们想访问到 home 模块中 的 “Index” 路由,那么可以通过 home.index 方式即可。

总结

Blueprint 支持多种配置方式,包括当前模块的路由规则,静态资源的访问位置。需要说明的一点时,由于我们引入了模块化的编程方式,所有可能存在模块与模块之间循环引入的问题,如果出现这种情况的话,我们的某些自定义模块就无法成功导入,这个时候我们可以尝试在某一函数段进行局部导入,这样就可以了。

相关参考

  • 用蓝图实现模块化的应用

--结束END--

本文标题: Flask 系列之 Blueprint

本文链接: https://lsjlt.com/news/181788.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Flask 系列之 Blueprint
    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 学习如何使用 Blueprint 介绍 接触过 DotNet MVC 开发的朋友应该都对...
    99+
    2023-01-31
    系列之 Flask Blueprint
  • Flask Blueprint
    Blueprint简介 Blueprint它是Flask项目的一种组件式开发,可以在一个应用内或跨越 多个项目共用蓝图。使用蓝图可以极大地简化大型应用的开发难度,也为Flask扩展 提供了一种在应用中注册服务的集中式机制。 模块化管理程序...
    99+
    2023-01-31
    Flask Blueprint
  • Flask 系列之 Migration
    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 通过使用 flask-migrate 实现数据库的迁移操作 实验 安装环境包 pip i...
    99+
    2023-01-31
    系列之 Flask Migration
  • Flask 系列之 SQLAlchemy
    SQLAlchemy 是一种 ORM 框架,通过使用它,可以大大简化我们对数据库的操作,不用再写各种复杂的 sql语句 了。 说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv...
    99+
    2023-01-31
    系列之 Flask SQLAlchemy
  • Flask 系列之 FlaskForm
    通过使用 FlaskForm ,可以方便快捷的实现表单处理。 说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 通过使用 flask_...
    99+
    2023-01-31
    系列之 Flask FlaskForm
  • Flask 系列之 Bootstrap-
    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 通过使用 Bootstrap-Flask 来进行页面美化,为网站应用上 Bootstra...
    99+
    2023-01-31
    系列之 Flask Bootstrap
  • Flask 系列之 LoginManag
    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 通过使用 flask-login 进行会话管理的相关操作,并完成用户合法性登陆和退出。 ...
    99+
    2023-01-31
    系列之 Flask LoginManag
  • Flask 系列之 Pagination
    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 实现当前登录用户的事务浏览、添加、删除 操作 实现 首先,在我们的 todolist\f...
    99+
    2023-01-31
    系列之 Flask Pagination
  • Flask-蓝图 blueprint详情
    目录1、蓝图的定义1.1使用蓝图前言: 我们的应用经常会有很多小模块,比如用户模块、后台管理模块等,虽然这些模块都在同一个应用中,但是功能大不相同,把他们放在同一个文件中,显得十分杂...
    99+
    2024-04-02
  • Flask 扩展系列之 Flask-R
    简介 安装 快速入门 一个最小的 api 例子 资源丰富的路由 端点 参数解析 数据格式化 完整 TODO 应用例子 Flask-RESTful是一个Flask的扩展,它增加了对快速构建REST APIs的支持。它是一种轻...
    99+
    2023-01-31
    系列之 Flask
  • Flask初学者:蓝图Blueprint
    蓝图这个名字好像就是根据单词Blueprint字面意思来,跟平常我们理解的蓝图完全挂不上钩,这里蓝图就是指Blueprint。 使用蓝图的好处是可以将不同功能作用的视图函数/类视图放到不同的模块中,可以更加方便的开发和维护 导入Blu...
    99+
    2023-01-30
    蓝图 初学者 Flask
  • Flask 系列之 构建 Swagger
    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验 环境初始化 # 创建项目目录 mkdir helloworld cd helloworld ...
    99+
    2023-01-31
    系列之 Flask Swagger
  • Python的Flask Blueprint SQLAlchemy怎么应用
    这篇文章主要讲解了“Python的Flask Blueprint SQLAlchemy怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的Flask&nb...
    99+
    2023-07-05
  • Flask 系列之 优化项目结构
    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 完善环境配置,添加 异常请求 处理 实现 400、404 和 500 处理 首先,在 t...
    99+
    2023-01-31
    结构 项目 系列之
  • Flask入门系列Cookie与session的介绍
    目录一、Cookie的使用1、什么是Cookie2、在Flask中使用Cookie二、session的使用1、什么是session2、Flask中的session对象3、在Flask...
    99+
    2024-04-02
  • redis系列之-
    什么是主从复制 Redis的主从复制机制是指可以让从服务器(slave)能精确复制主服务器(master)的数据,如下图所示:             或者              主从复制的方式和工作原理 工作方式: Redis主从复制...
    99+
    2017-12-10
    redis系列之-
  • Java系列之Predicate
    Java8引入了许多函数式接口(Functional Interface),Predicate(断言)就是其中一个,它的主要作用可以简单描述为:向其传入一个对象(可以理解为参数),将得到一个布尔值作为...
    99+
    2023-09-01
    java Java8 Optional 断言 函数式编程
  • ES6系列之Generator
    一、什么是Generator 函数1.1 语法学习 Generator 语法,你需要了解function* 、yield、next三个基本概念。function* 用来声明一个函数是生成器函数,它比普通的函数声明多了一个*,*的位置比较随意...
    99+
    2023-06-03
  • Openssl之PEM系列
    Openssl之PEM系列1.PEM编码文件结构介绍PEM全称是Privacy Enhanced Mail,该标准定义了加密一个准备要发送邮件的标准,主要用来将各种对象保存成PEM格式,并将PEM格式的各种对象读取到相应的结构中。它的基本流...
    99+
    2023-06-04
  • flask基础之一
    hello world #从flask这个包中导入Flask这个类 #Flask这个类是项目的核心,以后的很多操作都是基于这个类的对象 #注册url,注册蓝图都是这个类的对象 from flask import Flask #创建一个F...
    99+
    2023-01-31
    基础 flask
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作