1. 程式人生 > >後臺圖片驗證碼功能是什麼實現的

後臺圖片驗證碼功能是什麼實現的

一、導包,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)根據具體的業務場景,分別做處理即可;