後臺圖片驗證碼功能是什麼實現的
阿新 • • 發佈:2018-12-26
一、導包,1)check_code.py檔案;2)Monaco.ttf字型;
二、通過session機制,來實現此功能,部分程式碼如下:
1 f = BytesIO() 2 img, code = create_validate_code() 3 request.session['check_code'] = code 4 img.save(f, 'PNG') 5 return HttpResponse(f.getvalue())
1)在記憶體中開闢一個f物件;
2)調create_validata_code方法,生成一個驗證碼和一張含有該驗證碼的圖片;
3)在該使用者的session中新增一組新的鍵值對,用來做使用者輸入驗證碼的校驗;
4)圖片已PNG的形式儲存在f中;
5)在f中讀取圖片的內容,並將它返回給瀏覽器;
6)即在瀏覽器上生成一張帶有驗證碼的圖片;
三、後臺校驗驗證碼:
部分程式碼如下:
1 input_code = request.POST.get('code') 2 check_cd = request.session['check_code'] #從session裡拿驗證碼 3 print(input_code,check_cd)4 #分別做處理 5 return HttpResponse('...')
1)後臺接收使用者輸入的驗證碼;
2)後臺從使用者傳送的ccokie中獲取sessionid,而今獲取其攜帶的後臺下發的驗證碼;如果是使用者第一次登陸,那麼就沒有“check_code”這個欄位;
3)後臺此時已經有2個驗證碼了,分別是下發給使用者的和使用者輸入的;
4)根據具體的業務場景,分別做處理即可;