一次python-flask蓝图的踩坑记录
作者:一只特立独行的兔先森 时间:2021-11-04 13:32:35
目录
一.简介
二.特色
三.flask规模化
四. flask Blueprint
总结
一.简介
Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask使用BSD授权。
Flask被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
二.特色
学习python的朋友可能都听说过django与flask这两个框架,django重量级,flask轻量级,至于多么轻量呢,创建好flask初始化环境后,只需要仅仅几行的代码就可以运行:
from flask import Flask
app = Flask(__name__)
@app.route("/")#定义路由地址
def hello():
return "Hello World!"#return为这个定义的函数所返回的信息
if __name__ == "__main__":#这里可以直接写app.run,但不规范,简单理解,name中有个“接口”,main是这个接口的启动地址
app.run()
而运行它也很简单:
python hello.py
三.flask规模化
轻量有轻量的好处,重有重的好处,我个人喜欢简单,所以学习python web就直接flask框架上手了,有过其它web编程经验的小伙伴应该都知道,一个项目的构建需要很多部分,比如后端的构建,分为view,api接口等,而flask并没有完全的给我们划分好这些模块,这就需要我们自己去构建了。
我们都知道一个web应用都需要“路由”功能,来连接寻找我们请求的地址,这个路由可能是静态或动态的,但功能都是通过前端用户访问的URL来返回前端所需要的信息,如上述代码,可以在app.py中定义多个路由,那如果有很多模块怎么办呢,比如:登录,发送信息,上传信息,验证信息等,不可能全部写在这一个文件中,如果被别人看见绝对会被揍。。。
四. flask Blueprint
关于启动文件引入其他文件中的模块的实现很简单,我们先来看一下:
# app.py//这里是一个程序启动的入口文件
from flask import Flask
from view.api import api#view为在当前目录下的目录下有个api模块,引入其中的api方法
from flask_cors import CORS#这里是跨域解决方法,如果你本地搭建了其它服务来测试当前接口同一浏览器下是无法访问滴
run = Flask(__name__)
CORS(run)
run.register_blueprint(api)#嵌入api模块
if __name__ == '__main__':
run.run(debug=True)
api模块:
#api.py
from flask import *
api = Blueprint("api", __name__)#告诉flask这个文件是“蓝图”,跨域在其他文件中引入
@api.route("/")#把app.py下的根路由拿来过来
def index():
return "hello world"
@api.route("/api", methods=["POST", "GET"]) #定义路由与接受的请求方法
def test():
return "this is api router"
这里我们就可以运行起来测试了。
这里不知道有没有细心的人发现,我们为了记录模块更方便,一般都喜欢把名字命名为一样的,而这里有个坑,文件和目录还有文件内的程序名称都可以命名成与模块名字一样的,但定义函数的时候一定要更改名字,不然你会发现怎样都运行不起来...
来源:https://blog.csdn.net/weixin_46192679/article/details/105016363
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
分享十个Python提高工作效率的自动化脚本
python random库的简单使用demo
oracle常用sql语句
js金额浮点格式化控件
用Python实现KNN分类算法
![](https://img.aspxhome.com/file/2023/2/71332_0s.jpg)
书写高效的CSS - 漫谈CSS的渲染效率
Python3自动签到 定时任务 判断节假日的实例
ASP基础知识介绍
使用python批量修改XML文件中图像的depth值
![](https://img.aspxhome.com/file/2023/7/84907_0s.png)
SQL Server视图管理中的四个限制条件
ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明
Python实现滑块验证码详解
![](https://img.aspxhome.com/file/2023/4/77714_0s.jpg)
python实现学生通讯录管理系统
浅析python中5个带key的内置函数
python实现猜拳游戏
![](https://img.aspxhome.com/file/2023/2/117842_0s.jpg)
flask中响应错误的处理及errorhandler的应用方式
![](https://img.aspxhome.com/file/2023/0/82770_0s.png)
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
![](https://img.aspxhome.com/file/2023/5/86155_0s.png)
交互设计:简单
详解如何在cmd命令窗口中搭建简单的python开发环境
![](https://img.aspxhome.com/file/2023/5/118515_0s.png)
python查找与排序算法详解(示图+代码)
![](https://img.aspxhome.com/file/2023/1/77631_0s.png)