原创

使用 Python 构建简单的 RESTful API

温馨提示:
本文最后更新于 2024年07月22日,已超过 255 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

使用 Python 构建简单的 RESTful API

1. 简介

本文档介绍如何使用 Python 和 Flask 框架构建简单的 RESTful API,用于管理用户信息。

2. 环境准备

  • Python 3.6 或更高版本
  • Flask 框架
  • pip 包管理工具

使用 pip 安装 Flask:

bash pip install Flask

3. 项目结构

api/ ├── app.py ├── models.py ├── config.py └── tests/ └── test_api.py

4. 代码实现

4.1 app.py

```python from flask import Flask, jsonify, request from models import User

app = Flask(name)

@app.route('/users', methods=['GET']) def get_users(): users = User.get_all() return jsonify(users)

@app.route('/users/', methods=['GET']) def get_user(user_id): user = User.get_by_id(user_id) if user: return jsonify(user) else: return jsonify({'message': 'User not found'}), 404

@app.route('/users', methods=['POST']) def create_user(): data = request.get_json() user = User(**data) user.save() return jsonify(user), 201

@app.route('/users/', methods=['PUT']) def update_user(user_id): user = User.get_by_id(user_id) if user: data = request.get_json() user.update(data) return jsonify(user) else: return jsonify({'message': 'User not found'}), 404

@app.route('/users/', methods=['DELETE']) def delete_user(user_id): user = User.get_by_id(user_id) if user: user.delete() return jsonify({'message': 'User deleted'}), 204 else: return jsonify({'message': 'User not found'}), 404

if name == 'main': app.run(debug=True) ```

4.2 models.py

```python from config import DATABASE_URI import sqlite3

class User: def init(self, id=None, name=None, email=None): self.id = id self.name = name self.email = email

@classmethod
def get_all(cls):
    conn = sqlite3.connect(DATABASE_URI)
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM users')
    users = cursor.fetchall()
    conn.close()
    return [cls(*user) for user in users]

@classmethod
def get_by_id(cls, user_id):
    conn = sqlite3.connect(DATABASE_URI)
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM users WHERE id=?', (user_id,))
    user = cursor.fetchone()
    conn.close()
    if user:
        return cls(*user)
    else:
        return None

def save(self):
    conn = sqlite3.connect(DATABASE_URI)
    cursor = conn.cursor()
    cursor.execute('INSERT INTO users (name, email) VALUES (?, ?)', (self.name, self.email))
    self.id = cursor.lastrowid
    conn.commit()
    conn.close()

def update(self, data):
    conn = sqlite3.connect(DATABASE_URI)
    cursor = conn.cursor()
    cursor.execute('UPDATE users SET name=?, email=? WHERE id=?', (data.get('name'), data.get('email'), self.id))
    conn.commit()
    conn.close()
    self.name = data.get('name')
    self.email = data.get('email')

def delete(self):
    conn = sqlite3.connect(DATABASE_URI)
    cursor = conn.cursor()
    cursor.execute('DELETE FROM users WHERE id=?', (self.id,))
    conn.commit()
    conn.close()

```

4.3 config.py

python DATABASE_URI = 'database.db'

5. 运行 API

在项目根目录下运行以下命令:

bash flask run

6. 测试 API

  • 使用 Postman 或 curl 工具发送 HTTP 请求到 API 地址。
  • 例如:获取所有用户列表:GET /users
  • 创建新用户:POST /users,请求体:{"name": "John Doe", "email": "[email protected]"}

7. 总结

本文档介绍了使用 Python 和 Flask 框架构建简单的 RESTful API 的基本步骤,涵盖了常见的 CRUD 操作。用户可以根据实际需求扩展 API 功能和数据库模型。

正文到此结束