Flask之工厂模式

Flask开发之–构建工厂模式(一)

提示:如果您学习了flask,想迫切开始自己的第一个项目,这里可以在一定程度上帮助你。



一、我为什么要说工厂模式?

Flask的工厂模式是为了开发较为大型的项目而构建的,但是对于初学者来说刚上来难以理解,甚至不知道如何去构建自己的工程函数,一头雾水,就像我当时学习Flask一样,由于是自学,所以一直是看书(推荐Grey Li的《Flask Web开发实战:入门、进阶于原理解析》)和听一些网课,我看到的网课上有讲,但是个人认为讲的太粗略,起码我在刚刚学完后,随即开发一个留言板之后,想上手相对大型的项目是卡住了,因为不了解工厂函数,面对程序,我都不会运行,更不要说去开发了,渐渐我陷入了一段短期的对工厂模式的恐惧,因为不会啊,理解不了,小的项目再重复开发学不到很多东西,大型项目想开发,但是连运行机制都不知道,垒代码简直就是在垒寂寞。知道我真想去做一个相对较大的项目,我下决心通过资料和一个大佬同学的帮助开始,这才走进带有工厂模式的项目。

二、使用步骤

1.项目文件构造

我就用最近做的一个案例举例子啦!在这里插入图片描述

从这张图中可以看到我框定了三个重要的文件,最上面的flask_env是你的主文件,但是这个主文件不要直接放项目代码!你的真正的项目代码要放在主文件下的一个子包下,这里对应的是gump文件夹,你所有的有关项目的代码都要放到这个文件夹下,最后要准备的就是.flaskenv(别忘记前面的一个“.”)脚本了,这里先记住这个文件,后面要用的,到这里,你的flask项目的运行任务完成第一步了。

2.项目文件的结构

在这里插入图片描述
项目文件的结构就相对比较好说,如果你直接创建的Flask项目,模版和静态文件夹会自动给你创建好的。其他文件你可以根据个人的习惯的去构造,这里就不过多去说了,这里前面有一个blueprint包,这是由一个模块升级成的包,由于项目需要的路由比较多,所以这里使用了蓝图,关于蓝图虽然也不好理解但是可以学到。

3.工厂函数

你的代码能不能跑起来全看工厂函数了

在这里插入图片描述
每次你创建一个python包的时候里面会自动生成__init__.py文件,它代表着你当前的项目文件。当你打开文件后就是工厂函数:
在这里插入图片描述
这里我们在提取一下重要信息:
gump/init.py:

from flask import *
def create_app():
	app = Flask('gump')
	#app.config.from_object()#引用配置文件
	return app#千万不要忘记返回值
	

这是最最基本的一个工厂函数,首先函数create_app是必须有的,并且其函数名不能更改,然后是Flask(‘gump’),这里为什么指明gump就可以能够使得程序找到这个文件夹,其实是前面提到的.flaskenv文件,.flaskenv文件:

在这里插入图片描述
这里的面有个FLASK_APP是给程序运行指明路径的,然程序知道去gunp下的__init__.py中去寻找工厂函数并运行(还需要提前安装python-dotenv包:pip install python-dotenv)。

4.蓝图

因为这里使用的工厂函数,所以就必须要用蓝图了,我们看到前面app的实例化在工厂函数里面,我们也不好去里面的注册路由,我们对代码拆分目的是为了好管理,而不是为了看起来高大上才写的,所以路由就要放到其他模块,比如gump下有一个auth.py模块,那么这里面就可以注册路由了:
gump/auth.py:

from flask import *
auth_bp = Blueprint('auth',__name__)


@auth_bp.route('/', methods=['GET', 'POST'])
def index():
	return '<h1>Hello Flask</h1>'

这个蓝本要跟工厂函数挂上勾才行:

from flask import *
def create_app():
	app = Flask('gump')
	#app.config.from_object()#引用配置文件
	app.register_blueprint(auth_bp, url_prefix='/auth')
	return app#千万不要忘记返回值
	

中间加一句表示路由已经可以在运行时候运行了,同时规定这个蓝图下的所有路由都在/auth路由之下。

之后你在终端上输入flask run命令之后程序就会运行了。用flask run命令的好处是当你修改代码之后程序会自动运行,免去手动运行的麻烦了。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据引用\[1\]和引用\[2\]的代码片段,可以看出在使用CubeMX配置flash时,需要进行以下几个步骤: 1. 配置SPI:在CubeMX的Connectivity选项中选择SPI1,并设置为Full-Duplex Master全双工主模式。不需要使用硬件片选信号(NSS),可以选择任意外部引脚作为输出模式。同时,将时钟分频设置为4分频。 2. 修改工程配置:根据引用\[3\]中的描述,需要对工程进行一些准备工作和配置修改。具体的步骤可能因具体情况而异,但一般包括连接外部flash芯片到正确的引脚上,并确保芯片型号和引脚配置正确。 3. 修改代码:根据引用\[1\]和引用\[2\]中的代码片段,需要对代码进行修改以适配外部flash芯片。具体的修改包括读写函数的实现和相关的命令字节设置等。 总结起来,配置flash的步骤包括配置SPI、修改工程配置和修改代码。具体的配置和修改步骤可能因具体情况而异,需要根据具体的芯片型号和引脚配置进行调整。 #### 引用[.reference_title] - *1* *3* [使用cubemx建立一个外部flash虚拟U盘的工程](https://blog.csdn.net/givemeyouhand/article/details/123391105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用cubemx工具的STM32对外部flash(W25Q64)的简单编程](https://blog.csdn.net/bebebug/article/details/124372652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值