13.4 注册

注册的前端为:
使用远程前端,需要的app.py前面加上下面两行代码:
from flask_cors import CORS
CORS(app, resources={r"/*": {"origins""https://www.codessp.cn"}})

注册的时候,首先会检查用户名是否存在,当输入用户名之后,就会检查,如图所示:
这是一个post请求,把username发到/isUserExist,如果已经存在,那么返回的json是:
{
    "code":"200",
    "info":"",
    "data":""
}
如果用户名可用,那么返回的json是:
{
    "code":"404",
    "info":"",
    "data":""
}
特别注意:返回404表示用户名不存在,才可以继续注册
注册数据提交后,将把用户名username、密码password以及昵称nickname以post方式发送到/register
后台的注册需要做的事情是:
1.在user表添加一行数据,新增用户,user表的字段如下表,注册的时候已经提交了过来三个:
剩下的role的值为'1',create_date使用当前时间,之前在日记项目的时候曾经使用过:
import time
t = int(time.time())
timeStruct = time.localtime(t)
createDate = time.strftime("%Y-%m-%d %H:%M:%S", timeStruct)
2.在user_class表添加一行数据,记录此用户在哪个班,user_class只有三个字段(id(主键自动增长无需指定),username用户账户,class_id班级id)注册默认的班级id是65
综合上面所述,在sql.py里增加下面的函数,用于新增用户:
#新增一个user记录,valid默认为1,
def insert_user(username, psw, nickname):
    conn = get_conn()
    cursor = conn.cursor()
    # 生成当前时间
    createDate = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(time.time())))
    sql1 = "INSERT INTO user (username, password, nickname, role, create_date) VALUES (%s, %s, %s, %s, %s)"
    cursor.execute(sql1, (username, psw, nickname, '1', createDate))
    conn.commit()  # 必须提交事务
    # 获取插入的ID(假设有自增ID)
    last_id = cursor.lastrowid
    conn.close()
    return last_id  # 返回插入的ID
#新增一个user_class记录,班级id默认为65
def insert_user_class(username):
    conn = get_conn()
    cursor = conn.cursor()
    sql1 = "INSERT INTO user_class (username, class_id) VALUES (%s, %s)"
    cursor.execute(sql1, (username, '65'))
    conn.commit()  # 必须提交事务
    # 获取插入的ID(假设有自增ID)
    last_id = cursor.lastrowid
    conn.close()
    return last_id  # 返回插入的ID
3.完成上述两步后,后台需要返回{"code":"200"}