一、功能需求分析
1.登录功能分析
1.1登录流程
1.2功能(一个请求为一个功能)
~登录页面
~登录功能
~登出功能
二、登录页面
1.接口设计
1.1.接口说明
类目 说明
请求方式 GET
url定义 /usel/login/
参数格式 无参数
1.2返回结果
登录页面
1.3代码实现
三、登录功能
1.业务流程
1.1参数校验
~1.账户的校验
~2.密码的校验
~3.账户密码联合校验
1.2登录逻辑
~1.在session中保存状态
~2.根据记住我选项,进行有效期的设置(session_id)
2.接口设计
2.1.接口说明
类目 说明
请求方式 GET
url定义 /usel/login/
参数格式 表单
2.2参数说明
参数名 类型 是否必须 描述
account 字符串 是 用户输入的账户(手机号码或者用户名)
password 字符串 是 用户输入的密码
remember 字符串 否 用户是否勾选免登录
2.3返回结果
{
error: '0'
errmsg: 'ok'
}
2.4代码
user/views.py
class LoginView(View):
"""
登录视图
url: '/user/login/'
"""
def get(self, request):
return render(request, 'user/login.html')
def post(self, request):
#1.先校验
form = LoginForm(request.POST)
if form.is_valid():
#2.再登录
return json_response(errmsg='恭喜登录成')
else:
# 将表单的报错信息进行拼接
err_msg_list = []
for item in form.errors.values():
err_msg_list.append(item[0])
err_msg_str = '/'.join(err_msg_list)
return json_response(errno=Code.PARAMERR, errmsg=err_msg_str)
user/forms.py
四、登出功能
1.接口设计
接口说明
类目 说明
请求方法 GET
url定义 /user/logout/
参数格式 无参数
2.后端代码