共计 1373 个字符,预计需要花费 4 分钟才能阅读完成。
Django 是一款由 python 语音编写的开源软件。能够让程序员用很少的代码就能制作出一个大型网站。具备低耦合、开发疾速、部署不便等特点的特点。
注册界面:用户向服务端发送 get 申请,服务端将注册页面响应给客户端
注页面册必填内容:用户名、明码、再次输出明码、手机号、图形验证码、短信验证码、勾选批准用户协定,前端通过 post 办法 将客户填写的数据发送至服务端进行业务逻辑的解决,如果有谬误 反馈响应的错误信息,如果正确,则将该用户信息保留至数据库 用 Django 自带的 login()函数放弃登录信息
需要性能点:
用户名(username):用户输出实现之后,客户端在 @blur 事件之后,前后端都对其进行规范性校验(5\~20 个字符),同时服务端将填写的用户名在数据库中进行比对 count = User.objects.filter(username=username).count()
如果 count 是 0,则该用户名没有反复,如果是 1,则反馈(通过 json 实现对网页的部分刷新)给前端反复,无奈应用该名。
明码(password):用户输出实现之后,客户端在 @blur 事件之后,前端对其进行规范性校验(8\~20 个字符),如果校验不合格,则 前端的 error\_password\_message 响应信息‘明码不符合规范’
再次输出明码(password2):用户输出实现之后,客户端在 @blur 事件之后,前端对其进行规范性校验(8\~20 个字符),如果校验不合格,则 前端的 error\_password\_message 响应信息‘明码不符合规范’。
手机号(mobile):用户输出实现之后,客户端在 @blur 事件之后,前端对其进行规范性校验(结尾数字为 1,第二个数字为 3\~9,再加前面 9 个整数,总计 11 位),如果校验不合格,则 前端的 error\_password\_message 响应信息‘手机号码不符合规范’。同时服务端将填写的手机号在数据库中进行比对 count = User.objects.filter(mobile=mobile).count()
如果 count 是 0,则该用户名没有反复,如果是 1,则反馈(通过 json 实现对网页的部分刷新)给前端反复,无奈应用手机号。
图形验证码(image\_code):前端生成一个 uuid(惟一标识符,因为此时还没有用户 ID,所以用此来代替),发送给后端,后端用 captcha 插件生成图形验证码(一个 text 版本,一个 image 版本),将 uuid 作为键,text 作为值,设置一个过期工夫,用 setex 函数保留进 redis,而后将 image 通过 http.HttpResponse(image,content\_type=’image/jpeg’) 响应给前端。
短信验证码:后端获取到 手机号、图形验证码 验证胜利之后,调用发送短信的性能(发送短信的性能交给 celery 负责,可反对百万级的并发)
用户在勾选批准之后,点击注册,前端将 用户名、手机号、明码、明码 2、勾选信息、短信验证码发送至服务端,服务端首先查看各项数据是否齐全,而后验证用户名、手机号、明码的合法性,验证明码和明码 2 是否统一,是否勾选批准,短信验证码是否过期和正确,如果出错,则反馈响应的提示信息。如果没错,则将用户信息注册进数据库,重定向至响应的页面(登录或首页)