pillow模块
一、pillow 模块
1、使用时先导入,既是:from PIL import ...... (注意这里不是 from pillow 而是 from PIL)
2、Image 是用来产生图片的
用法:Image.new()
3、ImageDraw 是用来在图片上写字的
4、ImageFont 是用来控制图片上的字体样式的
5、ImageFilter 是用来对图片进行模糊操作的
用法:
# 推导步骤4:如何产生图片并在上面写字 img_obj = Image.new('RGB',(350,35),get_random()) # 产生针对该图片的画笔对象 img_draw = ImageDraw.Draw(img_obj) # 产生一个字体样式对象 img_font = ImageFont.truetype(r'/static/font/333.ttf',35) # 第一个参数是字体样式的路径。第二个参数是字体的大小.r 表示防转义
二、内存管理器(IO)模块
1、使用时先导入,既是:from io import BytesIO,StringIO
2、BytesIO 表示:能够临时帮你保存数据,获取的时候以二进制方式返回给你
3、StringIO 表示:能够临时帮你保存数据,获取的时候以字符串方式返回给你
4、使用方法: .getvalue() 表示从io内存管理器中读出数据
# 推导步骤3:利用io内存管理器临时存取产生的图片数据 img_obj = Image.new('RGB',(350,35),(123,132,11)) # 第三个参数可以是颜色的英文,也可以是三基色数字 io_obj = BytesIO() img_obj.save(io_obj,'png') # 把生成的图片存进io内存管理器中 return HttpResponse(io_obj.getvalue()) # io_obj.getvalue() 表示从io内存管理器中读出 图片
5、产生随机验证码
# 如何产生5位随机验证码 code = '' # 先定义一个空验证码。这个验证码还要后端校验 for i in range(5): upper_str = chr(random.randint(65,90)) # 产生一个大写字母。chr(数字) 表示产生askii码中 对应的字符 lower_str = chr(random.randint(96,122)) random_int = str(random.randint(0,9)) # 每循环一次就 随机取上面一个 temp_str = random.choice([upper_str,lower_str,random_int]) # 每取一个就用画笔写到图片上 # 第一个参数是指 放的位置: x:45+i*60 y:0 i*60表示每写一个 就往后移动60的距离。第二个参数是 文本内容。第三个是 字体颜色 第四个是 字体样式 img_draw.text((45+i*60,0),temp_str,get_random(),img_font) # 存储产生的随机验证码 code += temp_str
6、点击图片就会局部刷新图片信息
方法:给图片绑定一个点击事件
规律:只要src中的url请求发生变化了,再去点击图片就会刷新图片信息
7、两种绑定点击事件:
01、.click(function(){})
02、.on('click',function({}))
<script> {#给图片绑定点击事件#} $('#id_img').click(function () { {# 先拿到图片的src $(this) 表示的是 这个图片imga标签。 .attr('src') 表示 拿出src的值#} var oldSrc = $(this).attr('src'); {# attr('src',oldSrc += '?') 表示 给src 设值为:原来的src值加上?#} $(this).attr('src',oldSrc += '?') }); {#给登录按钮绑定点击事件#} $('#id_submit').on('click',function () { $.ajax({ url:'', type:'post', data:{ 'username':$('#id_username').val(), $('#id_username') 表示找到 用户名这个标签框。 .val() 表示取出框中的值 'password':$('#id_password').val(), 'csrfmiddlewaretoken':'{{ csrf_token }}', 这是模板语法取值 'code':$('#id_code').val() } }) }) </script>
8、我踩的坑
三、首页功能
jason 的位置 表示的是:动态展示用户名
当清掉前端的 session值后,再刷新页面就是
修改密码页面
四、知识点
01、js插件中 有:模态框 取消按钮
取消按钮 : <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
02、组件中 有:导航条 媒体对象(可以渲染文章) 面板(渲染广告)
03、hr 标签是分割线
br 标签是用来顶距离的
。