2017年3月

python之微信公众号上传多媒体素材

多媒体上传使用Post方式,用到requests第三方包

使用pip安装pip install requests

先根据AppID和AppSecret获取AccessToken

以下为已封装获取AccessToken方法

wechat = WeChat()
AccessToken = wechat.getAccessToken()

#上传临时素材接口
def uploadImage(request):
    type = 'image'
    filedata = {
        "image": open("D://PY/wechat-ss-panel-v3/static/image/1.jpg", "rb")
    }
    url = 'https://api.weixin.qq.com/cgi-bin/media/upload?access_token='+AccessToken+str('&type=')+str(type)
    msg = requests.post(url, files=filedata)
    return HttpResponse(msg)

上传成功返回:{"type":"image","media_id":"9Oupzm4rCWW4L52CRntGElzfi1ADJ70oSu3A1zqWPZbDLLk_24_SJwnaTGaRaMd1","created_at":1489023645}



微信公众号接口 添加菜单时中文的问题(errcode":40033 invalid charset)

错误:

{"errcode":40033,"errmsg":"invalid charset. please check your request, if include \\uxxxx will create fail!"}

由于dumps将dict转换成str时中文会被转换成unicode格式

所以在使用dumps转换时使用

ensure_ascii=False禁止中文转换

 

菜单参数:

menu={
 "button": [
 {
 "type": "click",
 "name": "随机电影",
 "key": "电影+随机"
 },
 {
 "type": "click",
 "name": "作者",
 "key": "作者"
 },
 {
 "name": "MarkSS",
 "sub_button": [
 {
 "type": "click",
 "name": "邀请码",
 "key": "邀请码"
 },
 {
 "type": "click",
 "name": "签到",
 "key": "签到"
 },
 {
 "type": "click",
 "name": "私有节点",
 "key": "私有节点"
 },
 {
 "type": "click",
 "name": "科学上网",
 "key": "科学上网"
 },
 ]
 }]
}

接口测试:
def createTable(request):
    param = Params.menu
    data = dumps(param, ensure_ascii=False) #dumps是将dict转化成str格式,loads是将str转化成dict格式
    data=bytes(data,'utf8')
    #params = urllib.parse.urlencode(param).encode('utf-8')
    url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='+AccessToken
    create_url = urllib.request.Request(url)
    msg = urllib.request.urlopen(create_url, data)
    return HttpResponse(msg)


Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header

Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header:

DisallowedHost at /

Invalid HTTP_HOST header: '10.211.55.6:8000'. You may need to add u'10.211.55.6' to ALLOWED_HOSTS.

 

Request Method: GET
Request URL: http://10.211.55.6:8000/
Django Version: 1.10.4
Exception Type: DisallowedHost
Exception Value:
Invalid HTTP_HOST header: '10.211.55.6:8000'. You may need to add u'10.211.55.6' to ALLOWED_HOSTS.
Exception Location: /usr/lib/python2.7/site-packages/django/http/request.py in get_host, line 113
Python Executable: /usr/bin/python
Python Version:

 

1,以上时我访问请求的时候出现的,原因在于Django框架中的创建的一个项目的时候,

2,跑下这个命令:Python manage.py runserver 10.211.55.5:8000

3,然后在我本机的浏览器中写入上述IP和端口请求过去:http://10.211.55.6:8000

4,于是就出现了最上面的那个问题;

5,于是就去django-admin.py startproject project-name创建的项目中去修改 setting.py 文件:

ALLOWED_HOSTS = ['*']  #在这里请求的host添加了*

6,于是就成功的访问到了Django的项目了;

 

原文:http://blog.csdn.net/will5451/article/details/53861092