python tornado微信开发入门代码


Posted in Python onAugust 24, 2018

本文实例为大家分享了python tornado微信开发的具体代码,供大家参考,具体内容如下

#微信入门代码
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

import tornado.ioloop
import tornado.web
import hashlib
import xml.etree.ElementTree as ET
import time

def check_signature(signature, timestamp, nonce):
  # 微信公众平台里输入的token
  token="linden"
  #字典序排序
  list = [token,timestamp,nonce]
  list.sort()
  sha1=hashlib.sha1()
  map(sha1.update,list)
  hashcode=sha1.hexdigest()
  return hashcode == signature

class MainHandler(tornado.web.RequestHandler):
  def get(self):
    signature = self.get_argument('signature')
    timestamp = self.get_argument('timestamp')
    nonce = self.get_argument('nonce')
    echostr = self.get_argument('echostr')
    if check_signature(signature, timestamp, nonce):
      self.write(echostr)
    else:
      self.write('fail')
  def post(self): 
    body = self.request.body
    data = ET.fromstring(body)
    toUser = data.find('ToUserName').text
    fromUser = data.find('FromUserName').text
    createTime = int(time.time())
    msgType = data.find('MsgType').text
    content = data.find('Content').text
    msgId= data.find("MsgId").text
    # from与to在返回的时候要交换
    textTpl = """<xml>
      <ToUserName><![CDATA[%s]]></ToUserName>
      <FromUserName><![CDATA[%s]]></FromUserName>
      <CreateTime>%s</CreateTime>
      <MsgType><![CDATA[%s]]></MsgType>
      <Content><![CDATA[%s]]></Content>
      <MsgId>%s</MsgId>
      </xml>"""
    out = textTpl % (fromUser, toUser, createTime, msgType, content, msgId)
    self.write(out)

application = tornado.web.Application([
  (r"/", MainHandler),
])

if __name__ == "__main__":
  application.listen(80)
  tornado.ioloop.IOLoop.instance().start()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用dom模块生成XML文件示例
Apr 05 Python
python抓取网页中图片并保存到本地
Dec 01 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
pandas string转dataframe的方法
Apr 11 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
Python 编程速成(推荐)
Apr 15 Python
ipad上运行python的方法步骤
Oct 12 Python
使用Pytorch来拟合函数方式
Jan 14 Python
有关Tensorflow梯度下降常用的优化方法分享
Feb 04 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
Python json读写方式和字典相互转化
Apr 18 Python
Python实现UDP程序通信过程图解
May 15 Python
python使用rpc框架gRPC的方法
Aug 24 #Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 #Python
python中文编码与json中文输出问题详解
Aug 24 #Python
详解Django解决ajax跨域访问问题
Aug 24 #Python
Python面向对象之反射/自省机制实例分析
Aug 24 #Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 #Python
Python日志模块logging基本用法分析
Aug 23 #Python
You might like
PHP初学入门
2006/11/19 PHP
php实现登陆模块功能示例
2016/10/20 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
Three.js快速入门教程
2016/09/09 Javascript
React应用中使用Bootstrap的方法
2017/08/15 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
《桂林山水》教学反思
2014/02/08 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
寄语学生的话
2014/04/10 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
保安辞职信范文
2015/02/28 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
初中政教处工作总结
2015/08/12 职场文书
送给客户微信问候语!
2019/07/04 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
你需要掌握的20个Python常用技巧
2022/02/28 Python
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android