Django实战项目-04系统后台中文件上传与显示

系统后台文件上传(使用Admin后台管理系统上传文件)

1.首先模型类中有相关文件上传的字段:

  • 其中FileFiled和ImageField都可用于文件上传,但是处理图片的话ImageField会更好
  • upload_to属性后面解释
class GoodsType(BaseModel):
    '''商品类型模型类'''
    name = models.CharField(max_length=20, verbose_name='种类名称')
    logo = models.CharField(max_length=20, verbose_name='标识')
    image = models.ImageField(upload_to='type', verbose_name='商品类型图片')

    class Meta:
        db_table = 'df_goods_type'
        verbose_name = '商品种类'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

2.在应用的admin.py中注册模型类

from django.contrib import admin
from goods.models import GoodsType
# Register your models here.
admin.site.register(GoodsType)

3.修改项目的配置文件setting.py,增加以下两行代码:

# settings.py

# 配置 MEDIA_ROOT 作为你上传文件在服务器中的基本路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'upload') # 注意此处不要写成列表或元组的形式
# 配置 MEDIA_URL 作为公用 URL,指向上传文件的基本路径
MEDIA_URL = '/media/'
# 这里特意写成 upload 和 media,而不是统一写成 media 或 upload,是为了便于理解 MEDIA_ROOT 和 MEDIA_URL 的作用和区别

4.创建超级用户,登录网站后台127.0.0.1:8000/admin,进行文件(图片)上传

python manager.py createsuperuser

5.上传后的图片保存目录

http://127.0.0.1:8000/media/name

# 其中media是在配置文件中指定的路径,如果上面设置的为upload,那么则为http://127.0.0.1:8000/media/upload,也就是上传的图片保存在了这个目录下面。
# name是第一步中upload_to指定的文件夹,可以自由定义,根据模型类中的定义,图片的存放地址是:http://127.0.0.1:8000/media/type/filename,filename是上传的文件名
# 如果上述的文件夹不存在,那么django会自动创建。
 

6.访问和显示

新建一个html页面,给定img标签,指定src即可。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <img src="http://127.0.0.1:8000/media/type/adv02.jpg">
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值