测试之路python-flask框架:路由和蓝图
哈喽,大家好,我是歪小王,本期内容就聊聊MTV中的V(视图函数)中比较核心的两个概念---蓝图与路由。
01.路由
路由在很多开发框架中是一个很重要的概念。它就好比门牌号一样,可以通过路径,精确定位到某个方法。
在python中。路由是通过装饰器来表现这种形式的。它能够准确的将浏览器发出的请求,发送给指定方法。下面用一个小示例,说明下路由的绑定与浏览器访问。
- 新建一个flask项目。导入flask包,然后实例化flask对象。
- 创建一个方法,并在方法上面使用@app.route("/路由路径")装饰器绑定路由。
- 注意:视图函数中的所有方法。都需要return一个结果。
- 完成上面的步骤后,可以在命令行输入python app.py的命令运行该程序。这里需要注意,使用命令行,首先要进到当前项目的根目录,或者键入项目的绝对路径。如下图所示结果图。我们可以使用程序返回的链接访问,也可以在浏览器输入后访问。
说明:在app.run中,可以指定运行地址以及端口号,如果为空,则默认为127.0.0.1:5000。如果为0.0.0.0则允许用户通过ip地址访问本机,也就是外网也可以访问。(后续部署到服务器时,会用到这个方法)
以上就是路由的绑定,与访问。是不是很简单?大家可以动手试试哈。如果访问中出现not found这种情况的话,不要慌,先看看路由路径是否正确。我在刚接触flask的时候,总忘记浏览器地址栏中输入路由地址。
02.蓝图
在上面的示例中,我们可以看到视图函数写入到了app的运行文件中。一个项目中有成百上千个这样的函数。如果全部放在这一个模块中。在维护的时候,就需要在上千行上万行代码中去寻找bug。蓝图就可以解决这个问题。
蓝图,就是将视图函数与其他代码进行组装的一种方式。可以将视图函数与其他配置文件进行分离。
- 分离app模块(以下步骤比较绕。可以跟着小王一起敲)。
- 首先新建一个apps的包,然后在初始化文件中定义一个创建app的方法。并返回app。
- 而后在apps的层级下创建一个view包并创建一个view模块。专门用来存放某一类的视图函数。比如下图的user_view包主要是用来处理用户相关信息的。
- 接下来就是进入view函数中进行蓝图绑定与注册。
- 实例化app文件
- 进入app.py文件中。删除原有的代码。调用apps中的creat_app方法实例app对象
至此。蓝图的绑定就成功了。从上述步骤来说,分离了视图函数,分离了app的运行配置文件。虽然步骤看起来麻烦点,但是从代码维护的角度上来看,这样更方便项目的维护以及问题的定位。
3. 配置文件
在项目中,会单独定义一个settings.py的文件用来存放配置信息。调用时如上方在creat_app中调用app.config.from_object(配置文件名)方法,加载指定的配置文件名
ENV = "development" 开发模式
development 开发模式
production:生产环境
testing:测试环境
DEBUG = True 开启调试模式
import os
class Config:
DEBUG = True
# 本地调试环境
class Development(Config):
ENV = 'development'
# 生产环境
class Production(Config):
ENV = 'production'
DEBUG = False
上述参数中为配置文件的基本参数(固定写法),后续如果有数据库操作、redis的相关配置也可写入此处。
03.结尾
本期内容就到这里就结束了。这一期主要为大家讲述了路由以及蓝图的概念。步骤上会有点绕。但是实际操作下还是很简单的。小王去做核酸去了。各位大佬,我们下期见~
拜拜~~~~~
相关文章
- python实现微信自动聊天
- Python一些类库的基本操作
- Python爬虫之分布式爬虫
- Python爬虫之scrapy框架学习
- Python爬虫之selenium学习
- Python爬虫模拟登陆和异步爬虫
- Python问题合集
- Python爬虫基础
- Python进阶
- Python基础
- Python爬虫学习:Cookie 和 Session 的区别是什么?
- Python学习网站
- Python实现LDA模型
- Python实现简单GUI程序
- Pycharm设置python文件模板
- FastAPI从入门到实战(1)——Python类型提示
- 【python爬虫】爬取洛谷习题并转为md格式
- [oeasy]python0033_任务管理_jobs_切换任务_进程树结构_fg
- 交互式仪表板!Python轻松完成!⛵
- PythonRobotics | 基于python的机器人自主导航