使用Python构建RestFul API
Flask 是一个用 Python 编写的轻量级 Web 框架,广泛用于构建 API 和 Web 应用程序。它的设计目标是让开发者能够快速、简单地创建 API,同时支持扩展以满足复杂应用程序的需求。API(应用程序编程接口)是一种允许两个设备之间进行通信的机制,而 REST 是构建 RESTful API 的通用标准。RESTful API 将资源组织为一组唯一的 URI(统一资源标识符),通过这些 URI 可以区分服务器上的不同资源。
RESTful API 的基本操作
在 RESTful API 中,不同的 HTTP 方法表示不同的操作:
- POST:创建一个新资源。
- GET:读取现有资源的数据。
- PUT:更新现有资源。
- DELETE:删除现有资源。
在发送请求时,HTTP 请求正文中可以包含一个可选的数据有效载荷,通常以 JSON 格式编码。服务器接收请求后会进行处理,并将结果格式化为响应返回。
先决条件
在开始之前,您需要确保已安装以下工具和环境:
-Python3.x
virtualenv虚拟环境工具- Flask 框架
入门指南
环境配置
-
使用以下命令安装
virtualenv:pip3installvirtualenv -
创建虚拟环境并激活:
virtualenvpyEnv-ppython3 sourcepyEnv/bin/activate -
安装 Flask 框架:
pip3installflask -
确认所有依赖项已正确安装:
pipfreeze
创建 Flask 应用程序
- 在项目目录中创建一个名为
app.py的文件。 -
在
app.py中编写以下代码:fromflaskimportFlask,request,jsonify app = Flask(__name__)
@app.route(‘/hello’,methods=[‘GET’])
def hello_world():
returnjsonify({"message":"Hello,World!"})
if name == ‘main‘:
app.run(debug=True)
3. 运行应用程序:
```bash
pythonapp.py
在终端中,您将看到 Flask 提供的调试模式 URL,您可以通过浏览器访问该 URL 来测试应用程序。
添加数据库支持
为了存储和管理数据,我们将使用 SQLite 数据库。SQLite 是一个轻量级的嵌入式数据库管理系统,适合快速开发和测试。
配置数据库
-
创建一个名为
db.py的文件,并添加以下代码:importsqlite3 def db_connection(): conn=None try: conn=sqlite3.connect("events.sqlite") exceptsqlite3.Errorase: print(e) returnconn -
初始化数据库表:
conn=sqlite3.connect("events.sqlite") [cursor](https://www.explinks.com/provider/uid20241129965408092c70)=conn.cursor() sql_query = """ CREATETABLEIFNOTEXISTSevents( idINTEGERPRIMARYKEY, event_type TEXT NOT NULL, event_name TEXT NOT NULL ) """ cursor.execute(sql_query) conn.commit() conn.close()
实现 RESTful API 路由
在 app.py 中添加以下代码以实现基本的 GET 和 POST 操作:
from flask import Flask, request, jsonify
import sqlite3
app = Flask(__name__)
def db_connection():
conn = None
try:
conn = sqlite3.connect("events.sqlite")
except sqlite3.Error as e:
print(e)
return conn
@app.route('/events', methods=['GET', 'POST'])
def events():
conn = db_connection()
cursor = conn.cursor()
if request.method == 'GET':
cursor.execute("SELECT * FROM events")
events = [
dict(id=row[0], event_type=row[1], event_name=row[2])
for row in cursor.fetchall()
]
return jsonify(events)
if request.method == 'POST':
new_event = request.get_json()
sql = """INSERT INTO events (event_type, event_name) VALUES (?, ?)"""
cursor.execute(sql, (new_event["event_type"], new_event["event_name"]))
conn.commit()
return jsonify(new_event), 201
测试 API
总结
通过本文,您学习了如何使用 Flask 构建一个简单的 RESTful API,包括环境配置、数据库集成以及实现基本的 GET 和 POST 操作。接下来,您可以尝试扩展 API 功能,例如添加 PUT 和 DELETE 方法,或集成更复杂的数据库操作。
祝您开发顺利!
原文链接: https://cto.ai/blog/building-a-restful-api-with-python/
最新文章
- 为什么要使用Google My Business Reviews API
- 2025年7月第2周GitHub热门API推荐:rustfs/rustfs、pocketbase/pocketbase、smallcloudai/refact
- API设计的首要原则
- 左手用R右手Python系列——百度地图API调用与地址解析/逆解析
- 实测:阿里云百炼上线「全周期 MCP 服务」,AI 工具一站式托管
- 什么是GitHubActions实现开源项目的自动化
- 使用 Whisper API 通过设备麦克风把语音转录为文本
- 如何通过Password Manager(密码管理器)的API调用保护账户安全
- 如何为现代图形API编写渲染器 | Clean Rinse
- Python + BaiduTransAPI :快速检索千篇英文文献(附源码)
- Nexus API 的入门教程与使用指南
- API 规范:设计与最佳实践