标签:
网上已经有一些优秀的教程了,但是大多数基于web.py,最近学了点django,就用django写个简单的demo。
基础的python知识,基础的django框架知识。
申请sae,申请微信公众平台。看一下sae和微信平台开发文档。
可以参考以下几个教程有个大致的了解:(包括申请sae,微信平台,url设置等步骤)
使用python一步一步搭建微信公众平台(一)
利用SAE搭建微信公众平台(二)微信的验证和自动回复
微信机器人:小蜗牛有道翻译小助手——Django + SAE + 微信公众帐号自动回复开放接口
建立项目:django-admin.py startproject
mysite
按照sae要求更名为版本1:move mysite 1
编写配置文件:config.yaml
|
|
编写index.wsgi:
|
|
这时候文件夹1下应该有4个文件(夹):
config.yaml index.wsgi manage.py mysite
切换到mysite文件夹下,建立一个templates文件夹:
cd mysite; mkdir templates
修改settings.py:
|
|
|
|
在这里使用了视图类,实现了get和post方法来处理这两种请求。get方法用来验证,验证方法在微信开发文档里有描述。post方法实现消息回复,xml解析得到相应内容,xml内容详见微信开发文档,需要严格按照格式回复。
进入mysite里的templates文件夹,建立两个模版文件get.html和reply_text.xml:
get.html内容很简单,直接定义一个变量str就可以:{{ str }}
在views.py的get方法里,
return render(request, ‘get.html‘,
{‘str‘: echostr}, content_type=‘text/plain‘)
render后str会被替换成echostr返回。
reply_text.xml:
在这个xml模版里定义了一些变量,然后我们在post方法里使用这个模板,实际上也就是文档里定义的xml文件,把需要替换的地方用自己定义的变量替换。然后在render方法里,把变量替换为需要的信息,我们把’content’: content直接用content返回,就可以直接回复收到的内容。
|
|
|
|
在这里用csrf_exempt方法去除csrf验证。
用curl这个命令发送post请求
curl -X POST -d @post.xml http://127.0.0.1:8000/weixin/
> result.html
curl的用法可以自行搜索,post.xml就是我们要发送的xml文件,格式参考微信开发文档。把结果重定向到一个result.html文件里边,用浏览器打开就可以查看是什么错误了。
可以使用svn直接commit到sae上即可。
标签:
原文地址:http://blog.csdn.net/pegasuswang_/article/details/43876063