django  在新浪云部署 微信后台 步骤



1、首先在新浪云 上创建应用,因为用的是django web框架,所以选择python,版本只支持2.7,所以最好本地开发就用2.7这个版本,二级域名和应用名自己填写好,代码管理      工具根据自己的喜好选择git或者svn

     这里要强调一下,sae 要进行实名认证,否则后边微信token认证会失败

    

   

2、申请微信公众号,然后进入开发者模式,,填写好url 和token ,URL 是上面填写的带有二级域名的sae地址,后面跟上你web服务的地址,例如我的是 /wechat/

EncodingAESKey随机生成就好,页面填写好后不要点提交,等部署好后再提交



3、 下面就是如何部署我们的代码

config.yaml
name: gxlweixin
 version: 1


 libraries:
 - name: "django"  
   version: "1.6"


注:django我选的是1.6版本,这样部署代码的时候需要把整个django都要部署到服务器上,如果选择1.5(sae默认支持1.5版本),就不需要要这步了,我没有亲自测试过,不知道是不是这个样子

   

    index.wsgi  这个文件用于sae启动你的app用


import sae
from gxlweixin import wsgi


application = sae.create_wsgi_app(wsgi.application)

然后就是写你的django代码了  

 这是我的目录结构:


config.yaml  

gxlweixin/  

index.wsgi  

manage.py

site-packages/  

wechat/

  site-packages就是上面提到的,要把你django上传到服务器,我的路径   C:\Python27\Lib\site-packages\django 把这个内容复制到这个文件夹下

  同时要在你的wsgi.py 中添加以下内容(红色部分),

import os
import sys


 root = os.path.dirname(__file__)
 sys.path.insert(0, os.path.join(root, '..', 'site-packages'))
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "gxlweixin.settings")
  
 from django.core.wsgi import get_wsgi_application
 application = get_wsgi_application()

在你创建的应用里添加验证 部分代码 ,我是放在 views.py 里,这里的token就是微信开发者模式里填写的token,一定要一致,否则会验证失败


TOKEN = "你的token"
 @csrf_exempt
 def checkSignature(request):
global TOKEN
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
tmpList = [token, timestamp, nonce]    
tmpList.sort()
tmpstr = "%s%s%s" % tuple(tmpList)
tmpstr = hashlib.sha1(tmpstr).hexdigest()
if tmpstr == signature:
return echoStr

这样所有的环节已经准备好了,回到微信开发者页面,点击提交,如果一切正常会提示成功,如果失败,自己可以在浏览器里访问地址试一下,我中途遇到 提示不支持splite2

因为django默认是使用这个数据库的,所以需要sae上开启mysql,在settings.py 中吧数据库的部分改为如下