使用python 3.6,django==1.11.11 框架是DRF,图片存储用Fastfds,做电商网站后台,实现图片的增删改查,结果报错如下图:
解决:
看报错内容,点开对应文件是fdfs_client.py,发现语法是python 2的,跟我的虚拟环境python 3.6冲突了。应该更换fdfs_client模块适应python 3环境。
首先卸载掉fdfs_client应用,然后虚拟环境中安装pip install py3Fdfs
注意新模块使用的教程和原有的不一样
from fdfs_client.client import Fdfs_client,get_tracker_conf
# 注意fdfs client的配置路径需要修改成你自己的fdsf的配置路径
tracker_config = get_tracker_conf('/etc/fdfs/client.conf')
# 创建client 用于上传文件,注意这里要用关键词参数传参
client = Fdfs_client(trackers=tracker_config)
# 测试上传,指定一个文件
ret = client.upload_by_filename('test')
# 打印检查下返回结果
print(red)
问题解决。
还有一个值得注意的是使用fdfs_client模块上传文件到fastfds上面,返回的文件地址保存在'Remote file_di'字段,是字节型的,我们接收时需要将它解码decode()