1、Flask初探:Flask是什么?为什么选择Flask?环境搭建与第一个Hello World应用
Flask到底是什么?
Flask,说白了就是一个Python写的Web框架。它的核心哲学就八个字:「轻量、灵活、按需扩展」。
我刚开始接触Web开发时,用的是Django。那家伙功能确实全,但总觉得像开着一辆重型卡车去便利店买瓶水——有点过了。后来遇到Flask,第一感觉就是:嗯,这才是我想要的。
Flask本身只提供了最核心的东西:路由、请求响应处理、模板渲染。其他的?你自己选。想要数据库?自己加。想要表单验证?自己加。想要后台管理?自己加。这种「你说了算」的感觉,真的很舒服。
核心要点:Flask是一个微框架(Micro Framework),「微」不代表功能弱,而是指核心精简、扩展灵活。
为什么选择Flask?
我在项目中用过不少框架,最后选择Flask作为主力,原因其实很简单:
- 上手快——一个文件就能跑起来,5分钟写出第一个接口
- 文档好——Flask的官方文档是我见过最友好的之一,例子多、解释清楚
- 社区活跃——遇到问题,StackOverflow上基本都有答案
- 适合中小项目——API服务、微服务、小型后台管理系统,Flask是绝配
- 学习成本低——你只需要懂Python基础,就能开始写Flask
你想想看,一个刚入门的后端开发者,或者一个需要快速出活的小团队,Flask几乎是最优解。我曾经在一个创业项目里,用Flask三天搭出了完整的用户认证和API接口——换其他框架,光配置就得折腾半天。
我的建议:如果你在做大型电商平台、内容管理系统这类复杂项目,Django可能更合适。但如果你做的是API服务、微服务、或者想快速验证一个想法——Flask是你的不二之选。
环境搭建:别踩这些坑
好,咱们开始动手。环境搭建这一步,看起来简单,但我见过太多人在这里翻车了。
第一步:安装Python
Flask需要Python 3.6以上版本。我个人习惯用Python 3.9或3.10,稳定且兼容性好。
# 检查Python版本
python --version
# 或者
python3 --version
如果版本低于3.6,去官网下载安装。嗯,这里要注意:Windows用户记得勾选「Add Python to PATH」。
第二步:创建虚拟环境
这个步骤很多人会跳过,但我强烈建议你别省。虚拟环境能隔离项目依赖,避免不同项目之间的包冲突。
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Mac/Linux:
source venv/bin/activate
激活成功后,命令行前面会出现 (venv) 字样。看到这个,就说明环境激活成功了。
我曾经踩过的坑:有一次我忘了激活虚拟环境,直接全局安装了Flask。结果另一个项目需要旧版本的Flask,两个项目互相打架,折腾了我一上午。从那以后,我每开一个新项目,第一件事就是建虚拟环境。
第三步:安装Flask
激活虚拟环境后,直接pip安装:
pip install flask
安装完成后,验证一下:
python -c "import flask; print(flask.__version__)"
如果输出版本号,比如 2.3.2,那就说明安装成功了。
第一个Hello World应用
好,环境搭好了,咱们写第一个Flask应用。你猜猜需要几行代码?
答案是:不到10行。
新建一个文件,叫 app.py,写入以下代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
然后运行:
python app.py
你会看到类似这样的输出:
* Serving Flask app 'app'
* Debug mode: on
* Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
打开浏览器,访问 http://127.0.0.1:5000,你会看到页面上显示:
Hello, World!
就这么简单。你第一个Flask应用已经跑起来了。
代码拆解:每一行在干什么?
咱们一行一行来看:
| 代码 | 作用 |
|---|---|
from flask import Flask |
导入Flask类 |
app = Flask(__name__) |
创建Flask应用实例,__name__告诉Flask当前模块名 |
@app.route('/') |
路由装饰器,把函数绑定到根路径 |
def hello(): |
视图函数,处理请求并返回响应 |
return 'Hello, World!' |
返回字符串作为HTTP响应 |
app.run(debug=True) |
启动开发服务器,debug=True开启调试模式 |
小技巧:debug=True 这个参数很实用。开启后,代码修改会自动重启服务器,而且出错时会显示详细的调试页面。但记住,生产环境千万别开debug模式——会暴露敏感信息。
再玩点花样
光返回一个字符串太单调了。咱们加点料:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>欢迎来到Flask世界</h1>'
@app.route('/user/<name>')
def user(name):
return f'<h2>你好,{name}!</h2>'
if __name__ == '__main__':
app.run(debug=True)
现在访问 http://127.0.0.1:5000/user/张三,页面会显示「你好,张三!」。看到了吗?Flask自动把URL中的 <name> 提取出来,传给了视图函数。
这就是Flask路由的魅力——简单、直观、强大。
本章小结
咱们这一章干了三件事:
- 搞清楚了Flask是什么——一个轻量、灵活的Python Web框架
- 搭建了开发环境——Python + 虚拟环境 + Flask
- 写出了第一个Hello World应用——不到10行代码
说实话,我每次带新人入门Flask,看到他们第一次跑通Hello World时那种「原来这么简单」的表情,都觉得特别有成就感。Web开发的门槛,被Flask拉低了一大截。
下一章,咱们会深入路由和视图函数,看看Flask到底是怎么处理请求的。到时候你会发现,Flask的设计思路真的很优雅。
公众号:蓝海资料掘金营,微信deep3321