利用python语言写一个好友管理系统,这个系统的功能需要有登录、注册、添加好友、删除好友、备注、展示功能。
时间: 2023-07-10 18:40:46 浏览: 46
好的,我可以给你一个基于 Python 语言的好友管理系统的完整实现,包括登录、注册、添加好友、删除好友、备注和展示好友列表等功能。
首先,我们需要使用 Python 的 Flask 框架来实现服务器端的代码。安装 Flask 可以使用 pip 命令:
```
pip install Flask
```
然后,我们创建一个名为 app.py 的文件,并编写如下代码:
```python
from flask import Flask, request, session, redirect, url_for, render_template
import sqlite3
app = Flask(__name__)
app.secret_key = 'your_secret_key'
# SQLite 数据库连接
conn = sqlite3.connect('friends.db')
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS users (username TEXT PRIMARY KEY, password TEXT)')
cursor.execute('CREATE TABLE IF NOT EXISTS friends (username TEXT, friend TEXT, remark TEXT, PRIMARY KEY(username, friend))')
conn.commit()
# 登录路由
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form.get('username')
password = request.form.get('password')
cursor.execute('SELECT password FROM users WHERE username=?', (username,))
result = cursor.fetchone()
if result and result[0] == password:
session['username'] = username
return redirect(url_for('show_friends'))
else:
return render_template('login.html', error='用户名或密码错误')
else:
return render_template('login.html')
# 注册路由
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form.get('username')
password = request.form.get('password')
cursor.execute('INSERT INTO users (username, password) VALUES (?, ?)', (username, password))
conn.commit()
return redirect(url_for('login'))
else:
return render_template('register.html')
# 添加好友路由
@app.route('/add_friend', methods=['POST'])
def add_friend():
username = session.get('username')
friend = request.form.get('friend')
remark = request.form.get('remark')
cursor.execute('INSERT INTO friends (username, friend, remark) VALUES (?, ?, ?)', (username, friend, remark))
conn.commit()
return redirect(url_for('show_friends'))
# 删除好友路由
@app.route('/delete_friend', methods=['POST'])
def delete_friend():
username = session.get('username')
friend = request.form.get('friend')
cursor.execute('DELETE FROM friends WHERE username=? AND friend=?', (username, friend))
conn.commit()
return redirect(url_for('show_friends'))
# 更新备注路由
@app.route('/update_remark', methods=['POST'])
def update_remark():
username = session.get('username')
friend = request.form.get('friend')
remark = request.form.get('remark')
cursor.execute('UPDATE friends SET remark=? WHERE username=? AND friend=?', (remark, username, friend))
conn.commit()
return redirect(url_for('show_friends'))
# 展示好友列表路由
@app.route('/')
@app.route('/show_friends')
def show_friends():
username = session.get('username')
if username:
cursor.execute('SELECT friend, remark FROM friends WHERE username=?', (username,))
friends = cursor.fetchall()
return render_template('friends.html', friends=friends)
else:
return redirect(url_for('login'))
# 注销路由
@app.route('/logout')
def logout():
session.pop('username', None)
return redirect(url_for('login'))
if __name__ == '__main__':
app.run(debug=True)
```
在这个代码中,我们实现了以下功能:
1. 创建了一个 SQLite 数据库,并在其中创建了两个表,一个是 users 表用于保存用户的账号信息,另一个是 friends 表用于保存用户的好友信息。
2. 实现了登录和注册的功能,其中登录需要验证用户名和密码是否匹配,注册需要向 users 表中插入新的账号信息。
3. 实现了添加好友、删除好友、更新备注和展示好友列表的功能,其中添加好友需要向 friends 表中插入新的好友信息,删除好友需要从 friends 表中删除指定的好友信息,更新备注需要修改 friends 表中指定好友的备注信息。
4. 实现了一个简单的模板渲染,将好友列表展示在前端页面上。
5. 实现了一个注销的功能,用于注销当前登录的用户。
接下来,我们需要创建两个 HTML 模板文件,一个是 login.html,另一个是 friends.html。在 templates 目录下创建这两个文件,并编写如下代码:
login.html:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>好友管理系统 - 登录</title>
</head>
<body>
{% if error %}
<p>{{ error }}</p>
{% endif %}
<form method="post" action="{{ url_for('login') }}">
<label>用户名:</label>
<input type="text" name="username">
<br>
<label>密码:</label>
<input type="password" name="password">
<br>
<button type="submit">登录</button>
</form>
<a href="{{ url_for('register') }}">注册</a>
</body>
</html>
```
friends.html:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>好友管理系统 - 好友列表</title>
</head>
<body>
<h1>好友列表</h1>
<p>当前用户:{{ session.get('username') }}</p>
<form method="post" action="{{ url_for('add_friend') }}">
<label>好友用户名:</label>
<input type="text" name="friend">
<br>
<label>备注:</label>
<input type="text" name="remark">
<br>
<button type="submit">添加好友</button>
</form>
<hr>
<table>
<thead>
<tr>
<th>好友</th>
<th>备注</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% if friends %}
{% for friend in friends %}
<tr>
<td>{{ friend[0] }}</td>
<td>
<form method="post" action="{{ url_for('update_remark') }}">
<input type="hidden" name="friend" value="{{ friend[0] }}">
<input type="text" name="remark" value="{{ friend[1] }}">
<button type="submit">保存</button>
</form>
</td>
<td>
<form method="post" action="{{ url_for('delete_friend') }}">
<input type="hidden" name="friend" value="{{ friend[0] }}">
<button type="submit">删除</button>
</form>
</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="3">暂无好友</td>
</tr>
{% endif %}
</tbody>
</table>
<hr>
<a href="{{ url_for('logout') }}">注销</a>
</body>
</html>
```
最后,我们启动服务器,访问 http://localhost:5000 即可进入登录页面,输入正确的用户名和密码后即可进入好友列表页面,添加、删除好友和更新备注信息等功能也都可以正常使用。