IO操作、PIL使用、Django的admin操作

操作内存的流-StringIO | BytesIO

from io import StringIO, BytesIO
#创建操作字符串的内存流
sf = StringsIO()
#往内存中写
sf.write('hello')
#在内存中取
sf.getvalue()


# 创建操作二进制的内存流
bf = BytesIO()
# 往内存中写
bf.write('hello'.encode('utf-8'))
# 在内存总取
bf.getvalue()

PIL: python图片操作库

安装:Pillow模块

# 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', size=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);  // url
xhr.responseType = "blob";
xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            var blod = this.response;
            var src = URL.createObjectURL(blod);  // src
        }
    }
};
xhr.send();

Django的admin自动化数据管理界面

admin的概念:

# Admin是Django自带的一个功能强大的自动化数据管理界面
# 被授权的用户可以直接在Admin中操作数据库
# Django提供了许多针对Admin的定制功能

配置并访问自动化书库管理界面:

# 终端项目目录创建一个超级用户:python3 manage.py createsuperuser
# eg:Username:root | Email:root@root.com | Password:1234qwer
# 浏览器Admin入口:http://127.0.0.1:8000/admin
# 设置Admin界面为中文环境:项目下settings.py,LANGUAGE_CODE = 'zh-Hans'
# 简体:zh-hans | 繁体:zh-hant | 美式英语:en-us

将指定映射添加到自动化数据管理界面:

# 应用下的admin.py中,注册映射对应关系的类
from . import models
admin.site.register(models.Article)

格式化界面字段显示名与表名:

# 为应用下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

 

posted @ 2019-03-15 20:12  起个名字、真难啊  阅读(147)  评论(0编辑  收藏  举报