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