from captcha.image import ImageCaptcha from io import BytesIO from PIL import Image from random import choices from flask import session, make_response from flask_login import current_user def gen_captcha(content='0123456789'): """ 生成验证码 """ image = ImageCaptcha() # 获取字符串 captcha_text = "".join(choices(content, k=4)) # 生成图像 captcha_image = Image.open(image.generate(captcha_text)) return captcha_text, captcha_image # 生成验证码 def get_captcha_image(): code, image = gen_captcha() out = BytesIO() session["code"] = code image.save(out, 'png') out.seek(0) resp = make_response(out.read()) resp.content_type = 'image/png' return resp, code # 授权路由存入session def add_auth_session(): role = current_user.role user_power = [] for i in role: if i.enable == 0: continue for p in i.power: if p.enable == 0: continue user_power.append(p.code) session['permissions'] = user_power