现在这个好友管理系统只需要你写出后端部分的代码。
时间: 2024-03-13 11:46:38 浏览: 9
好的,下面是后端代码的实现,我使用了 Flask 框架和 SQLite 数据库来实现:
```
from flask import Flask, request, jsonify
import sqlite3
app = Flask(__name__)
# 数据库连接
def get_db():
conn = sqlite3.connect('friends.db')
return conn
# 注册
@app.route('/register', methods=['POST'])
def register():
username = request.form['username']
password = request.form['password']
conn = get_db()
cur = conn.cursor()
# 检查用户名是否已经存在
cur.execute('SELECT * FROM users WHERE username = ?', (username,))
if cur.fetchone() is not None:
return jsonify({'error': '用户名已存在'})
# 插入新用户
cur.execute('INSERT INTO users (username, password) VALUES (?, ?)', (username, password))
conn.commit()
return jsonify({'success': True})
# 登录
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
conn = get_db()
cur = conn.cursor()
# 检查用户名和密码是否正确
cur.execute('SELECT * FROM users WHERE username = ? AND password = ?', (username, password))
user = cur.fetchone()
if user is None:
return jsonify({'error': '用户名或密码错误'})
# 登录成功,返回用户信息
return jsonify({'success': True, 'user_id': user[0], 'username': user[1]})
# 获取好友列表
@app.route('/friends/<int:user_id>', methods=['GET'])
def get_friends(user_id):
conn = get_db()
cur = conn.cursor()
# 查询好友列表
cur.execute('SELECT * FROM friends WHERE user_id = ?', (user_id,))
friends = cur.fetchall()
# 查询好友的用户名和备注
friend_list = []
for friend in friends:
cur.execute('SELECT username, remark FROM users WHERE id = ?', (friend[1],))
friend_info = cur.fetchone()
friend_list.append({'id': friend[1], 'username': friend_info[0], 'remark': friend[2]})
return jsonify({'success': True, 'friends': friend_list})
# 添加好友
@app.route('/add_friend', methods=['POST'])
def add_friend():
user_id = request.form['user_id']
friend_name = request.form['friend_name']
remark = request.form['remark']
conn = get_db()
cur = conn.cursor()
# 查询好友是否存在
cur.execute('SELECT * FROM users WHERE username = ?', (friend_name,))
friend = cur.fetchone()
if friend is None:
return jsonify({'error': '好友不存在'})
# 查询好友关系是否已经存在
cur.execute('SELECT * FROM friends WHERE user_id = ? AND friend_id = ?', (user_id, friend[0]))
if cur.fetchone() is not None:
return jsonify({'error': '已经是好友'})
# 插入好友关系
cur.execute('INSERT INTO friends (user_id, friend_id, remark) VALUES (?, ?, ?)', (user_id, friend[0], remark))
conn.commit()
return jsonify({'success': True})
# 删除好友
@app.route('/delete_friend', methods=['POST'])
def delete_friend():
user_id = request.form['user_id']
friend_id = request.form['friend_id']
conn = get_db()
cur = conn.cursor()
# 删除好友关系
cur.execute('DELETE FROM friends WHERE user_id = ? AND friend_id = ?', (user_id, friend_id))
conn.commit()
return jsonify({'success': True})
```
这里的代码实现了注册、登录、获取好友列表、添加好友、删除好友等功能。您需要根据实际需求进行修改和扩展。同时,您还需要创建一个名为 `friends.db` 的 SQLite 数据库,并在其中创建以下表格:
```
CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT);
CREATE TABLE friends (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, friend_id INTEGER, remark TEXT);
```
这些表格用于存储用户信息和好友关系。当然,您也可以根据需要修改表格结构。