Flask 是什么
如果说 Django 是一个开箱即用的自带完善功能的 web 框架, 那么 Flask 就是一个只提供基础结构的微型框架. 这一点从它的 GitHub 源码就能看出端倪:
它的核心代码就只有这么多. 微型意味着 Flask 本身只提供了简单的核心的功能, 但它具备了强大的可扩展性. 比如, 它不会强制你使用某个 ORM 框架, 而是把选择权交给你, 让你自己决定集成哪个扩展.
无论如何, 都应该学习一下 Flask, 因为它让你从零开始, 了解一个 Web 框架是如何诞生的:
安装 Flask
Flask 需要 Python3.6 及以上才能使用, 最新的 async 异步支持需要 Python3.7 及以上.
安装 Flask 前可以先创建一个虚拟环境, 这样相关的包都放在这个虚拟环境中.
Mac 用户:
- # 创建
- $ mkdir myproject
- $ cd myproject
- $ python3 -m venv venv
- # 激活
- $ . venv/bin/activate
Windows 用户:
- # 创建
- > mkdir myproject
- > cd myproject
- > py -3 -m venv venv
- # 激活
- > venv\Scripts\activate
然后就通过 pip 安装 Flask 即可:
- $ pip install Flask
- Hello World
Flask 是一个 Web 框架, 更准备的说是一个提供接口的后端服务, 只需要 5 行代码就能实现一个接口:
- from flask import Flask
- App = Flask(__name__)
- @App.route("/")
- def hello_world():
- return "
- Hello, World!
- "
截止到目前, 还没见过哪个 Web 框架是这么玩的, 有点颠覆对 Web 框架的认知, 印象中的 Web 框架都是有点庞大的, Flask 却很轻巧的就实现了.
运行后会在控制台输出:
- > set FLASK_APP=hello
- > flask run
- * Running on http://127.0.0.1:5000/
浏览器访问 http://127.0.0.1:5000 / 就会看到 Hello, World! 字样.
代码解析
这几行代码会做这 4 件事:
from flask import Flask,Flask 类的实例就是一个 WSGI 应用, 这样才能跑起来.
App = Flask(__name__), 参数__name__是模块或包名, 这样 Flask 才能去查找 Web 相关文件.
@App.route("/"), 定义了接口的 URL, 也就是路由配置, 默认是 GET 方法.
hello_world() 函数是具体的接口处理逻辑代码, 返回了一个 html 字符串.
小结
本文简单介绍了 Flask 是什么, 怎么安装 Flask, 演示了 Hello World 的代码实现 Demo, 并对代码进行了解析. 为什么一定要学 Flask 呢? 我最近看了一篇 Django vs Flask 的最新的比较文章, 原文是国外某个博客发的, 里面说道, 如果你想在当前快速实现某个需求, 那么可以选择使用 Django. 但是请你有时间务必回过头来学一下 Flask, 因为这样才能知道用 Python 做 Web 开发的所有细节.
参考资料:
- https://flask.palletsprojects.com/en/2.0.x/
- https://flask.palletsprojects.com/en/2.0.x/foreword/
- https://flask.palletsprojects.com/en/2.0.x/installation/
- https://flask.palletsprojects.com/en/2.0.x/quickstart/
来源: http://developer.51cto.com/art/202107/674957.htm