python写一个用户注册和登录的网页
时间: 2023-12-15 16:04:39 浏览: 28
以下是一个简单的用户注册和登录的网页的Python代码示例,使用的是Flask框架和SQLite数据库。
注意:这个示例仅供参考,实际应用中需要加强安全性和完善功能。
```python
from flask import Flask, render_template, request, session, redirect, url_for
import sqlite3
app = Flask(__name__)
app.secret_key = 'your_secret_key'
@app.route('/')
def index():
if 'username' in session:
username = session['username']
return 'Logged in as ' + username + '<br>' + \
"<b><a href = '/logout'>click here to log out</a></b>"
return "You are not logged in <br><a href = '/login'>" + \
"click here to log in</a>"
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
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))
result = cursor.fetchall()
if len(result) > 0:
session['username'] = username
return redirect(url_for('index'))
else:
return 'Invalid username or password'
return render_template('login.html')
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
cursor.execute('SELECT * FROM users WHERE username=?', (username,))
result = cursor.fetchall()
if len(result) > 0:
return 'Username already exists'
else:
cursor.execute('INSERT INTO users (username, password) VALUES (?, ?)', (username, password))
conn.commit()
return redirect(url_for('login'))
return render_template('register.html')
@app.route('/logout')
def logout():
session.pop('username', None)
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
```
在这个示例中,我们使用了Flask框架来搭建网页,使用SQLite数据库来存储用户信息。用户注册和登录的页面分别对应`register.html`和`login.html`模板,可以根据需要进行自定义。
注意,在实际应用中,需要加强安全性,例如使用加密算法对密码进行加密存储、使用验证码等。