
使用README风格的API文档提升您的API设计
本文将为您详细讲解如何使用 Flask 框架创建 REST API,从搭建开发环境到实现 CRUD 功能,并演示如何使用 蓝图 和 Jinja 模板 扩展应用程序。
首先,创建项目目录并进入:
mkdir flask_demo
cd flask_demo
然后创建虚拟环境:
python -m venv .venv
激活虚拟环境:
Windows:
.venv\Scripts\activate
macOS/Linux:
source .venv/bin/activate
退出虚拟环境:
deactivate
创建 requirements.txt
文件,添加 Flask 依赖:
Flask==2.3.3
安装依赖:
pip install -r requirements.txt
至此,开发环境已准备就绪。
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/basic_api/hello_world', methods=['GET'])
def hello_world():
return jsonify(message="Hello, World!")
if __name__ == '__main__':
app.run(debug=True)
访问:
http://localhost:5000/basic_api/hello_world
输出:
{ "message": "Hello, World!" }
实现一个项目实体管理 API,端点如下:
示例代码:
from flask import Flask, request, jsonify
app = Flask(__name__)
entities = []
@app.route('/entities', methods=['GET', 'POST'])
def manage_entities():
if request.method == 'GET':
return jsonify(entities)
elif request.method == 'POST':
entity = request.json
entities.append(entity)
return jsonify(entity), 201
@app.route('/entities/ < int:entity_id > ', methods=['GET', 'PUT', 'DELETE'])
def manage_entity(entity_id):
if request.method == 'GET':
return jsonify(entities[entity_id])
elif request.method == 'PUT':
entities[entity_id] = request.json
return jsonify(entities[entity_id])
elif request.method == 'DELETE':
entities.pop(entity_id)
return '', 204
蓝图(Blueprints)有助于模块化和扩展应用程序。
创建目录结构:
blueprints/
└─ basic_endpoints/
└─ __init__.py
内容示例:
from flask import Blueprint, jsonify
basic_endpoints = Blueprint('basic_endpoints', __name__)
@basic_endpoints.route('/basic_api/hello_world', methods=['GET'])
def hello_world():
return jsonify(message="Hello, World!")
from flask import Flask
from blueprints.basic_endpoints import basic_endpoints
app = Flask(__name__)
app.register_blueprint(basic_endpoints)
if __name__ == '__main__':
app.run(debug=True)
创建 templates/example.html
文件:
< !DOCTYPE html >
< html lang="en" >
< head >
< meta charset="UTF-8" >
< title > Example < /title >
< /head >
< body >
< p > {{ top }} < /p >
< p > {{ bottom }} < /p >
< /body >
< /html >
蓝图示例:
from flask import Blueprint, render_template, request
template_blueprint = Blueprint('template_blueprint', __name__)
@template_blueprint.route('/jinja_template', methods=['GET'])
def jinja_template():
top = request.args.get('top', 'Default Top Text')
bottom = request.args.get('bottom', 'Default Bottom Text')
return render_template('example.html', top=top, bottom=bottom)
访问:
http://localhost:5000/jinja_template?top=Hello&bottom=World
创建 static/example.css
文件:
body {
font-family: Arial, sans-serif;
color: #333;
}
在 HTML 中引用:
< link rel="stylesheet" href="{{ url_for('static', filename='example.css') }}" >
刷新页面即可应用样式。
本文涵盖了 Flask REST API 的核心内容:
通过这些步骤,您可以构建一个功能完善、可扩展的 Flask REST API 应用程序。