轻量的Web开发框架——Flask
本文将继续为大家介绍一个轻量的Web开发框架——Flask。
可能有同学会问,前面不是已经介绍了FastAPI吗?有必要学习这么多框架吗?其中缘由,听我娓娓道来。
什么是Flask
Flask是一个用Python编写的轻量的Web应用程序框架,基于Werkzeug WSGI工具包和Jinja2模板引擎。Flask 也被称为 “microframework”,因为它使用简单的核心,用 extension 增加其他功能。
Flask 没有默认使用的数据库、窗体验证工具。然而,Flask 保留了扩增的弹性,可以用 Flask-extension 加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
简单说,Flask本身是微型的,但是具备极强的扩展能力以便完成复杂的任务。
相较于FastAPI为编写高性能的API而生,Flask则是在保持轻量的同时增加了对前端页面的渲染等能力。
Flask具备哪些特性
内置开发用服务器和 debugger
集成单元测试(unit testing)
RESTful request dispatching
使用 Jinja2 模板引擎
支持 secure cookies(client side sessions)
100% WSGI 1.0 兼容
Unicode based
详细的文件、教学
Google App Engine 兼容
可用 Extensions 增加其他功能
哪些场景可以用Flask
- Web开发
如果您需要用Python开发一个网站,那么Flask可以作为首选框架之一。如果只是一个简单的项目,那么Flask会很合适。如果是一个大型的项目,则需要随着开发经验的增加,熟悉的扩展越来越多,也就会越来越得心应手。
- AI领域
你可能想不到,Flask在AI领域也是功不可没。我们的关注点大多数都在模型上面,但是通常开源模型的同时也会提供一个Demo,供大家快速上手体验。这时Demo的实现就需要用到轻量的Flask同时实现前后端。
- 函数计算
函数计算可以理解成一个个小的web服务,用于处理我们的业务逻辑,而函数计算的实现也是很大程度上借鉴了Flask,所以使用函数计算会觉得无比亲切。
函数计算是一个事件驱动的全托管 Serverless 计算服务,用户无需管理服务器等基础设施,只需编写代码并上传,函数计算会准备好计算资源,并以弹性、可靠的方式运行业务代码。
快速开始:一个最小的应用
- 安装Flask
pip install Flask
- 创建
app.py
文件,编写一个最小的应用
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<H1 style='color: red;'>Hello, World!</H1>"
- 启动服务
在与app.py
同目录下执行命令:
flask run
看到如下提示就说明服务启动成功了。
- 访问
按照提示,在浏览器中打开http://127.0.0.1:5000
,则可以看到如下效果
到此,一个简单的web我们就体验完成了。但是有几点需要特别强调一下。
文件名不需要一定是
app.py
,如果是其它,比如:hello.py
,则在启动服务的时候,启动命令需要修改为:flask --app hello run
,用--app
指定应用名。当你修改了代码后,重新刷新浏览器,你会发现页面没有变化。这是因为需要我们开启DEBUG模式,这样每当代码发生改变后服务都会自动重启,我们刷新浏览器也就可以看到变化了。开启DEBUG模式也很简单,把启动命令修改为:
flask run --debug
进阶
如果你对Flask已经产生了浓厚的兴趣,那么建议您可以阅读详细、完整的官方文档。
官方文档目前只有英文版,想要阅读中文版的同学,可以关注:遇码,回复:Flask,获取Flask中文文档。