flask框架登录注册页面用MySQL
时间: 2023-11-22 09:47:40 浏览: 51
以下是使用Flask框架和MySQL实现登录注册页面的示例代码:
1. 首先需要安装Flask和pymysql库,可以使用以下命令进行安装:
```python
pip install flask
pip install pymysql
```
2. 在MySQL中创建一个名为`cat1`的数据库,并创建一个名为`students`的表,表中包含`id`、`name`和`password`三个字段。
3. 在`app.py`文件中编写Flask应用程序的代码,包括路由、模板等。以下是一个简单的示例:
```python
from flask import Flask, render_template, request, redirect, url_for
import pymysql
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret_key'
# 连接MySQL数据库
conn = pymysql.connect(host='localhost', user='root', password='12345', db='cat1', charset='utf8')
cur = conn.cursor()
# 注册路由
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
# 获取表单数据
username = request.form['username']
password = request.form['password']
# 查询用户名是否已存在
sql = "SELECT * FROM students WHERE name='%s'" % username
cur.execute(sql)
result = cur.fetchone()
if result:
return '该用户名已被注册'
else:
# 插入新用户
sql = "INSERT INTO students(name, password) VALUES ('%s', '%s')" % (username, password)
cur.execute(sql)
conn.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']
# 查询用户是否存在
sql = "SELECT * FROM students WHERE name='%s' AND password='%s'" % (username, password)
cur.execute(sql)
result = cur.fetchone()
if result:
return '登录成功'
else:
return '用户名或密码错误'
return render_template('login.html')
if __name__ == '__main__':
app.run()
```
4. 在`templates`文件夹中创建`register.html`和`login.html`两个模板文件,分别用于显示注册和登录页面的表单。以下是一个简单的示例:
`register.html`:
```html
<!DOCTYPE html>
<html>
<head>
<title>注册</title>
</head>
<body>
<h1>注册</h1>
<form method="post" action="{{ url_for('register') }}">
<label>用户名:</label>
<input type="text" name="username"><br>
<label>密码:</label>
<input type="password" name="password"><br>
<input type="submit" value="注册">
</form>
</body>
</html>
```
`login.html`:
```html
<!DOCTYPE html>
<html>
<head>
<title>登录</title>
</head>
<body>
<h1>登录</h1>
<form method="post" action="{{ url_for('login') }}">
<label>用户名:</label>
<input type="text" name="username"><br>
<label>密码:</label>
<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
```