Django网站七牛上传图片遇到出错信息如何捕获,,是这样的,我的 Djan
Django网站七牛上传图片遇到出错信息如何捕获,,是这样的,我的 Djan
是这样的,我的 Django 网站上的用户需要直接传图片到七牛,
上传图片我已经处理好了,关键是上传的后续过程。
我把那个用户上传图片后重定向的 returnUrl = "http://localhost:8000/returnpage" 的view函数这么写:
import base64import jsondef return_page(request): domain = "ddkanhuo.qiniudn.com" #这是我的七牛空间地址 ret = request.GET['upload_ret'] # 读取返回的upload_ret fileinfo = json.loads(base64.decodestring(ret)) if fileinfo.get('error'): error_message = fileinfo['error'] return render(request, 'return_page.html', {'error_message': error_message}) else: key = fileinfo['key'] public_url = 'http://'+ domain + '/' + key return render(request, 'return_page.html', {'public_url': public_url})
然后return_page.html大概是这样的(如果上传发生错误就显示错误消息,上传成功则显示图片):
<html>.....{% if error_message %} {{ error_message }}{% else %} <p><img src="{{ public_url }}">{% endif %}.....</html>
但是问题是呢,如果图片上传成功了,确实会按照预想的那样显示图片;
但是如果上传图片失败了,并不会显示错误消息,而会发生错误:
MultiValueDictKeyError at /returnpage/ "'upload_ret'"
这个应该怎么办,错误出在哪里的?
Django 新人求教,七牛的文档真是太难懂了...
今天我也遇到这个问题了,这么久了不知道你解决了没。图片上传出错后直接就没有upload_ret这个returnBody了,错误信息直接在url里显示出来了。
我也是使用的django,我觉得我的项目没有必要主动上传到七牛,于是我使用了七牛的镜像功能,设置django的MEDIA_URL = 'http://xxxx.qiniudn.com/media/'。直接指向你的子域名,如(http://static.sample.com/)。镜像功能会主动去下载访问到的图片,不需要在程序里主动传到七牛,减少了很多上传失败的风险。缺点是有可能第一次访问该图片的时候速度稍慢,我觉得到是可以接受这个速度。
django项目里的图片如果做了修改,我的做法是在程序里向七牛提交删除key的指令,然后前台访问的时候加上版本参数,如:http://xxxx.qiniudn.com/media/123.jpg?v=123456,可以强制七牛刷新cdn缓存。缺点是好像刷新还是需要一点时间才能同步。
你好,能分享一下怎么在django中上传图片的代码吗? 弄了好久,图片都还上传不了。
编橙之家文章,
相关内容
- 关于python requests库中session线程安全方面问题的小疑问,
- Python动态语言运行机制是怎么样的,python动态运行机制
- python 能通过CAN控制一部普通的家用轿车吗?,python家用
- python json多态问题警告Traceback (most recent call last),json
- 香港服务器访问国内站除了用代理ip外,还有什么方便抓
- python时间判断问题处理方法,python处理方法,A在库里已
- 关于python Regex匹配XML标签内容的一些疑问,pythonregex,总
- Python web框架开发需要学习哪些知识,pythonweb,需要哪些
- 定时运行python virtualenv程序没执行原因,pythonvirtualenv
- python django+celery+ansibleApi无返回,djangoansibleapi,1.python调
评论关闭