django学习之路(四)开发微信公众号

来源:互联网 发布:python 量化交易策略 编辑:程序博客网 时间:2024/06/05 19:35

开发微信公众号

我们可以将之前创建的myblog来完成这件事情。我们之前创建了项目myblog,并在myblog中新建了应用blog。现在我们只需要两步就可完成微信公众号token的验证。
第一步:编写函数体(myblog/blog/views)

# -*- coding: utf-8 -*-from django.http import HttpResponsefrom django.views.decorators.csrf import csrf_exemptfrom django.views.generic.base import Viewimport hashlibclass token(View):    @csrf_exempt    def dispatch(self, *args, **kwargs):        return super(token, self).dispatch(*args, **kwargs)    def get(self, request):        # 下面这四个参数是在接入时,微信的服务器发送过来的参数        signature = request.GET.get('signature', None)        timestamp = request.GET.get('timestamp', None)        nonce = request.GET.get('nonce', None)        echostr = request.GET.get('echostr', None)        # 这个token是我们自己来定义的,并且这个要填写在开发文档中的Token的位置        token = 'weixin'        # 把token,timestamp, nonce放在一个序列中,并且按字符排序        hashlist = [token, timestamp, nonce]        hashlist.sort()        # 将上面的序列合成一个字符串        hashstr = ''.join([s for s in hashlist])        # 通过python标准库中的sha1加密算法,处理上面的字符串,形成新的字符串。        hashstr = hashlib.sha1(hashstr).hexdigest()        # 把我们生成的字符串和微信服务器发送过来的字符串比较,        # 如果相同,就把服务器发过来的echostr字符串返回去        if hashstr == signature:            return HttpResponse(echostr)

第二步:配置urls
这一步需要改动两个urls.py
一个是myblog目录下面的:

from django.conf.urls import url,includefrom django.contrib import adminurlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^wx/',include('blog.urls'))]

在blog目录下面的views:

from django.conf.urls import urlfrom . import viewsurlpatterns = [    url(r'^token/$',views.token)]

填写的url为http://127.0.0.1/wx/token
完成。