存在问题
⽬前读取⽂章默认图⽚地址为group1/M00/00/00/wKgVjV_jT7GAO7pxAAPUTVc4GU8518.png
,⻚⾯中⽆法读取?
解决⽅案1:在相应img标签上拼接链接。
解决⽅案2:⾃定义Django⽂件存储类
default_img默认返回的是相对地址;目标是获得绝对地址;重写ImageField字段中的url方法,在url方法默认返回的是相对地址,只要在路径前再拼接一个路径即可,
url被property装饰器装饰后,直接可以用default_img.url去获取相对地址
一、创建⽂件存储类
项⽬包⽬录/utils/fastdfs/fdfs_storage.py
from django.conf import settings
from django.core.files.storage import Storage
class FastDFSStorage(Storage):
'''自定义文件存储系统'''
def __init__(self,fdfs_base_url=None):
'''
构造方法,可以不带参数,也可以携带参数
:param fdfs_base_url: Storage的IP
'''
self.fdfs_base_url=fdfs_base_url or settings.FDFS_BASE_URL
def url(self,name):
'''
返回name所指文件的绝对url
:param name: 图片存在数据库中的相对路径
:return:
'''
return self.fdfs_base_url+name
二、dev.py文件中完善配置⽂件
#文件存储类相关配置
DEFAULT_FILE_STORAGE='mgproject.utils.fastdfs.fdfs_storage.FastDFSStorage'
FDFS_BASE_URL='http://192.168.17.129:8888/'
三、编辑⻚⾯获取图⽚链接地址
{% for article in articles %}
<div class="blog-item">
<div class="post-format">
<a href="#">
<img src="{{ article.default_img.url }}" alt="img">
</a>
</div>
四、⻚⾯访问后显示图⽚绝对路径
<img src="http://images.nagle.cn:8888/group1/M00/00/00/wKgVjV_jUFqAYzZbAAFNF-5NQK4351.png" alt="img">
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74074.html