使用程式碼庫captcha去生成隨機驗證碼圖片
阿新 • • 發佈:2021-12-07
1.首先在專案目錄下建立驗證碼app
建立好一定記得要在settings檔案中註冊,並且格外注意別忘記末尾加逗號,否則直接報錯
2.在應用app裡面建立二級路由檔案urls
from django.urls import path from apps.verifycode.views import ImgCode urlpatterns =[ path('image_codes/<uuid>/',ImgCode.as_view()), ]
3.在專案一級路由檔案中加入二級路由
path('',include('apps.verifycode.urls'))
4.在驗證碼app中views檔案中實現ImgCode類用於請求時生成圖片驗證碼
class ImgCode(View): def get(self,request,uuid): from libs.captcha.captcha import captcha # text是驗證碼文字 img是驗證碼圖片 text,img = captcha.generate_captcha() # 用redis將圖片驗證碼儲存 from django_redis import get_redis_connection redis_cli = get_redis_connection('code') # name,time,value 名字,過期時間,值 redis_cli.setex(uuid,100,text) # 返回圖片驗證碼 # content_type 是響應體 需要告訴它是圖片 image/jpeg return HttpResponse(img,content_type='image/jpeg')
5.上一步引入captcha的操作還需要安裝工具包的支援內庫
pip install pillow
6.這樣通過get請求攜帶uuid去訪問就能獲取到一張隨機的二維碼圖片,其中二維碼圖片給前端頁面,
uuid作為鍵,二維碼的值作為值,被儲存到redis資料庫裡。