写一个好友管理系统能登录,带面板的
时间: 2024-03-16 10:44:58 浏览: 13
好的,以下是一个简单的好友管理系统的代码示例,包括登录和面板功能。这里使用了Python Flask框架和SQLite数据库。
首先,我们需要安装Flask和SQLite:
```python
pip install flask
pip install sqlite3
```
接下来,创建一个名为app.py的Python文件,并添加以下代码:
```python
from flask import Flask, render_template, request, redirect, url_for, session
import sqlite3
app = Flask(__name__)
app.secret_key = 'secret_key'
@app.route('/')
def login():
return render_template('login.html')
@app.route('/login', methods=['POST'])
def do_login():
username = request.form['username']
password = request.form['password']
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM users WHERE username = ? AND password = ?", (username, password))
user = cursor.fetchone()
if user:
session['logged_in'] = True
session['username'] = username
return redirect(url_for('home'))
else:
return render_template('login.html', error='Invalid username or password')
@app.route('/home')
def home():
if session.get('logged_in'):
return render_template('home.html', username=session['username'])
else:
return redirect(url_for('login'))
@app.route('/logout')
def logout():
session['logged_in'] = False
session.pop('username', None)
return redirect(url_for('login'))
@app.route('/friends')
def friends():
if session.get('logged_in'):
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM friends WHERE username = ?", (session['username'],))
friends = cursor.fetchall()
conn.close()
return render_template('friends.html', friends=friends)
else:
return redirect(url_for('login'))
@app.route('/add', methods=['POST'])
def add():
name = request.form['name']
phone = request.form['phone']
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO friends (username, name, phone) VALUES (?, ?, ?)", (session['username'], name, phone))
conn.commit()
conn.close()
return redirect(url_for('friends'))
if __name__ == '__main__':
app.run(debug=True)
```
接下来,我们需要创建一个名为users.db的SQLite数据库,并在其中创建两个名为users和friends的表。users表用于存储用户名和密码,friends表用于存储每个用户的好友列表。以下是创建表的SQL语句:
```sql
CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT);
CREATE TABLE friends (id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, name TEXT, phone TEXT);
```
现在,我们可以创建以下三个HTML模板:login.html、home.html和friends.html。这些模板可以在Flask应用程序中的templates文件夹中创建。
login.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
{% if error %}
<p>{{ error }}</p>
{% endif %}
<form method="POST" action="/login">
<input type="text" name="username" placeholder="Username"><br>
<input type="password" name="password" placeholder="Password"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
```
home.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>Welcome {{ username }}</h1>
<a href="/friends">Friends</a><br>
<a href="/logout">Logout</a>
</body>
</html>
```
friends.html:
```html
<!DOCTYPE html>
<html>
<head>
<title>Friends</title>
</head>
<body>
<h1>Friends</h1>
<table>
<tr>
<th>Name</th>
<th>Phone</th>
</tr>
{% for friend in friends %}
<tr>
<td>{{ friend[2] }}</td>
<td>{{ friend[3] }}</td>
</tr>
{% endfor %}
</table>
<form method="POST" action="/add">
<input type="text" name="name" placeholder="Name"><br>
<input type="text" name="phone" placeholder="Phone"><br>
<input type="submit" value="Add">
</form>
<a href="/home">Home</a><br>
<a href="/logout">Logout</a>
</body>
</html>
```
现在,我们可以运行应用程序:
```python
python app.py
```
然后,在浏览器中打开http://localhost:5000,您将看到登录页面。输入正确的用户名和密码,您将被重定向到主页,其中您可以访问您的好友列表,添加新的好友并注销。