python+django上传图片到微信

此功能是先把网络图片上传到七牛云服务器,再获取图片路径,上传到微信。
上传微信需要公众号的token和cookie也就是说,需要有公众号登录来获取这两个值。
首先我这个代码是在项目中使用的,没有例子,太麻烦了。

  # 图片路径上传微信测试使用new_url = 'http://img.xunmang.com/144121axjRLKq6uAKQDWC8hMmfk3.jpg'# 公众号的tokenaccount_token = ''# 公众号的cookieaccount_cookie = ''

注意cookie需要进行解析,导入json,用json.loads(cookie)进行解析。(从网页拿的不需要解析,我这个是从数据库取出的格式不一样,所以需要解析)
例如:

 def request_header(self, cookie, token):cookies = ''# 解析cookiecookie = json.loads(cookie)for c in cookie:name = c.get('name', None)value = c.get('value', None)if (name and value) is None:continuecookies = cookies + str(c["name"]) + '=' + str(c["value"]) + ';'# 设置请求头# print('正在设置请求头')referer = f'https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=10&lang=zh_CN&token=${token};'header = {"Content-Type": "application/x-www-form-urlencoded",'dateType': 'form-url-encoded','Referer': referer,'cookie': cookies}# print('设置请求头完毕')return header

这里不进解析了cookie还设置了请求微信的request请求头,referer是必须的,里面就吧公众号的token带入就行了。在请求头再带入解析好的cookies其他都是固定写法,最后返回设置好的请求头。
接下来就直接请求微信接口就好了,这个上传方法是post请求

    def request_interface(self, new_url, token, header):timeout = (10, 20)  # 请求request过期时间# 请求微信上传接口url = f'https://mp.weixin.qq.com/cgi-bin/uploadimg2cdn?token={token}&lang=zh_CN'body = {'imgurl': new_url,'t': 'ajax-editor-upload-img'}try:# print('上传中.........')res = requests.post(url, headers=header, data=body, timeout=timeout)data = res.json()# print('上传成功')except(RequestException,):raise exceptions.APIException('请求超时!')return data

把刚才设置好的图片路径,公众号的token,请求头,带入方法
这个timeout是请求过期时间,url就是微信上传图片的接口,因为是post请求所以会有body主体
使用requests库的post方法请求,把参数带入,requests.post(请求的接口, headers=请求头, data=参数主体, timeout=过期时间)
body中的’t’: 'ajax-editor-upload-img’是固定写法,请求完毕后返回的结果需要解析,直接吧返回结果转成json
进行返回就行了

   if 'url' in data.keys():# 向数据库添加新数据self.add_data(data['url'])

返回的结果被转成json后,就可以判断了,如果上传成功微信会返回给你新的url,这样就可以判断返回结果中的key包不包括url。如果包括就进行存值,如果不存在就不存。
不存在url就肯定是错误信息,就可以判断是否上传失败。

 # 判断微信错误def error_of_judgment(self, data):info = ''# 微信返回来的错误信息if 'err_msg' in data.keys():info = f'fail,{data['err_msg']}'# 微信返回错误代码if data['errcode'] != 0:info = f'fail,{data['errcode']}'return info

调用顺序肯定是先判断是否有错在进行判断是否成功,我这上传的图片是从服务器上拿下来的图片,而不是本地上传,因为微信这种上传接口有两个,一个是本地上传微信,另一个是网络图片上传微信,而我写的就是第二种,网络图片上传。
东西很简单,代码也很容易。这只是单纯的上传不存在任何逻辑。可以根据需求加入你的项目。

