
如何使用 node.js 和 express 创建 rest api
Flask 是一个用 Python 编写的轻量级 Web 框架,广泛用于构建 API 和 Web 应用程序。它的设计目标是让开发者能够快速、简单地创建 API,同时支持扩展以满足复杂应用程序的需求。API(应用程序编程接口)是一种允许两个设备之间进行通信的机制,而 REST 是构建 RESTful API 的通用标准。RESTful API 将资源组织为一组唯一的 URI(统一资源标识符),通过这些 URI 可以区分服务器上的不同资源。
在 RESTful API 中,不同的 HTTP 方法表示不同的操作:
在发送请求时,HTTP 请求正文中可以包含一个可选的数据有效载荷,通常以 JSON 格式编码。服务器接收请求后会进行处理,并将结果格式化为响应返回。
在开始之前,您需要确保已安装以下工具和环境:
-Python3.x
virtualenv
虚拟环境工具使用以下命令安装 virtualenv
:
pip3installvirtualenv
创建虚拟环境并激活:
virtualenvpyEnv-ppython3
sourcepyEnv/bin/activate
安装 Flask 框架:
pip3installflask
确认所有依赖项已正确安装:
pipfreeze
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()
在 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
通过本文,您学习了如何使用 Flask 构建一个简单的 RESTful API,包括环境配置、数据库集成以及实现基本的 GET 和 POST 操作。接下来,您可以尝试扩展 API 功能,例如添加 PUT 和 DELETE 方法,或集成更复杂的数据库操作。
祝您开发顺利!
原文链接: https://cto.ai/blog/building-a-restful-api-with-python/