Flask(一)概述与快速入门
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 的项目结构与环境配置,以便构建更复杂的应用程序。