admin路由操作数据库与项目文件接口与日期归档与前端图片实时展示

后台管理操作数据库

admin.py内先注册,只有注册的表才能后台操作。

from django.contrib import admin
from app01 import models

# Register your models here.
admin.site.register(models.UserInfo)
admin.site.register(models.Blog)

启动项目访问自带的admin路由即可。

暴露项目内文件接口

django提供了一个配置,可以让用户上传的文件统一存到一个指定的目录下,比如都传到media文件夹下

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

暴露media文件夹下的所有文件

# 文件接口
url(r'^media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}),

日期归档

按年月将数据分类

# 时间归档
from django.db.models.functions import TruncMonth
from django.db.models import Count
date_obj = models.Article.objects.annotate(
    month=TruncMonth('create_time')
).values('month').annotate(c=Count('pk')).values('month', 'c')

如果报错,修改配置

TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

图片实时展示

图片根据上传的文件变化

// 用户头像实时展示
$('#avatar').change(function () {
    // 1.产生一个文件阅读器对象
    let myFileReader = new FileReader();
    // 2.获取用户上传的头像文件
    let avatarObj = this.files[0];
    // 3.将文件对象交给阅读器加载
    myFileReader.readAsDataURL(avatarObj)  // IO操作 需要消耗时间 但是是异步
    // 4.修改img标签的src属性
    // 等待文件阅读器对象加载完毕之后再修改src属性
    myFileReader.onload = function () {
        $('#img').attr('src', myFileReader.result)
    }
})
posted @ 2022-05-31 21:48  Yume_Minami  阅读(53)  评论(0编辑  收藏  举报