操作内存的流-StringIO | BytesIO
from io import StringIO,BytesIO
创建操作字符串的内存流
sf = StringIO()
往内存中写
sf.write('hello')
在内存中取
sf.getvalue()
创建操作二进制的内存流
bf = BytesIO()
往内存中写
bf.write('hello'.encode('utf-8))
在内存中取
bf.getvalue()
PIL:python图片操作库
python
1.生成图片
from PIL import Image
生成一个Image类对象(准图片):模式,尺寸,颜色
img = Image.new('RGB',(80,80),color=(255,0,0))
将Image类对象采用具体格式放入具体的文件流中
bf = BytesIO()
img.save(bf,'png')
2.产生文字颜色
from PIL import ImageFont
产生某种ttf格式的30px大小文字
img_font = ImageFont.truetype('*.ttf',30)
3.画图
from PIL import ImageDraw()
在具体的Image对象上画图
img_draw = ImageDraw.Draw(img)
画文字:xy轴,文本,颜色,ImageFont字体
img_draw.text((x,y),'abc','red',img_font)
前端解析二进制流图片
向指定url请求图片二进制流转换为blob:格式的src
var xhr = new XMLHttpRequest():
xhr.open('GET',url,true);
xhr.responseType = 'blob'
xhr.onreadystatechange = function(){
if (xhr.readyState == 4){
if (xhr.status == 200){
var blod = this.response;
var src = URL.createObjectURL(blob);
}
}
};
xhr.send()
Admin自动化数据管理界面
admin的概念
Admin是Django自带的一个功能强大的自动化数据管理界面
被授权的用户可以直接在Admin中操作数据库
Django提供了许多针对Admin的定制功能
配置并访问自动化数据管理界面
终端项目目录创建一个超级用户:
python3 manage.py createsuperuser
设置Admin界面为中文环境:项目下settings.py,LANGUAGE_CODE = 'zh-Hans'
简体:zh-hans' | 繁体:zh-hant | 美式英语:en-us
将指定映射添加到自动化数据管理界面
应用下的admin.py中,注册映射对应关系的类
from . import models
admin.site.register(models.Article)
格式化界面字段显示名与表名
python
为应用下models.py映射关系类重写__str__方法
class Article(models.Model):
title = models.CharField(max_length=32),
default=Title",verbose_name="标题'')
content = models.TextField(null=True,verbose_name="内容',blank = True)
重写__str__方法:格式化该类实例对象的表示方式
def __str__(self):
return self.title
class Meta:
verbose_name = "文章"
verbose_name_plural = verbose_name