Flask初探
Flask简介
Flask是目前最流行的Python Web框架之一。其在GitHub上已拥有超过53000个Star,其灵活性和轻量级使得其备受开发者的青睐。
Flask发展历程
(以下表格选自《Flask Web 开发实战》,有删改、添加)
版本号 | 发布日期 | 主要变化说明 |
---|---|---|
0 | 2010.4.1 | 前身愚人节玩笑deny.py诞生 |
0.0.1 | 2010.4.6 | Flask诞生(非公开版本) |
0.1 | 2010.4.16 | Flask公开 |
0.2 | 2010.5.12 | 添加JSON支持及send_file() |
0.3 | 2010.5.28 | 支持配置;继承了日志记录;flash消息支持分类 |
0.4 | 2010.6.18 | 新增TESTING标志 |
0.5 | 2010.7.6 | Flask源码重构 |
0.6 | 2010.7.27 | 自动处理OPTIONS请求;添加make_response函数 |
0.7 | 2011.6.28 | 添加蓝本(Blueprint)支持;添加teardown_request的hook;支持基于类的视图 |
0.8 | 2011.9.29 | 引入新的session交互系统;添加before_first_request的hook;添加扩展系统flask.ext |
0.9 | 2012.7.1 | 添加程序上下文flask.FLask.app_context();添加after_this_request的hook |
0.10 | 2013.6.13 | 添加template_test和template_global方法;g对象存储到程序上下文中 |
0.11 | 2016.5.29 | 弃用flask.ext扩展系统;添加flask.cli及命令行支持,推荐使用flask run运行程序 |
0.12 | 2016.9.21 | 完善cli模块 |
1.0 | 2018.4.27 | 引入FLASK_ENV及自动发现应用程序实例的功能 |
2.0 | 2021.5.11 | 添加异步async支持,对部分API进行更改 |
这里扯句题外话,Flask 2.0的包大小可比1.0大,Flog是最先采用Flask 2.0的网站之一,之前网站硬盘用量一直在165MB左右,升级以后就飚到了240MB左右(而且性能还没有什么提升)。当然这点磁盘占用倒是不怎么要紧。
言归正传,读者可能已经注意到0.10-0.11期间经历了将近3年,那是因为Flask开发组成员在此期间正在开发为flask开发click这个命令行界面,因此花费了许多时间。
第一个应用程序
首先随便在哪(最好有个固定位置)创建一个目录名字叫做flask_learning,我们教程中的所有案例都会放在这个目录中,确保文件资源管理器或者Finder在这个目录下,然后
Windows:shift+右键选择powershell打开执行(>
是提示符,不是命令的一部分)
> python -m venv venv > Set-ExecutionPolicy RemoteSigned > venv/Scripts/activate.ps1
Mac OS X或Linux:右键->打开终端($
是提示符,不是命令的一部分)
$ python3 -m venv venv $ source venv/bin/activate
如果你会命令行的话也可以直接执行相应命令。
继续在这个打开的命令行下,执行:
mkdir first_webapp cd first_webapp pip install flask // Linux / Mac OS X touch app.py // Windows ni app.py
如果下载很慢可以考虑设置阿里的镜像源:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ pip config set install.trusted-host mirrors.aliyun.com
再运行pip install flask
及之后的命令
如果vscode安装成功,继续在这个命令行中输入code .
,这样能够在这个目录下打开vscode。
打开vscode(你这时应该已经配置好了Python扩展):
你会看到左边导航栏中出现了app.py,打开它(图中的M
和3
是我的版本控制软件,不用管它)
在app.py中输入:
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "hello, flask"
如下图:
打开刚才那个命令行
输入flask run
打开浏览器,访问这个网址:http://localhost:5000
你可以看到:
如果看到这个,证明你成功了!
常见问题
-
命令行输出类似于
command not found: flask
的东西可能原因1:你没有激活虚拟环境
应当
$ source ../venv/bin/activate
或者
> ../venv/Scripts/activate.ps1
可能原因2:你没有安装flask
应当
pip install flask
-
Error: Could not locate a Flask application
可能原因:你在flask_learning这个目录运行了flask run
,你应该先cd first_webapp
再flask run
本节代码目录结构及要注意的点
flask_learning/ //你应该在这里激活虚拟环境 first_webapp/ //你应该在这里运行flask run app.py
This post belongs to Column 「Flask入门教程」 .