BBS第二天

操作内存的流-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

 

上一篇:简单的bbs登录系统


下一篇:BBS - 个人站点页面