Django收集网络图片功能

本文详细介绍如何在Django框架下创建一个图片收藏应用,包括新建应用、配置、安装Pillow库、编写图片模型类、生成数据等步骤。

一 项目介绍

本项目允许用户通过图片地址将图片收藏到自己的账户中,并保存在服务器中。

二 新建应用image

(venv) E:\Django\mysite\mysite>python manage.py startapp image

三 配置

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'account',
    'password_reset',
    'article',
    # 配置图片
    'image',
]

四 安装Pillow

1 介绍

它是Python中一个图片支持的模块。

2 安装方法

(venv) E:\Django\mysite\mysite>pip install Pillow

五 编写图片类

from slugify import slugify

class Image(models.Model):
    # Image类和User类属于多对一的关系,从而确定某张图片的拥有者是哪个用户
    user = models.ForeignKey(User, related_name="images")
    # 图片标题
    title = models.CharField(max_length=300)
    # 存储网络图片的URL,这里使用了URL类,这个类继承了CharField类
    # 它们的区别是URLField中如果不规定最大长度,则默认是200
    url = models.URLField()
    # 定义了Image对象的slug字段,用于URL显示上
    slug = models.SlugField(max_length=500, blank=True)
    # 描述图片的文本内容
    description = models.TextField(blank=True)
    # Image实例创建时间,auto_now_add=True表示当这个类的实例被创建时,
    # 时间值会自动创建并写入数据库,db_index=True表示数据库中此字段作为
    # 索引
    created = models.DateField(auto_now_add=True, db_index=True)
    # 规定了图片上传到服务器的物理存储地址
    # upload_to规定了上传图片文件的存储路径
    image = models.ImageField(upload_to='images/%Y/%m/%d')

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        # slug的自动生成
        self.slug = slugify(self.title)
        # 保存数据到数据库
        super(Image, self).save(*args, **kwargs)

六 生成数据

(venv) E:\Django\mysite\mysite>python manage.py makemigrations
(venv) E:\Django\mysite\mysite>python manage.py migrate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值