Flask python 开发篇:蓝图的使用
蓝图
- 引言
- 一、为什么使用蓝图?
- 二、蓝图的概念
- 三、创建蓝图
- 四、注册蓝图
- 五、分享我的creat_app方法
- 六、写在最后
引言
falsk是个轻量级的框架,核心实现简单,但同事可以让开发人员自由的扩展功能。开发中,使用模块导入的方式。
一、为什么使用蓝图?
- 将一个应用程序分解为一组蓝图。这对于较大的应用程序是理想的;一个项目可以实例化一个应用程序对象,初始化多个扩展,并注册许多蓝图。
- -在URL前缀和(或)子域的应用程序上注册蓝图。URL前缀和(或)子域中的参数成为蓝图中所有视图函数的通用视图参数(缺省情况下)。
- 在具有不同URL规则的应用程序上多次注册蓝图。
- 通过蓝图提供模板过滤器、静态文件、模板和其他实用程序。蓝图不必执行应用或视图函数。
- 当初始化一个Flask 扩展时,为以上任意一种用途注册一个蓝图。
flask中的蓝图不是可插入的应用程序,因为它实际上不是一个应用程序——它是一组可以在应用程序上注册的操作,甚至可以多次注册。
如果使用蓝图,那么应用会在 Flask 层中进行管理,共享配置,并且可以根据需要更改注册的应用程序对象。缺点是,一旦创建了一个应用程序,只有销毁整个应用对象才能注销蓝图。
二、蓝图的概念
蓝图的基本概念是:在蓝图被注册到应用之后,所要执行的操作的集合。当分配请求时,Flask 会把蓝图和视图函数关联起来,并生成两个端点之前的 URL 。
三、创建蓝图
因为开发是以模块划分的,所以新增一个blog文件夹,在里边新建一个__init__.py文件,源码如下:
from flask import Blueprint, jsonifyblog_base_blueprint = Blueprint('blog', __name__, url_prefix='/api')# 获取所有博客文章列表
@blog_base_blueprint.route('/posts', methods=['GET'])
def get_posts():return jsonify({'code': 0,'msg': 'success',})
这里,构建了一个名为blog_base_blueprint 的蓝图,并使用@blog_base_blueprint绑定了一个函数,蓝图会记录下所登记的get_posts 函数。当以后在应用中注册蓝图时,这个函数会被注册到应用中。
个人觉着,蓝图就像php里的控制器+路由文件一起使用一样,在蓝图里,我们需要定义路由,以及方法。
四、注册蓝图
这里可以参考文档哈,文档里很详细,本人用的就是普通的注册方式:
from project.blog import blog_base_blueprintapp.register_blueprint(blog_base_blueprint)
注意:注册蓝图时,注意导入的顺序,若是出现ImportError: cannot import name ‘db‘之类的异常,请参考这里解决重复导入的异常
五、分享我的creat_app方法
走到这里,我的源码如下:
import osfrom flask import Flask
from flask_sqlalchemy import SQLAlchemy
from project.config import config # 导入存储配置的字典# 创建数据库连接
db = SQLAlchemy()from project.blog import blog_base_blueprintdef create_app(config_name=None):if config_name is None:config_name = os.getenv('FLASK_ENV', 'development') # 从环境变量中获取FLASK_ENV,并设置默认值app = Flask('project')# setup config,导入配置,根据配置环境实例化app.config.from_object(config[config_name])# 注册扩展register_extension(app)# 注册蓝图register_blueprint(app)return app# 注册flask拓展
def register_extension(app: Flask):db.init_app(app)# 注册蓝图
def register_blueprint(app: Flask):app.register_blueprint(blog_base_blueprint)
六、写在最后
宣传一波:大家若是有人想北京租房可以联系我,主要是物资学院、通州北关、北苑、草房的房子。(注:我不是中介哟,我也不打算转行做中介,是我靠谱的朋友在做)

