# 获取用的token
from common.wechat.token import getToken
# 这个是上传到腾讯云的COS
from common.qcloudcos.qcloudstorage import QcloudStorage
from django.conf import settings
from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exempt
import requests, json


@csrf_exempt
def Poster(request):
	# 获取小程序的token
    token = getToken(settings.OPSTOOL_ID, settings.OPSTOOL_SECRET)
	# 定义传参的类型
    headers = {"Content-type": "application/json"}
    if token:
		# 这个url生成的二维码是无限个
        url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + token
        data=json.loads(request.body)
		# 生成小程序的传参
        scene = str(data.get('postid'))
		# 生成小程序的路径
        page = data.get('path')
        data = dict(scene=scene, page=page)
		# 不报错res.content是二进制的图片信息保存就行了
        res = requests.post(url, data=json.dumps(data), headers=headers)
        cos = QcloudStorage()
		# 定义个保存路径
        name='/weapp/poster/qr-blog-' + scene + '.png'
		# 存储到cos,这里可以换成本地
        cos.save(name=name, content=res.content)
		# 返回
        return JsonResponse({"qr_url": settings.MEDIA_URL+'weapp/poster/qr-blog-' + scene + '.png','errcode':0},safe=False)
    return JsonResponse({"errcode":"1","errmessage":"没有token"})

如果需要我写的getToken方法,访问下面这个小程序。
Django生成小程序码

相关文章: