初步完成登录、注册、修改账号、主页内容

This commit is contained in:
2024-06-13 13:53:54 +08:00
parent e48e752b91
commit ad767a806b
31 changed files with 1291 additions and 488 deletions

View File

@@ -1,15 +1,38 @@
from flask import render_template, request, flash, redirect, url_for
from flask import render_template, request, redirect, url_for
from .get_db import get_db
import re
def signup():
error_messages = {
'username': '',
'mobileNo': '',
'password': '',
'confirmPassword': ''
}
if request.method == 'GET':
return render_template('signup.html')
return render_template('signup.html', errors=error_messages)
if request.method == 'POST':
id = request.form['cardCode']
name = request.form['name']
username = request.form['username']
phone_number = request.form['mobileNo']
password = request.form['encryptedPassword']
confirm_password = request.form['encryptedConfirmPassword']
# Basic validation for phone number
if not re.match(r'^\d{11}$', phone_number):
error_messages['mobileNo'] = '手机号格式有误'
# Check password length after MD5 hash
if len(password) != 32: # MD5 hash length is 32 characters
error_messages['password'] = '密码格式有误'
# Confirm password validation
if password != confirm_password:
error_messages['confirmPassword'] = '两次输入的密码不一致'
if any(error_messages.values()):
return render_template('signup.html', errors=error_messages)
db = get_db()
cursor = db.cursor()
@@ -17,32 +40,34 @@ def signup():
# 检查已有用户
sql = """
SELECT COUNT(*) FROM Users \
WHERE ID = %s;
WHERE Phone_number = %s;
"""
try:
cursor.execute(sql, (id,))
id_exist = cursor.fetchall()[0][0]
cursor.execute(sql, (phone_number,))
phone_exist = cursor.fetchall()[0][0]
except Exception as e:
flash("数据库异常,查询失败")
error_messages['mobileNo'] = "数据库异常,查询失败"
print(e)
return redirect(url_for('signup'))
if (id_exist != 0):
flash("您已注册过,请勿重复注册")
return render_template('signup.html', errors=error_messages)
if phone_exist != 0:
error_messages['mobileNo'] = "该手机号已注册,请勿重复注册"
db.close()
return redirect(url_for('index'))
return render_template('signup.html', errors=error_messages)
# 插入
sql = '''
INSERT INTO passengers (ID, `Name`, Phone_number, `Password`) \
VALUES (%s, %s, %s, %s); \
INSERT INTO Users (Phone_number, Username, `Password`) \
VALUES (%s, %s, %s); \
'''
try:
cursor.execute(sql, (id, name, phone_number, password))
cursor.execute(sql, (phone_number, username, password))
db.commit()
flash("注册成功")
return redirect(url_for('index'))
except Exception as e:
db.rollback()
print(e)
flash("数据库异常,注册失败")
db.close()
return redirect(url_for('index'))
error_messages['mobileNo'] = "数据库异常,注册失败"
return render_template('signup.html', errors=error_messages)
finally:
db.close()