django上传与显示图片

参考文章:https://www.jianshu.com/p/a3fb31f49f2e

功能:从后台admin上传图片,显示到前端页面

1、models.py

添加:  img = models.ImageField(upload_to='./img/', blank=True) 

class Post(models.Model):
    title = models.CharField(max_length=50)
    body = models.TextField()
    created_time = models.DateTimeField()
    modified_time = models.DateTimeField()
    experpt = models.CharField(max_length=200)
    category = models.ForeignKey('Category', on_delete=models.CASCADE)
    tags = models.ManyToManyField(Tag)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    img = models.ImageField(upload_to='./img/', blank=True, null=True)  #添加的img

    def __str__(self):
        return self.title

执行命令:

python manage.py makemigrations

python manage.py migrate

2、settings.py

添加:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace("//", "/")

3、项目的urls.py

添加:   +static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

如下:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'', include('blog.urls', namespace='blog')),
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

4、index.html 显示图片

 {% for comic in comic_list %}
         <li>
                  <img src="/media/{{comic.img}}" />
                  <p>{{ comic.experpt }}</p>
           </li>
  {% endfor %}

5、python manage.py runserver

在后台添加图片,查看index.html图片显示成功

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值