flask框架实现登录注册功能
时间: 2023-11-18 12:44:15 浏览: 44
在 Flask 框架中实现登录注册功能通常需要以下步骤:
1. 创建一个 Flask 应用:
```python
from flask import Flask, render_template, request
app = Flask(__name__)
```
2. 创建一个数据库,用于存储用户信息。你可以选择 SQLite、MySQL 或其他适合的数据库。这里以 SQLite 为例:
```python
import sqlite3
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
# 创建用户表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT NOT NULL,
password TEXT NOT NULL
)
''')
conn.commit()
```
3. 创建注册页面和对应的视图函数:
```python
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
# 检查用户名是否已存在
cursor.execute('SELECT * FROM users WHERE username = ?', (username,))
result = cursor.fetchone()
if result:
error = '用户名已存在'
return render_template('register.html', error=error)
# 将用户信息插入数据库
cursor.execute('INSERT INTO users (username, password) VALUES (?, ?)', (username, password))
conn.commit()
return '注册成功!'
return render_template('register.html')
```
4. 创建登录页面和对应的视图函数:
```python
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
# 查询数据库中的用户信息
cursor.execute('SELECT * FROM users WHERE username = ? AND password = ?', (username, password))
result = cursor.fetchone()
if result:
return '登录成功!'
error = '用户名或密码错误'
return render_template('login.html', error=error)
return render_template('login.html')
```
5. 创建注册和登录页面的 HTML 模板(register.html 和 login.html),并将表单的提交地址分别设置为 `/register` 和 `/login`。
6. 运行 Flask 应用:
```python
if __name__ == '__main__':
app.run()
```
以上是一个简单的使用 Flask 实现登录注册功能的示例。你可以根据需要进行修改和完善。