Skip to content

轻量的Web开发框架——Flask

本文将继续为大家介绍一个轻量的Web开发框架——Flask。

可能有同学会问,前面不是已经介绍了FastAPI吗?有必要学习这么多框架吗?其中缘由,听我娓娓道来。

什么是Flask

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 计算服务,用户无需管理服务器等基础设施,只需编写代码并上传,函数计算会准备好计算资源,并以弹性、可靠的方式运行业务代码。

快速开始:一个最小的应用

  1. 安装Flask
sh
pip install Flask
  1. 创建app.py文件,编写一个最小的应用
py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<H1 style='color: red;'>Hello, World!</H1>"
  1. 启动服务

在与app.py同目录下执行命令:

sh
flask run

看到如下提示就说明服务启动成功了。

启动

  1. 访问

按照提示,在浏览器中打开http://127.0.0.1:5000,则可以看到如下效果

hello world

到此,一个简单的web我们就体验完成了。但是有几点需要特别强调一下。

  • 文件名不需要一定是app.py,如果是其它,比如:hello.py,则在启动服务的时候,启动命令需要修改为:flask --app hello run,用--app指定应用名。

  • 当你修改了代码后,重新刷新浏览器,你会发现页面没有变化。这是因为需要我们开启DEBUG模式,这样每当代码发生改变后服务都会自动重启,我们刷新浏览器也就可以看到变化了。开启DEBUG模式也很简单,把启动命令修改为:flask run --debug

进阶

如果你对Flask已经产生了浓厚的兴趣,那么建议您可以阅读详细、完整的官方文档。

官方文档目前只有英文版,想要阅读中文版的同学,可以关注:遇码,回复:Flask,获取Flask中文文档。

遇码MeetCoding 开源技术社区