[TOC]python
用到的模塊: io, random, pillow(須要安裝)django
安裝pillow模塊:session
# CMD運行下面命令 pip install pillow
代碼:dom
# views.py import random from PIL import Image, ImageDraw, ImageFont from io import BytesIO ''' BytesIO: 可以存儲數據,並以二進制的格式再返回 Image: 產生圖片 ImageDraw: 產生畫筆 ImageFont: 控制字體樣式 ''' # 隨機生成三原色 def get_random(): col_num = random.randint(0, 255) return col_num, col_num, col_num # 生成隨機驗證碼圖片 def get_code(request): # 生成圖片 參數位置對應: 顏色樣式, (長, 寬), 三原色 img_obj = Image.new('RGB', (263, 33), get_random()) # 在圖片上生成一個畫筆對象 img_draw = ImageDraw.Draw(img_obj) # 字體樣式 img_font = ImageFont.truetype('字體路徑', '字體大小int類型') # 隨機生成驗證碼 code = '' for i in range(5): random_upper = chr(random.ranint(65, 90)) random_lower = chr(random.ranint(97, 122)) random_int = str(random.ranint(0, 9)) temp = random.choice([random_int, random_lower, random_upper]) # 將產生的而隨機字符寫在圖片上 # 對應參數: temp:寫的內容, get_random():三原色, img_font:字體 img_draw.text(('x軸座標int', 'y軸座標'), temp, get_random(), img_font) code += temp # 將隨機字符串存入session request.session['code'] = code io_obj = BytesIO() img_obj.save(io_obj, 'png') return HttpResponse(io_obj.getvalue())
滑動驗證碼參考:極驗 傳送門:https://docs.geetest.com/字體