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)
}
})