1.1 Flask概述

Flask 是一个基于 Python 的轻量级 Web 框架,它提供了简单而强大的工具,使开发者能够快速构建 Web 应用。Flask 遵循 WSGI 规范,并使用 Jinja2 作为模板引擎。

1.1.1 Flask 的特点

轻量级:核心仅包含路由和 WSGI 支持,其他功能通过扩展实现。

模块化:支持插件化开发,灵活扩展。

Jinja2 模板引擎:强大易用的 HTML 渲染方式。

内置开发服务器:支持调试模式,便于开发和测试。

RESTful 友好:适用于 API 开发。

1.1.2 适用场景

小型和中型 Web 应用

RESTful API 服务器

原型开发和快速迭代

需要轻量级解决方案的项目

1.2 安装 Flask

在使用 Flask 之前,需要先安装它。Flask 可以通过 pip 进行安装。

pip install flask

可以验证安装是否成功:

python -c "import flask; print(flask.__version__)"

1.3 创建第一个 Flask 应用

我们从一个最简单的 "Hello, World!" 示例开始。

1.3.1 编写基础应用

创建 app.py 文件,并输入以下代码:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, Flask!"

if __name__ == '__main__':
    app.run(debug=True)

1.3.2 运行 Flask 应用

使用以下命令启动应用:

python app.py

默认情况下,Flask 运行在 http://127.0.0.1:5000/,打开浏览器访问该 URL,即可看到 Hello, Flask!。

1.4 Flask 的基本概念

1.4.1 应用对象 Flask

Flask 类用于创建应用实例。

app = Flask(__name__)

__name__ 变量指示 Python 运行模块的名称,Flask 需要它来确定资源的根目录。

1.4.2 路由 @app.route

@app.route 是 Flask 的路由装饰器,用于将 URL 映射到函数。

@app.route('/hello')
def hello():
    return "Hello, World!"

访问 http://127.0.0.1:5000/hello 时,会调用 hello 函数并返回 Hello, World!。

1.4.3 启动服务器 app.run()

app.run(debug=True) 用于运行 Flask 开发服务器。

debug=True:启用调试模式,代码变更后自动重启。

host='0.0.0.0':允许外部访问。

port=8000:修改默认端口。

app.run(host='0.0.0.0', port=8000, debug=True)

1.5 请求与响应

Flask 提供了 request 对象用于处理 HTTP 请求,Response 对象用于返回 HTTP 响应。

1.5.1 获取请求参数

from flask import request

@app.route('/greet')
def greet():
    name = request.args.get('name', 'Guest')
    return f'Hello, {name}!'

访问 http://127.0.0.1:5000/greet?name=John,返回 Hello, John!。

1.5.2 处理 JSON 请求

from flask import jsonify

@app.route('/json', methods=['POST'])
def json_example():
    data = request.get_json()

    return jsonify(data)

1.5.3 自定义 HTTP 响应

from flask import Response

@app.route('/custom_response')
def custom_response():
    return Response("Custom Response", status=202, mimetype='text/plain')

1.6 结语

本章介绍了 Flask 的基本概念、安装、入门示例以及基本的 HTTP 处理方式。在下一章,我们将深入分析 Flask 的项目结构与环境配置,以便构建更复杂的应用程序。