部落格系統(其一)
阿新 • • 發佈:2018-12-02
驗證碼功能:
def get_img(request): import random def get_random_img(): return (random.randint(0,255),random.randint(0,255),random.randint(0,255)) from PIL import Image,ImageDraw,ImageFont img = Image.new("RGB",(270,40),color=get_random_img()) #方式二 # with open('valid_code.png','wb') as f:# img.save(f) # # with open('valid_code.png','rb') as f: # data = f.read() from io import BytesIO draw = ImageDraw.Draw(img) chandan_ttf = ImageFont.truetype("static/font/chandan.ttf",size=32) for i in range(0,5): num = str(random.randint(0,9)) #生成隨機數字 upper_alpha = chr(random.randint(65,90)) #生成隨機大寫字母 low_alpha = chr(random.randint(97,122)) #生成隨機小寫字母 now_char = random.choice([num,upper_alpha,low_alpha]) #使用隨機列表從中選擇 draw.text((i*50,5),now_char,get_random_img(),font=chandan_ttf) #draw.text(xy座標,寫的內容text,背景顏色,字型ttf)f = BytesIO() img.save(f,"png") data = f.getvalue() return HttpResponse(data)