12.4.3 注册
用户注册和登录比较类似,首先是一个html文件register.html:
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title> 注册 </title> </head> <body> <form action="/postRegister" method="post"> 用户名 <input type="text" name="username"/> <br/> 密码 <input type="password" name="psw"/> <br/> 确认密码 <input type="password" name="psw2"/> <br/> 昵称 <input type="text" name="nickname"/> <br/> <input type="submit" value="提交"/> </form> </body></html>这是一个纯html文件,没有任何参数,首先要呈现这个网页,要在app.py添加处理函数:
@app .route('/register')def register(): return render_template("register.html")启动后尝试访问http://127.0.0.1:5000/register:

填入数据后提交将提交到/postRegister,这个需要在app.py中添加处理函数,这里是post方式提交,处理也是post方式:
@app .route('/postRegister', methods=['post'])def postRegister(): username = request.form.get('username') password = request.form.get('psw') password2 = request.form.get('psw2') nickname = request.form.get("nickname") if password != password2: response = make_response("两个密码不一致") return response sql.insert_user(username, password, nickname) response = make_response("注册成功") return responsepost提交的数据,服务器端取出数据需要用request.form.get
简单对比两个密码后就调用数据库的插入函数insert_user,此函数位于sql.py,代码如下:
def insert_user(username, password, nickname): conn = get_conn() cursor = conn.cursor() t = int(time.time()) timeStruct = time.localtime(t) createDate = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct) sql = "insert into `user`(`username`,`password`,`nickname`,`create_date`) values (%s,%s,%s,%s)" cursor.execute(sql, (username, password, nickname, createDate)) conn.commit() #提交执行sql事务,在insert、delete、update中需要 conn.close() #关闭连接 return