Python Flask Blueprint 蓝图

本篇来了解一下 Flask 中 Blueprint 蓝图,什么蓝图 。。就是一个分模块的扩展而已,用来让不同的 业务模块api 分到不同的python文件中 而已,和 Spring mvc 的 class 级别 的@RequestMapping("/") 差不多。。

前因:

为什么要引入 Blueprint 蓝图呢? 因为如果默认把API接口都写到 一个py 文件里面 那么这个文件会越来越复杂,会越来越臃肿 导致 无法维护 ,所以按照正常的开发逻辑 也需要进行模块的划分 ,那么就需要引入 Blueprint

1.安装 Blueprint

需要先在环境中 使用 pip 安装一下 Blueprint 扩展

pip install Blueprint

2.编写Flask 入口 py文件

from flask import Flask

app = Flask(__name__)

@app.route('/')
def helloworld():
return 'Hello world python flask' # 新版本应该是 不支持这样启动了
# if __name__ == '__main__':
# app.run()

3.编写User模块 user.py文件

根据业务 可以创建新的模块 然后通过Blueprint 去注册路由

from flask import Blueprint

user = Blueprint('user',__name__)

@user.route('/user/username')
def username():
return 'get username : johnny'

4.Blueprint注册到 Flask app上

在入口文件中 把刚刚创建的 Blueprint 注册上去

from flask import Flask

#引入 刚刚创建的 blueprint
from user import user app = Flask(__name__)
#注册到 flask app上
app.register_blueprint(user) @app.route('/')
def helloworld():
return 'Hello world python flask' # if __name__ == '__main__':
# app.run()

5.验证

访问:/user/username 得到如下:

访问: / 得到如下:

总结:

使用 Blueprint很简单 按照下面的流程

  1. pip install Blueprint

  2. 创建 新模块文件,在其中创建Blueprint对象 如:

    # Blueprint两个参数('蓝图名字',蓝图所在位置')
    user = Blueprint('user',__name__)
  3. Blueprint注册到 Flask app上

    #引入 刚刚创建的 blueprint
    from user import user
    app = Flask(__name__) app.register_blueprint(user)

可以把Blueprint 理解为 Spring mvc 的 Class 级别 的@RequestMapping("/user") 差不多。。

欢迎大家访问 个人博客 Johnny小屋

欢迎关注个人公众号

Python Flask Blueprint 蓝图的更多相关文章

  1. flask Blueprint蓝图

    首先要了解蓝图的作用,模拟场景在团队开发过程中团队每个人都在写自己负责的功能模块,那多个py文件模板,我们如果完成后需要运行是不是要运行多个服务?但是我们的项目是一个整体,而不是零散的,所以我们怎么把 ...

  2. python - Flask 基础 - 蓝图( Blueprint )(2)

    """ 蓝图:为开发者提供的目录结构 - 使用: 1. 根目录创建一个跟项目名一样的文件 - 创建后第一步,在这个文件夹中添加一个 __init__.py 的配置文件 - ...

  3. python flask框架 蓝图的使用

    蓝图的目的是实现 各个模块的视图函数写在不同的py文件当中. 主视图 中 导入 分路由视图的模块,并且注册蓝图对象 分路由视图中 利用 蓝图对象 的route 进行装饰视图函数 主路由视图函数: #c ...

  4. Flask - Flask的蓝图(BluePrint)

    目录 Flask - Flask的蓝图(BluePrint) 一. 初始Flask蓝图 进阶Flask蓝图 使用蓝图做一个增删改查 1.使用蓝图进行web应用搭建: 2.使用Flask蓝图,查看学生信 ...

  5. 用 Flask 来写个轻博客 (16) — MV(C)_Flask Blueprint 蓝图

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 Blueprint 蓝图 定义一个蓝图 注册一个蓝图 创建蓝 ...

  6. 学习python-20191217(1)-Python Flask高级编程开发鱼书_第04章_应用、蓝图与视图函数

    视频01: flask框架:最上层是app,它就像一个插线板一样,比如可以插入蓝图,还可以插入其他各种flask插件. 每个蓝图又可以插入很多视图函数,并可指定静态文件夹和模板文件夹. 好的代码结构, ...

  7. flask之Blueprint蓝图

    flask_Blueprint.py ''' flask中的Blueprint蓝图: (1)新建模块,例如Bp1.py,Bp2.py,在模块中创建蓝图实例 (2)通过app.register_blue ...

  8. python Flask

    python Flask Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请 ...

  9. flask blueprint

    在使用flask进行一个项目编写的时候,可能会有许多个模块,如一个网站的前台(home)和后台(admin)模块,如果把这两个模块都放在一个views.py文件之中,那么最后views.py文件必然臃 ...

随机推荐

  1. 初学者都能懂得 Git 说明

    初学者都能懂得 Git 说明 本文写于 2020 年 8 月 10 日 网上有很多非常优秀的 Git 教程,但是他们都是面向有一定基础的开发者的. 可是对于没什么基础的初学者甚至是偶尔操作代码的设计师 ...

  2. 交互式 .Net 容器版

    背景介绍 在之前的文章 - 交互式 .Net 中已经介绍了什么是交互式 .Net,文中是通过 Visual Studio Code 插件的方式实现交互式 .Net 的.现在,我们将使用容器的方式实现交 ...

  3. 【WPF】WPF开发用户控件、用户控件属性依赖DependencyProperty实现双向绑定、以及自定义实现Command双向绑定功能演示

    前言: Wpf开发过程中,最经常使用的功能之一,就是用户控件(UserControl)了.用户控件可以用于开发用户自己的控件进行使用,甚至可以用于打造一套属于自己的UI框架.依赖属性(Dependen ...

  4. 56. Merge Intervals - LeetCode

    Question 56. Merge Intervals Solution 题目大意: 一个坐标轴,给你n个范围,把重叠的范围合并,返回合并后的坐标对 思路: 先排序,再遍历判断下一个开始是否在上一个 ...

  5. 811. Subdomain Visit Count - LeetCode

    Question 811. Subdomain Visit Count Example 1: Input: ["9001 discuss.leetcode.com"] Output ...

  6. 【单片机】CH32V103串口IDLE空闲中断

    CH32V103c8t6 在寻找解决接收完数据后,怎么即时判断数据已经完成了接收.发现串口有一个IDLE空闲中断.如下图描述: 意思是在串口接收完一帧数据 会产生一个中断,此时程序可判断为数据已接收完 ...

  7. 没错,就是Access-Control-Allow-Origin,跨域

    服务端添加: <add name="Access-Control-Allow-Origin" value="*" /><add name=&q ...

  8. JS倒计时(刷新页面不影响)的实现思路

    最近在做一个项目,用到了点击按钮实现倒计时,这个用js来实现很简单.但是遇到了一个问题 页面刷新后js重新加载导致 倒计时重新开始,或者直接初始化了 后来通过 cookie 保存来实现了js倒计时,关 ...

  9. 大白话讲Java的锁

    偏向锁 对一个对象的锁偏向于某个线程,在markword中记录线程id 下次相同的线程来,直接就可以获取锁 轻量级锁 对象的Markword记录锁地址 跟线程栈里面的锁记录Lock Record的锁地 ...

  10. 一次XGBoost性能优化-超线程影响运算速度

    一.问题背景 一个朋友在使用 XGBoost 框架进行机器学习编码,他们的一个demo, 在笔记本的虚拟机(4核)运行的时候,只要8s, 但是在一个64核128G 的物理机上面的虚拟机去跑的时候,发现 ...