基于flask框架和mysql数据库的登陆注册界面
时间: 2023-10-10 21:08:53 浏览: 47
好的,下面是一个基于 Flask 框架和 MySQL 数据库的登录注册界面的示例代码:
首先,需要安装 Flask 和 MySQL-Python 模块:
```bash
pip install Flask
pip install MySQL-Python
```
然后,创建一个名为 `app.py` 的 Python 文件,用于启动 Flask 应用和处理请求:
```python
from flask import Flask, render_template, request, redirect, url_for
import MySQLdb
app = Flask(__name__)
# 连接 MySQL 数据库
db = MySQLdb.connect(host="localhost", user="root", password="password", db="mydatabase")
# 注册页面
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
# 获取表单数据
username = request.form['username']
password = request.form['password']
# 插入用户数据到数据库
cursor = db.cursor()
cursor.execute("INSERT INTO users (username, password) VALUES (%s, %s)", (username, password))
db.commit()
# 跳转到登录页面
return redirect(url_for('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 = db.cursor()
cursor.execute("SELECT * FROM users WHERE username=%s AND password=%s", (username, password))
user = cursor.fetchone()
if user:
# 跳转到欢迎页面
return render_template('welcome.html', username=username)
else:
# 显示错误信息
return render_template('login.html', error='用户名或密码错误')
# 显示登录页面
return render_template('login.html')
if __name__ == '__main__':
app.run(debug=True)
```
在上面的代码中,我们定义了两个路由:`/register` 和 `/login`。`/register` 路由用于显示注册页面和处理注册表单,`/login` 路由用于显示登录页面和处理登录表单。在处理表单时,我们先连接到 MySQL 数据库,然后执行插入或查询操作,最后根据结果跳转到相应的页面或显示错误信息。
接下来,在同一目录下创建一个名为 `templates` 的文件夹,并在其中创建三个 HTML 文件:`register.html`、`login.html` 和 `welcome.html`,分别用于显示注册页面、登录页面和欢迎页面。
`register.html` 文件内容如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>注册</title>
</head>
<body>
<h1>注册</h1>
<form method="post" action="/register">
<label>用户名:</label>
<input type="text" name="username" required><br>
<label>密码:</label>
<input type="password" name="password" required><br>
<input type="submit" value="注册">
</form>
</body>
</html>
```
`login.html` 文件内容如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>登录</title>
</head>
<body>
<h1>登录</h1>
{% if error %}
<p style="color: red">{{ error }}</p>
{% endif %}
<form method="post" action="/login">
<label>用户名:</label>
<input type="text" name="username" required><br>
<label>密码:</label>
<input type="password" name="password" required><br>
<input type="submit" value="登录">
</form>
</body>
</html>
```
`welcome.html` 文件内容如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>欢迎</title>
</head>
<body>
<h1>欢迎 {{ username }}!</h1>
<a href="/login">退出</a>
</body>
</html>
```
最后,在 MySQL 数据库中创建一个名为 `users` 的表,用于存储用户数据:
```sql
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
);
```
现在,运行 `app.py` 文件,访问 `http://localhost:5000/register` 可以看到注册页面,填写用户名和密码后点击注册按钮即可完成注册。注册成功后会自动跳转到登录页面,输入刚才注册的用户名和密码后点击登录按钮即可进入欢迎页面。在欢迎页面中可以看到登录的用户名,并且可以点击退出链接返回登录页面。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)