昨日回顾:
昨日回顾: auth组件: -验证:authenticat(request,username='lqz',password='123') -登录:login(request,user) -注销:logout(request),内部调用了flush(),以后再从request中取user,是匿名用户 -request.user:请求来了,在中间件中,通过cookie查询user信息,放到request.user中,如果查询不到,把匿名用户赋给它 -登录认证装饰器:login_required(指定?后面拼接的key值,如果没有登录,跳转到哪个url) -全局配置跳转的url:在setting中:LOGIN_URL='/login/' -创建用户:create_superuser,create_user,就只是一个字段区分 -校验密码:check_password(密码),得用户对象调用,如果校验通过,返回True -修改密码:set_password(密码),修改了一定要调save()方法,得用户对象来调用 -是否验证通过:is_authenticated,校验用户是否验证通过,通常用在模板上 -删除用户:orm的删除 -扩展auth组件: -创建一个一对一的表模型 -定义一个表模型,继承AbstractUser,写扩展的字段 -数据库迁移会报错:去setting中配置:AUTH_UDER_MODEL='app名字.表模型' -其他用法完全一样,只是原来用User表模型,全部改成新定义的表模型
今日内容:
from PIL import Image, ImageDraw, ImageFont
img = Image.new('RGB', (250, 35), get_random_color()):生成一个高35,宽250的随机颜色(get_random_color())的长方形
font = ImageFont.truetype('static/font/ss.TTF', 30):设置这个字体文件的路径
img_draw = ImageDraw.Draw(img):生成一个画笔,可以对img这个图片进行绘画
img_draw.text((70, 0), res, get_random_color(), font=font):在xy轴(70,0)处对img进行开始绘画,随机字体颜色颜色(get_random_color())的长方形,该字体为font字体格式
img_draw.line([(20, 10), (200, 22)], fill=get_random_color(), width=3):生成一条障碍线
from io import BytesIO
f = BytesIO():创建一个空的内存文件
img.save(f,'png'):将img保存到f内存文件中,以png格式保存
data = f.getvalue():取出f内存文件中的数据