一 项目介绍
本项目允许用户通过图片地址将图片收藏到自己的账户中,并保存在服务器中。
二 新建应用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

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

被折叠的 条评论
为什么被折叠?



