【python】flask + mysql 实现用户注册,登录和登出
时间: 2023-10-24 18:03:08 浏览: 71
Python中使用Flask和MySQL可以很方便地实现用户注册、登录和登出功能。
首先,我们需要安装Flask和PyMySQL库,并导入所需的模块。
```python
from flask import Flask, render_template, request, redirect, session
import pymysql
```
接下来,我们需要创建一个Flask应用程序,并配置数据库连接。
```python
app = Flask(__name__)
app.secret_key = 'your_secret_key' # 设置session密钥
conn = pymysql.connect(
host='your_host',
user='your_username',
password='your_password',
db='your_database'
)
```
然后,我们可以定义一些路由来处理用户注册和登录的请求。
```python
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
# 在这里将用户信息插入到数据库中
cursor = conn.cursor()
sql = "INSERT INTO users (username, password) VALUES (%s, %s)"
cursor.execute(sql, (username, password))
conn.commit()
cursor.close()
return redirect('/login')
return render_template('register.html')
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
# 在这里从数据库中验证用户信息
cursor = conn.cursor()
sql = "SELECT * FROM users WHERE username = %s AND password = %s"
cursor.execute(sql, (username, password))
user = cursor.fetchone()
cursor.close()
if user:
session['username'] = username
return redirect('/')
else:
return render_template('login.html', message='用户名或密码错误')
return render_template('login.html')
@app.route('/logout')
def logout():
session.pop('username', None)
return redirect('/login')
```
最后,我们可以定义一个主页路由来展示当前登录状态。
```python
@app.route('/')
def home():
if 'username' in session:
return '当前用户:' + session['username'] + '<br><a href="/logout">登出</a>'
else:
return '未登录<br><a href="/login">登录</a>'
```
你还需要创建一个注册页面和登录页面的模板文件。
```html
<!-- register.html -->
<form method="POST" action="/register">
<input type="text" name="username" placeholder="用户名"><br>
<input type="password" name="password" placeholder="密码"><br>
<button type="submit">注册</button>
</form>
```
```html
<!-- login.html -->
<form method="POST" action="/login">
<input type="text" name="username" placeholder="用户名"><br>
<input type="password" name="password" placeholder="密码"><br>
<button type="submit">登录</button>
</form>
<p>{{ message }}</p>
```
最后,我们需要运行Flask应用程序。
```python
if __name__ == '__main__':
app.run()
```
现在,你可以通过访问http://localhost:5000/register来注册新用户,并访问http://localhost:5000/login来登录。登出功能可以通过访问http://localhost:5000/logout来实现。主页会展示当前登录状态。
以上就是使用Python的Flask和MySQL实现用户注册、登录和登出的简单示例。希望能帮到你!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)