python+django上传图片到微信相关推荐

  1. 基于腾讯云服务器部署微信小程序后台服务(Python+Django)

    一 前言 微信小程序,相信大家早已熟知,它是一种无需下载安装即可使用的轻型应用,具有跨平台和接近Native App性能体验的优势.从开发模式上说,它是前后端分离的,微信小程序负责实现前端应用,后端服 ...

  2. 基于Python Django框架后端的微信小程序开发

    刚做完一个股票信息服务类的微信小程序(小程序名字"博股论基",大家有兴趣可以搜一下),也有一些心得,在这里记录一下开发过程,算是个开发笔记,同时也希望能给需要的同学一些帮助. -- ...

  3. Python + Django 如何支撑了 7 亿月活用户的 Instagram?

    PyCon 简介 PyCon 是全世界最大的以 Python 编程语言为主题的技术大会.大会由 Python 社区组织,每年举办一次.在大会上,来自世界各地的 Python 用户与核心开发者齐聚一堂, ...

  4. 在BAE上搭建python,django环境小记

    原文链接:http://www.yihaomen.com/article/python/368.htm 作者:轻舞肥羊 日期:2013-03-13 字体大小: 小 中 大 BAE 是百度推出的一个云平 ...

  5. 用python做头像_教你用python下载和拼接微信好友头像图片

    相信微信大家是用得再多也不过了.那么,对于python+微信,又能玩出什么新的花样呢?下面就给大家带来一个好玩的东西.用python下载所有的微信好友的头像,然后拼接成一张大图.这样,大家就可以转载到 ...

  6. liunx+python+django框架实现图片生成二维码

    点击箭头处"蓝色字",免费领测试技术及面试资料! 余生皆欢喜 liunx+python+django框架实现二维码生成器 首先我简单的介绍下django:django官网解释就是如 ...

  7. 计算机毕业设计Python+uniapp校园服务微信小程序(小程序+源码+LW)

    计算机毕业设计Python+uniapp校园服务微信小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...

  8. Python+Django实现基于人脸识别的门禁管理系统,附带源码!!

    已下项目为实战开发经验,微信搜索关注公众号 [ python语言空间 ],获取更多项目源码及资源. 项目介绍 基于人脸识别的门禁管理系统(Python+Django+RESTframework+Jso ...

  9. django学习 | 实战 # 微信自定义菜单

    目录 实现的效果图 # 图1:django的后台管理系统之自定义菜单 # 图2:django的后台管理系统之新增自定义菜单 # 图3:在公众号上的实现效果 一.先看看我们需要做什么 1.看微信的文档 ...

最新文章

  1. 干掉前端!3分钟纯 Java 注解搭个管理系统,我直接好家伙
  2. nginx 支持php-fpm,nginx php-fpm安装配置以支持PHP
  3. Android--解析XML之PULL
  4. 我这些年的项目管理心得...
  5. URAL 1009. K-based Numbers
  6. java static 变量共享_java中如何理解多个对象共享同一个静态成员变量?
  7. 《深入浅出数据分析》样章下载
  8. 用html语言制作古诗网页,唐诗宋词网页设计.docx
  9. python+appium 自动化2--元素定位uiautomatorviewer
  10. eclipse运行go test_在 Go 中发现竞态条件 (Race Conditions)
  11. 最小生成树:Kruskal算法
  12. 点到点短信WAPPUSH研究总结
  13. h5实现海报分享功能
  14. 服务器电脑主板维修,DELL外星人服务器电脑主板不开机故障维修
  15. 人体肌肉怎么画?怎样才能画好人体肌肉?
  16. 【机器学习】有监督学习,无监督学习,半监督学习和强化学习
  17. 海康摄像头之FTP服务器搭建及使用
  18. 360全景拼接 opencv_GitHub - hellojiawa/AndroidPanoDemo: 使用Opencv全景照片拼接
  19. 前端必备知识储存——HTML篇一(面试常考)
  20. Linux: setcap/getcap, capability

热门文章

  1. linux最多创建几个扩展分区,Linux分区:最多支持四个主分区、扩展分区
  2. 表格转换为LaTex格式
  3. 【愚公系列】2021年12月 Python教学课程 04-字符串
  4. virtual box 6.1不支持云主机安装、运行虚拟机 改为低版本即可 4.1.0
  5. 某肠派对过模拟器检测(已过期)
  6. 全景拍摄以及注意事项
  7. 聚美优品生日庆,网站瘫痪遭吐槽~看看F5的解决之道
  8. 夺旗赛 CTF 六大方向基础工具简介集合
  9. VSCode中npm包管理器安装到卸载
  10. 专业级图形工作站Wiseteam品牌推荐