一、功能需求分析
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.后端代碼