flask+python+mysql实现登录注册代码
时间: 2023-09-27 16:10:13 浏览: 17
可以的,您需要一个Flask应用程序、MySQL数据库和Python编程知识来实现它。以下是一个基本的代码示例:
from flask import Flask, render_template, request, redirect, url_for
from flask_mysqldb import MySQL
app = Flask(__name__)
# MySQL配置
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'mydatabase'
# 初始化MySQL
mysql = MySQL(app)
# 登录页面处理
@app.route('/')
def login():
return render_template('login.html')
# 注册页面处理
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
# 获取表单数据
name = request.form['name']
email = request.form['email']
password = request.form['password']
# 将用户数据插入数据库
cur = mysql.connection.cursor()
cur.execute("INSERT INTO users (name, email, password) VALUES (%s, %s, %s)", (name, email, password))
mysql.connection.commit()
cur.close()
# 重定向到登录页面
return redirect(url_for('login'))
# 返回注册页面
return render_template('register.html')
# 验证用户登录
@app.route('/login', methods=['POST'])
def verify_login():
# 获取表单数据
email = request.form['email']
password = request.form['password']
# 查询数据库
cur = mysql.connection.cursor()
cur.execute("SELECT * FROM users WHERE email=%s AND password=%s", (email, password))
user = cur.fetchone()
cur.close()
if user is None:
# 验证失败
return "Invalid email or password"
# 验证成功
return "Welcome, " + user['name']
if __name__ == '__main__':
app.run()
相关推荐







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'] + '
登出' else: return '未登录
登录' 你还需要创建一个注册页面和登录页面的模板文件。 html <form method="POST" action="/register"> <input type="text" name="username" placeholder="用户名">
<input type="password" name="password" placeholder="密码">
<button type="submit">注册</button> </form> html <form method="POST" action="/login"> <input type="text" name="username" placeholder="用户名">
<input type="password" name="password" placeholder="密码">
<button type="submit">登录</button> </form> {{ message }} 最后,我们需要运行Flask应用程序。 python if __name__ == '__main__': app.run() 现在,你可以通过访问http://localhost:5000/register来注册新用户,并访问http://localhost:5000/login来登录。登出功能可以通过访问http://localhost:5000/logout来实现。主页会展示当前登录状态。 以上就是使用Python的Flask和MySQL实现用户注册、登录和登出的简单示例。希望能帮到你!
登出' else: return '未登录
登录' 你还需要创建一个注册页面和登录页面的模板文件。 html <form method="POST" action="/register"> <input type="text" name="username" placeholder="用户名">
<input type="password" name="password" placeholder="密码">
<button type="submit">注册</button> </form> html <form method="POST" action="/login"> <input type="text" name="username" placeholder="用户名">
<input type="password" name="password" placeholder="密码">
<button type="submit">登录</button> </form> {{ message }} 最后,我们需要运行Flask应用程序。 python if __name__ == '__main__': app.run() 现在,你可以通过访问http://localhost:5000/register来注册新用户,并访问http://localhost:5000/login来登录。登出功能可以通过访问http://localhost:5000/logout来实现。主页会展示当前登录状态。 以上就是使用Python的Flask和MySQL实现用户注册、登录和登出的简单示例。希望能帮到你!




好的,以下是一个使用layui+Python+Flask+MySQL实现的分页代码示例:
HTML代码:
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>分页示例</title>
</head>
<body>
姓名
年龄
性别
地址
<script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script>
<script>
layui.use(['laypage', 'layer'], function(){
var laypage = layui.laypage,
layer = layui.layer;
laypage.render({
elem: 'page',
limit: 10,
curr: 1,
count: 100,
jump: function(obj, first){
if(!first){
$.ajax({
url: '/get_data',
type: 'POST',
dataType: 'json',
data: {
page: obj.curr,
limit: obj.limit
},
success: function(data){
if(data.code == 0){
var html = '';
for(var i=0;i<data.data.length;i++){
html += '<tr>';
html += '<td>'+data.data[i].name+'';
html += ''+data.data[i].age+' ';
html += ''+data.data[i].gender+' ';
html += ''+data.data[i].address+' ';
html += '';
}
$('#table_data').html(html);
}
else{
layer.msg('获取数据失败!');
}
},
error: function(){
layer.msg('获取数据失败!');
}
});
}
}
});
});
</script>
</body>
</html>
Python代码:
python
from flask import Flask, render_template, request, jsonify
import pymysql
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/get_data', methods=['POST'])
def get_data():
page = request.form.get('page', 1, type=int)
limit = request.form.get('limit', 10, type=int)
offset = (page - 1) * limit
conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8')
cursor = conn.cursor(pymysql.cursors.DictCursor)
cursor.execute('SELECT * FROM users LIMIT %s, %s', (offset, limit))
data = cursor.fetchall()
cursor.execute('SELECT COUNT(*) FROM users')
count = cursor.fetchone()['COUNT(*)']
cursor.close()
conn.close()
return jsonify({'code': 0, 'msg': '', 'data': data, 'count': count})
if __name__ == '__main__':
app.run(debug=True)
这个示例使用了jQuery和layui库,通过ajax异步获取分页数据。在Python部分,使用了pymysql库连接MySQL数据库,通过分页查询获取数据并返回给前端。





