python测试开发django-44.xadmin上传图片和文件
2024-09-23 14:13:12
前言
xadmin上传图片和上传文件功能
依赖环境
如果没安装Pillow的话,会有报错:practise.Upload.upload_image: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install Pillow".
需先安装Pillow环境
pip install Pillow
models模块设计
先设计一个model,用ImageField存放图片,FileField放文件,upload_to参数是存放的目录
# models.py
from django.db import models
from django.utils import timezone
# Create your models here.
class FileImage(models.Model):
'''上传文件和图片'''
title = models.CharField(max_length=30, verbose_name="名称", default="") # 标题
image = models.ImageField(verbose_name="上传图片", upload_to="up_image", blank=True)
fiels = models.FileField(verbose_name="上传文件", upload_to="up_file", blank=True)
add_time = models.DateField(auto_now=True, verbose_name="添加时间")
def __str__(self):
return self.__doc__ + "title->" + self.title
class Meta:
verbose_name = "上传文件和图片"
verbose_name_plural = verbose_name
adminx.py文件注册表信息
# adminx.py
import xadmin
from xadmin import views
from .models import FileImage
class ControlFiles(object):
list_display = ['title', "add_time"]
xadmin.site.register(FileImage, ControlFiles)
urls.py配置图片的URL地址访问,要不然查询详情的时候缩略图无法正常显示
from . import settings
from django.views.static import serve
urlpatterns = [
url(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}),
]
settings.py配置
在settings.py配置上传文件的目录地址
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
配置好之后,执行 makemigrations 和migrate,同步数据
python manage.py makemigrations
python manage.py migrate
在xadmin上传图片后,会自动生成media目录
xadmin后台页面
新增上传图片页面
上传完成后查询详情页面
最新文章
- Linux命令集合
- MVC后台数据赋值给前端JS对象
- iOS 里面 NSTimer 防止 循环引用
- Code First03---CodeFirst根据配置同步到数据库的三种方式
- Web 登陆界面---简单模块1
- silverlight,动态数据集合中,移除动态集合自身的内容
- IOS数据解析JSON
- UML类图关系大全-转
- JavaWeb项目开发案例精粹-第2章投票系统-006view层
- CodeForces Round #286 Div.2
- wcf自身作为宿主的一个小案例
- Space Shooter
- synchronized与条件同步
- PYTHON定义函数制作简单登录程序(详细)
- Linux查看机器负载
- day-01(html)
- 第二次作业-git的基本操作
- spring上传文件
- 【PyQt5-Qt Designer】QDoubleSpinBox-小数微调框
- 【大数据】Zookeeper学习笔记
热门文章
- java.lang.ClassNotFoundException: com.*.*.entity.time.Q*
- LeetCode 100. Same Tree (判断树是否完全相同)
- 【SpringBoot】SpringBoot与SpringMVC自动配置(五)
- Elasticsearch6.2.1安装elasticsearch-sq插件
- springboot docker 部署
- replace的回调函数。
- c++中共享内存原理及实现
- PHP对二维数组进行排序
- [转帖]Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?
- JVM中内存的设置和分配(最大内存,总内存,剩余内存的区别)