当前位置:首页 > 编程教程 > Python技术文章 > django使用admin站点上传图片的实例

django使用admin站点上传图片的代码分享

  • 发布时间:
  • 作者:码农之家
  • 点击:114

这篇文章主要知识点是关于django、上传图片、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

精通Django
精通Django高清版
  • 类型:Django大小:7.5 MB格式:PDF作者:Nigel George
立即下载

django使用admin站点上传图片的实例

Django有提供文件系统支持,在Admin站点中可以轻松上传图片。使用Admin站点保存图片,需要安装Python的图片操作包

pip install Pillow

1 配置

默认情况下,Django会将上传的图片保存在本地服务器上,需要配置保存的路径。我们可以将上传的文件保存在静态文件目录中,如我们之前设置的static_files目录中在settings.py 文件中添加如下上传保存目录信息

MEDIA_ROOT=os.path.join(BASE_DIR,"static_files/media")

2 为模型类添加ImageField字段

我们为之前的BookInfo模型类添加一个ImageFiled

class BookInfo(models.Model):
 ...
 image = models.ImageField(upload_to='booktest', verbose_name='图片', null=True)

upload_to 选项指明该字段的图片保存在MEDIA_ROOT目录中的哪个子目录,进行数据库迁移操作

python manage.py makemigrations
python manage.py migrate

3 使用Admin站点上传图片

进入Admin站点的图书管理页面,选择一个图书,能发现多出来一个上传图片的字段admin站点图片字段,选择一张图片并保存后,图片会被保存在static_files/media/booktest/目录下。

在数据库中,我们能看到image字段被设置为图片的路径。

以上这篇django使用admin站点上传图片的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

您可能感兴趣的文章:

  • 详解在django里上传csv文件并进行入库处理的方法步骤
  • django上传图片 相关电子书
    学习笔记
    网友NO.104723

    PIL对上传到Django的图片进行处理并保存的实例

    1. 介绍 上传的图片文件:如 pic = request.FILES["picture"]# pic是 class 'django.core.files.uploadedfile.InMemoryUploadedFile' 类型的数据# 而pillow的Image.open("./xxx.jpg") 则是:class 'PIL.JpegImagePlugin.JpegImageFile' 类型的数据# 问题是如何把InMemoryUploadedFile转化为PIL类型,并且处理之后再转回InMemoryUploadedFile,并save 2. 把InMemoryUploadedFile转化为PIL类型 from PIL import Imagepic = request.FILES["picture"]im_pic = Image.open(pic)# 这样就把InMemoryUploadedFile转化为了PIL类型数据,pic是InMemoryUploadedFile,im_pic是PIL类型 3. 处理PIL类型的图片数据 w, h = im_pic.sizeif w = h: w_start = (w-h)*0.618 box = (w_start, 0, w_start+h, h) region = im_pic.crop(box)else: h_start = (h-w)*0.618 box = (0, h_start, w, h_start+w) region = im_pic.crop(box)# region就是PIL处理后的正方形了 4. 将处理后的PIL类型转化为InMemoryUploadedFile类型 from io import BytesIOfrom django.core.files.uploadedfile im……

    网友NO.788603

    Django实现admin后台显示图片缩略图的实例代码

    直接上代码 定义一个upload_img来返回显示图片的html 定义显示图片说明和allow_tags mark_safe方法于django.utils.safestring导入 from django.utils.safestring import mark_safefrom django.contrib import admin@admin.register(AliOSSFile)class AliOssUploadAdmin(admin.ModelAdmin): def upload_img(self, obj): try: img = mark_safe(img src=%s width=50px / % (obj.file.url,)) except Exception as e: img = return img upload_img.short_description = Thumb upload_img.allow_tags = True list_display = [id, ali_id, file, upload_img, created_time] readonly_fields = [upload_img] 以上这篇Django 实现admin后台显示图片缩略图的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

    网友NO.715355

    django将网络中的图片,保存成model中的ImageField的实例

    有这样的情形,django个人头像在model中是: class UserProfile(AbstractUser): """ 用户 """ name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名") image = models.ImageField(max_length=1000,upload_to='avatar/%Y/%m/', verbose_name=u'头像', null=True, blank=True) 正常情况下,需要客户端(app或者浏览器post上来图片,然后保存到image中) 例如: image = request.data.get('image', None)...user.image=imageuser.save() 但是,有这样的情况,如果是第三方,例如微博登录,前端通过微博接口获取到微博头像,post上来的就是头像的地址,https://xxx.xxx.jpg 这个时候如何通过图片url,保存到django的model中呢? 思路是,先通过url下载图片,然后保存 from django.core.files import Filefrom io import BytesIOfrom urllib.request import urlopen url = request.data.get('image', None)r = urlopen(url)io = BytesIO(r.read())user.image.save("{}_{}.jpg".format(user.id,int(tim……

    <
    1
    >

    Copyright 2018-2020 www.xz577.com 码农之家

    版权投诉 / 书籍推广 / 赞助:520161757@qq.com