该方式上传图片,是在localhost:8000/admin/浏览器中登录账号密码之后,在admin后台上传图片
步骤:
通过admin后台系统实现图片的上传;
a>Model中的图片字段必须写成models.ImageField(),因为在admin管理页面中,是会将这个ImageField()字段渲染成一个选择文件的input标签;
b>图片上传的路径不需要手动创建文件夹了,只需要设置upload_to,所有的目录都会自动创建;
首先,在项目根目录下创建一个文件夹static,并在其下面创建一个文件夹images
在settings.py文件下,进行注册
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
# 只要是上传图片,一定要设置MEDIA_ROOT这个键,这个键的名字不能修改。
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
在models.py文件中,创建一个Model
from django.db import models
# Create your models here.
class PModel(models.Model):
pic_url = models.ImageField(upload_to='upload/%Y/%m')
def __str__(self):
return self.pic_url.name
class Meta:
db_table = 'pic'
在admin.py中进行注册
from django.contrib import admin
from .models import PModel
# # 只要使用admin后台系统,所有的Model必须在这里进行注册,否则,admin后台是不会显示相关Model的。
admin.site.![在这里插入图片描述](https://img-blog.csdnimg.cn/20181031214708531.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYW5nbWVuZ3Jhbg==,size_16,color_FFFFFF,t_70)register(PModel)
代码写完之后,首先同步到数据库。
再使用python manage.py creatsuperuser 创建一个用户
在浏览器中输入localhost:8000/admin/,进行账号密码登录。