11.4.2 注册

用户注册和登录比较类似,首先是一个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
    else:
        response = make_response("失败")
    sql.insert_user(username, password, nickname)
    response = make_response("注册成功")
    return response
post提交的数据,服务器端取出数据需要用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