相关文章:
Flask python 开发篇:蓝图的使用
蓝图 引言一、为什么使用蓝图?二、蓝图的概念三、创建蓝图四、注册蓝图五、分享我的creat_app方法六、写在最后 引言 falsk是个轻量级的框架,核心实现简单,但同事可以让开发人员自由的扩展功能。开发中,使用模块导入的方式。 一…...
抖音视频爬虫下载软件|可导出视频分享链接|视频批量采集工具
无水印视频关键词批量下载工具操作指南 我们自主开发了一款便捷的音视频批量下载工具,不仅支持单个视频链接提取,还可通过关键词搜索实现批量采集和选择性下载,让您轻松获取所需视频内容。 操作说明: 关键词批量采集视频 进入软件…...
CentOS DHCP服务器部署指南
title: DHCP 服务器部署以及配置 search: 2024-03-21 tags: “#DHCP 服务器部署以及配置” CentOS DHCP 服务器部署指南 背景 :因上了 Linux 的实验课程,在课程中,老师要求我们自己搭建 DHCP 服务器构建局域网,在构建的时候问题百…...
llvm后端
SelectionDAGBuilder是LLVM(Low Level Virtual Machine)编译器中的一个重要组件,它负责将LLVM中间表示(Intermediate Representation,IR)转换为SelectionDAG(选择有向无环图)的形式。…...
【JSON2WEB】10 基于 Amis 做个登录页面login.html
【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…...
Android 你遇到的无障碍onGesture不执行
你是不是和我一样,在开发无障碍应用的时候,翻边了Android的AccessibilityService源码 但是就是发现不了onGesture不执行的原因? 你是不是和我一样,在好多测试手机之间徘徊,发现还是不执行? 你是不是和我一…...
Java学习10
目录 一.多态: 1.方法的多态: 2.对象的多态: 3.多态的注意事项与细节: 5.多态的应用: 二.Java的动态绑定机制: 三.多态应用: 1.多态数组: 2.多态参数: 三.Object类…...
第二十章 TypeScript(webpack构建ts+vue3项目)
构建项目目录 src-- main.ts-- App.vue--shim.d.tswebpack.config.jsindex.htmlpackage.jsontsconfig.json 基础构建 npm install webpack -D npm install webpack-dev-server -D npm install webpack-cli -D package.json 添加打包命令和 启动服务的命令 {"scripts…...
白酒:陈酿过程中的老熟度评价与品质提升方法
在豪迈白酒的酿造过程中,陈酿是一个至关重要的环节。陈酿不仅能使白酒老熟,提品质,还能发展出与众不同的风味和口感。云仓酒庄深知陈酿的重要性,并进行了深入的研究和实践。本文将探讨陈酿过程中的老熟度评价与品质提升方法。 首先…...
BoostSeacher
前言: 基于Boost库的搜索引擎 为何基于Boost库? 从技术上说:这个项目用了很多Boost库的接口从搜索引擎存储内说:存储的内容是Boost库的内容预期效果 预期效果:用户在浏览器输入关键词,浏览器显示相关结果 STEP1&#x…...
我的算法刷题笔记(3.18-3.22)
我的算法刷题笔记(3.18-3.22) 1. 螺旋矩阵1. total是总共走的步数2. int[][] directions {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};方位3. visited[row][column] true;用于判断是否走完一圈 2. 生命游戏1. 使用额外的状态22. 再复制一份数组 3. 旋转图像观…...
初探Ruby编程语言
文章目录 引言一、Ruby简史二、Ruby特性三、安装Ruby四、命令行执行Ruby五、Ruby的编程模型六、案例演示结语 引言 大家好,今天我们将一起探索一门历史悠久、充满魅力的编程语言——Ruby。Ruby是由松本行弘(Yukihiro Matsumoto)于1993年发明…...
深圳MES系统如何提高生产效率
深圳MES系统可以通过多种方式提高生产效率,具体如下: 实时监控和分析:MES系统可以实时收集并分析生产数据,帮助企业及时了解生产状况,发现问题并迅速解决,避免问题扩大化。这种实时监控和分析功能可以显著…...
QT常见Layout布局器使用
布局简介 为什么要布局?通过布局拖动不影响鼠标拖动窗口的效果等优点.QT设计器布局比较固定,不方便后期修改和维护;在Qt里面布局分为四个大类 : 盒子布局:QBoxLayout 网格布局:QGridLayout 表单布局&am…...
Elasticsearch8 - Docker安装Elasticsearch8.12.2
前言 最近在学习 ES,所以需要在服务器上装一个单节点的 ES 服务器环境:centos 7.9 安装 下载镜像 目前最新版本是 8.12.2 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.2创建配置 新增配置文件 elasticsearch.yml http.host…...
还在为不知道怎么学习网络安全而烦恼吗?这篇文带你从入门级开始学习网络安全—认识网络安全
随着网络安全被列为国家安全战略的一部分,这个曾经细分的领域发展提速了不少,除了一些传统安全厂商以外,一些互联网大厂也都纷纷加码了在这一块的投入,随之而来的吸引了越来越多的新鲜血液不断涌入。 不同于Java、C/C等后端开发岗…...
DFS基础——迷宫
迷宫 配套视频讲解 关于dfs和bfs的区别讲解。 对于上图,假设我们要找从1到5的最短路,那么我们用dfs去找,并且按照编号从大到小的顺序去找,首先找到的路径如下, 从节点1出发,我们发现节点2可以走ÿ…...
iOS开发进阶(九):OC混合开发嵌套H5应用并互相通信
文章目录 一、前言二、嵌套H5应用并实现双方通信2.1 WKWebView 与JS 原生交互2.1.1 H5页面嵌套2.1.2 常用代理方法2.1.3 OC调用JS方法2.1.4 JS调用OC方法 2.2 JSCore 实现原生与H5交互2.2.1 OC调用H5方法并传参2.2.2 H5给OC传参 2.3 UIWebView的基本用法2.3.1 H5页面嵌套2.3.2 …...
新人应该从哪几个方面掌握大数据测试?
什么是大数据 大数据是指无法在一定时间范围内用传统的计算机技术进行处理的海量数据集。 对于大数据的测试则需要不同的工具、技术、框架来进行处理。 大数据的体量大、多样化和高速处理所涉及的数据生成、存储、检索和分析使得大数据工程师需要掌握极其高的技术功底。 需要你…...
linux debian运行pip报错ssl tsl module in Python is not available
写在前面 ① 在debian 8上升级了Python 3.8.5 ② 升级了openssl 1.1.1 问题描述 在运行pip命令时提示如下错误 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.尝试了大神推荐的用如下方法重新编译安装python,发…...
【Seed-Labs 2.0】从攻到防:实战解析SQL注入漏洞与预编译语句防御
1. SQL注入漏洞:从入门到实战 第一次接触SQL注入时,我被这种攻击方式的简单粗暴震惊了。只需要在登录框输入admin#,就能直接绕过密码验证进入系统。这让我意识到,很多看似复杂的系统安全问题,其实都源于最基础的编码疏…...
革新性量化交易平台:基于Backtrader的高效策略回测工具实现方法
革新性量化交易平台:基于Backtrader的高效策略回测工具实现方法 【免费下载链接】backtrader-pyqt-ui 项目地址: https://gitcode.com/gh_mirrors/bac/backtrader-pyqt-ui Backtrader可视化平台是一款融合PyQt界面框架与finplot图表库的革新性量化交易回测工…...
WordPress内容组织终极指南:Argon主题标签与分类管理新策略
WordPress内容组织终极指南:Argon主题标签与分类管理新策略 【免费下载链接】argon-theme 📖 Argon - 一个轻盈、简洁的 WordPress 主题 项目地址: https://gitcode.com/gh_mirrors/ar/argon-theme Argon主题是一款轻盈、简洁的WordPress主题&…...
资源嗅探革新性工具:猫抓让网页资源获取变得前所未有的简单
资源嗅探革新性工具:猫抓让网页资源获取变得前所未有的简单 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过想要保存网…...
保姆级教程:用交大镜像源5分钟安装PyTorch 2.3.0(支持CUDA 12.6)
5分钟极速部署PyTorch 2.3.0开发环境(CUDA 12.6兼容方案) 深度学习开发环境配置一直是让开发者头疼的问题,尤其是当硬件驱动与框架版本不匹配时。最近在技术社区中,"Torch CUDA is not available"成为高频搜索词&#x…...
突破QQ音乐格式限制:QMCDecode全平台解决方案
突破QQ音乐格式限制:QMCDecode全平台解决方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结果存…...
卡证检测矫正模型惊艳案例:护照芯片区域反光消除+四角点亚像素定位
卡证检测矫正模型惊艳案例:护照芯片区域反光消除四角点亚像素定位 你有没有遇到过这样的烦恼?用手机拍身份证、护照或者驾照,准备上传办理业务时,系统总是提示“照片不清晰”、“证件边缘不完整”或者“请拍摄正面照”。尤其是护…...
像素时装锻造坊应用场景:NFT项目像素角色皮肤的批量生成方案
像素时装锻造坊应用场景:NFT项目像素角色皮肤的批量生成方案 1. 项目背景与核心价值 像素时装锻造坊(Pixel Fashion Atelier)是一款专为NFT项目设计的像素角色皮肤批量生成工具。它基于Stable Diffusion与Anything-v5技术栈,将传…...
新手入门:借助快马平台轻松理解并解决战网更新睡眠问题
新手入门:借助快马平台轻松理解并解决战网更新睡眠问题 作为一个刚接触游戏客户端维护的新手,遇到战网更新服务进入睡眠模式的问题时,往往会感到无从下手。最近我在使用InsCode(快马)平台时,发现它可以帮助我们快速理解并解决这类…...
WinAsar终极指南:3分钟掌握Windows平台asar文件图形化处理
WinAsar终极指南:3分钟掌握Windows平台asar文件图形化处理 【免费下载链接】WinAsar Portable and lightweight GUI utility to pack and extract asar( Electron archive ) files, Only 551 KB! 项目地址: https://gitcode.com/gh_mirrors/wi/WinAsar 还在为…...
