flask 中使用蓝图将路由分开写在不同文件
flask
若想将不同的路由写在不同的文件中(如将 user
对象的相关接口写在一个文件中,将 customer
对象的相关接口写在另一个文件中),可以使用蓝图来实现。
有关蓝图的定义:A Blueprint is a way to organize a group of related views and other code.
更多信息详见:http://flask.pocoo.org/docs/1.0/tutorial/views/#create-a-blueprint
都说自己写的博客自己也不一定会常看,出了问题互联网上总能找到相关信息。但总知:
辍学,如磨刀之石,不见其损,日有所亏!
故还是记录一下自己的解决方法,既当总结,若能方便他人也甚好。
假设有两个模型,user
和 customer
, 分别将有关他们的视图函数写在两个不同的文件中:
user_opt.py
:
from model import User
from flask import Blueprint
user_opt = Blueprint('user_opt', __name__)
# 查(按名字查)
@user_opt.route('/query_name/<user_name>', methods=['GET'])
def query_by_name(user_name):
users = User.query.filter(User.name == user_name).all()
return users
customer_opt.py
:
from model import Customer
from flask import Blueprint
customer_opt = Blueprint('customer_opt', __name__)
# 查(按 id 查)
@customer_opt.route('/query_id/<customer_id>', methods=['GET'])
def query_by_id(customer_id):
customer = Customer.query.filter(Customer.id == customer_id).first()
return customer
新建的 flask
工程均有 manage.py
文件,写好了上面两个接口之后,若想在 flask
运行时可以直接访问不在 manage.py
中的接口,还需要手动将上面写好的两个蓝图进行注册:
manage.py
:
from flask import Flask
import config
from exts import db
from user_opt import user_opt
from customer_opt import customer_opt
app = Flask(__name__)
# 注册蓝图,并指定其对应的前缀(url_prefix)
app.register_blueprint(user_opt, url_prefix="/user_opt")
app.register_blueprint(customer_opt, url_prefix="/customer_opt")
# 引入配置文件中的相关配置
app.config.from_object(config)
# 配置db
db.init_app(app)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run(host="127.0.0.1", port=5000, debug=True)
此时,运行 flask
项目,在浏览器中输入:
http://127.0.0.1:5000/user_opt/query_id/1
# 通过前缀 user_opt 访问 user 中的相关接口
http://127.0.0.1:5000/customer_opt/query_name/xiaoming
# 通过前缀 customer_opt 访问 customer 中的相关接口
【参考文章】:flask中使用蓝图将路由分开写在不同文件实例解析
flask 中使用蓝图将路由分开写在不同文件的更多相关文章
- 第九篇 Flask 中的蓝图(BluePrint)
第九篇 Flask 中的蓝图(BluePrint) 蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? ...
- Flask最强攻略 - 跟DragonFire学Flask - 第九篇 Flask 中的蓝图(BluePrint)
蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...
- 9,Flask 中的蓝图(BluePrint)
蓝图,听起来就是一个很宏伟的东西,在Flask中的蓝图 blueprint 也是非常宏伟的,它的作用就是将 功能 与 主服务 分开. 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的 ...
- flask中的蓝图(BluePrint)
蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...
- Flask 中的蓝图(BluePrint)
蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开 怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查 ...
- Flask中的蓝图(BluePrint)、
蓝图 1.初识Flask蓝图(BluePrint) 创建一个项目然后将目录结构做成: user.py中的内容 from flask import Blueprint, render_template ...
- flask中的蓝图与红图
内容: 1.flask中的蓝图 2.flask子域名实现 3.flask中的红图 1.flask中的蓝图 一个大型项目中视图比较多,如果仅仅是写在app.py中不方便管理,蓝图就可以做到分功能分目录结 ...
- 第八篇 Flask中的蓝图
随着业务代码的增加,将所有代码都放在单个程序文件中,是非常不合适的.这不仅会让代码阅读变得困难,而且会给后期维护带来麻烦.如下示例:我们在一个文件中写入多个路由,这会使代码维护变得困难. 如图所示,如 ...
- Flask 中的蓝图
相当与django中的App 基础模板 1.初识Flask蓝图(blueprint) 创建一个项目然后将目录结构做成: s_view.py 文件中的内容 from flask import Blu ...
随机推荐
- 【vps】Centos 7安装python3.8.5
[vps]Centos 7安装python3.8.5 前言 由于服务器的搬迁,从香港搬到了大陆,原来的香港服务器即将到期,所以趁着大陆服务器在备案的时候,将新服务器的配置先配置一下.这篇文章就是分享C ...
- 【记录一个问题】android下opencl中的event.getProfilingInfo()测速时间并不准确
使用了类似的代码来做android下opencl的时间测试: cl::CommandQueue queue(context, devices[0], CL_QUEUE_PROFILING_ENABLE ...
- 【小记录】利用cuvid库做视频解码,运行出现"dlopen "libnvcuvid.so" failed!"
1.查看源码:/Video_Codec_SDK_8.0.14/Samples/common/src/dynlink_nvcuvid.cpp 其中的LOAD_LIBRARY函数的源码如下: 1 #eli ...
- gin中的SecureJSON 防止 json 劫持
使用 SecureJSON 防止 json 劫持.如果给定的结构是数组值或map,则默认预置 "while(1)," 到响应体. package main import ( &qu ...
- 常见Web服务器
常见Web服务器
- java 坐标练习
定义一个三维空间的点,有三个坐标 实现以下目标: 1.可以生成特定坐标的点对象 2.提供可以设置三个坐标的方法 3.提供可以计算该点到特定点距离的平方的方法 class Point { double ...
- 在 Prim 算法中使用 pb_ds 堆优化
在 Prim 算法中使用 pb_ds 堆优化 Prim 算法用于求最小生成树(Minimum Spanning Tree,简称 MST),其本质是一种贪心的加点法.对于一个各点相互连通的无向图而言,P ...
- python21day
内容回顾 re模块的常用方法 findall(正则,待匹配字符串,flag):返回所有匹配项的列表 search:返回一个变量,通过group取到第一个匹配项 match:从头开始找第一个,其他同se ...
- 中文分词,自然语言处理器NLP。 新版本已上线,增加二级行业分类。
一 cacl2新版本上线,在一级行业的基础上深度挖掘,新增了对应的二级分类. 可以查看一级行业[农林牧渔],下面对应的所有二级行业的词库.这里拿[林业]来观察效果. 具体分词的效果. 二 Gi ...
- Java中的wait方法 简单介绍。
一 wait方法怎么用? package com.aaa.threaddemo; /* * 多线程中的wait方法? public final void wait() throws Interrupt ...