使用django进行微信公众平台开发

-----------------

大家可以直接去看github ,那个有简单的自动回复,查询空教室,查询成绩等等。是一个校园服务平台的一部分

 

https://github.com/virusdefender/smart-qdu

-------------------

 

1  纯演示性质的使用方法

#但是少了这个 会出现403错误的  原因是csrf校验失败
@csrf_exempt
def weixin(request):
    global TOKEN
    if request.method == 'GET':
        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 HttpResponse(echoStr)
        else:
            return HttpResponse("ERROR")
    else:
       xmlstr = smart_str(request.body)
       xml = etree.fromstring(xmlstr)
       ToUserName = xml.find('ToUserName').text
       FromUserName = xml.find('FromUserName').text
       CreateTime =xml.find('CreateTime').text
       MsgType = xml.find('MsgType').text
       Content = xml.find('Content').text
       MsgId = xml.find('MsgId').text
       reply_xml = """
       <xml>
       <ToUserName><![CDATA[%s]]></ToUserName>
       <FromUserName><![CDATA[geeks_at_qdu]]></FromUserName>
       <CreateTime>12345678</CreateTime>
       <MsgType><![CDATA[text]]></MsgType>
       <Content><![CDATA[%s]]></Content>
       </xml>"""%(FromUserName, Content + "  Hello world, this is test message")

       return HttpResponse(reply_xml)

 

 

2 django和数据库在sae平台上的部分问题

(1)默认的index.wsgi和config.yaml文件

import sae
from qdutw import wsgi

application = sae.create_wsgi_app(wsgi.application)
libraries:
- name: "django"
  version: "1.5"
  
- name: "lxml"
  version: "2.3.4"

(2)admim界面样式丢失

在project_name/version/文件夹中建立static/admin文件夹,然后把本机site-packages/django/contrib/admin/---记不清了,反正有三个文件夹,分别是image, js和css,复制到里里面就好了

 

(3)数据表的大小写文件

 

导入了sql文件之后,一直提示我自己的那个应用的数据表不存在,后来搜索后才发现,数据表的名字是全小写的,而django提示的确是首字母大写的,我自己的app的名字,这样在mysql管理界面直接将表重命名就好了。

 

(4)dump数据库

mysqldump -u root -p database_name > dump1.sql  输入密码就好了

然后要把里面的所有的LOCK和UNLOCK语句删除

 

 

----------

http://www.cnblogs.com/virusdefender/p/3476524.html

 

https://github.com/virusdefender/qdutw_weixin(已经废弃)

posted @ 2013-12-16 15:18  virusdefender  阅读(2235)  评论(0编辑  收藏  举报