一.数据的格式
创建一个名为data的文件夹,创建文件userlist.json的文件用来存储数据
[ {"7w": {"username": "7w", "password": "6512bd43d9caa6e02c990b0a82652dca", "create_time": "2023-07-29"}}]
二.后端路由的创建
前端提示词:现在在该表单里面需要做注册相关的业务:
1、将username,password,cpassword这三个字段,先校验password和cpassword是否相等
2、如果不相等,提示“密码不相等”
3、如果相等,就将三个字段信息通过json的格式传递到后端
4、要求用原生javascript写,用onload的方式发送ajax请求
获取表单信息后
后端提示词:对该路由做一个修改:
如果是get请求,那么返回register.html
如果是post请求,需要你接收来自前端传递json信息,获取到username,password,cpassword
成功接收后,返回json信息{"state":200,"message":"注册成功"}
@app.route("/register", methods=["GET", "POST"])
def register():
if request.method == "GET":
return render_template("register1.html")
elif request.method == "POST":
data = request.json
username = data["username"]
password = data["password"]
cpassword = data["cpassword"]
print(username, password, cpassword)
# TODO: 进行注册相关的业务逻辑
filename = "./data/userlist.json"
# 如果文件不存在
if not os.path.exists(filename):
with open(filename, "w") as f:
json.dump([], f) # 创建一个空数组并存储到文件中
with open(filename, "r") as f:
userlist = json.load(f) # 从文件中加载数据
# 判断用户名是否已经存在
for user in userlist:
if username in user:
response_data = {"state": 501, "message": "该用户已经存在!"}
return jsonify(response_data)
print(password, cpassword)
# 判断两次密码是否相同
if password != cpassword:
response_data = {"state": 502, "message": "2次密码不相同"}
return jsonify(response_data)
# md5加密 改password就行
encrypted_password = hashlib.md5(password.encode("utf-8")).hexdigest()
# 组合用户信息
new_user = {
username: {
"username": username,
"password": encrypted_password,
"create_time": datetime.now().strftime("%Y-%m-%d"),
}
}
# 把组合好的用户信息放到最开始从文件里面读到的列表里面
userlist.append(new_user)
# 将用户列表存储到文件中
with open(filename, "w") as f:
json.dump(userlist, f)
response_data = {"state": 200, "message": "注册成功"}
return jsonify(response_data)
由此实现用户表单信息的数据存储