微信测试号与Django前端开发

前提

部署好服务器环境与微信测试号环境,Django的settings.py中

ALLOWED_HOSTS = [
    'localhost',
    'e602a621.ngrok.io'
]

正确填写域名

Handler编写

举个例子如下

class BookWhatHandler(WeChatHandler):
    def check(self):
        return self.is_event_click(self.view.event_keys['book_what'])

    def handle(self):

        activities = self.get_activities()
        if not activities:
            return self.reply_text('对不起,现在没有正在抢票的活动')
        articles = []
        currentTime = datetime.datetime.now().timestamp()
        for activity in activities:
            if currentTime < activity.end_time.timestamp():
                articles.append({
                    'Title': activity.name,
                    'Description': activity.description,
                    'Url': self.url_book(activity.id),
                    'PicUrl': activity.pic_url,
                })
        if len(articles) > 0:
            return self.reply_news(articles)
        else:
            return self.reply_text('对不起,现在没有正在抢票的活动')

实验项目的微信接口封装模式为 View-Handlers,会按顺序依次尝试调
用各个 handlers 的 check 方法,第一个返回 True 的 handler 视为接受请求,进而调用其handle 方法,完成整个微信消息的处理。
上述例子中
check()函数是否在测试号中点击"boot_what"按钮,如果是,返回true,然后调用下面的handle()函数
handle()函数便对上述点击操作进行分析,实现具体需要的那些功能。

实验项目中,在Django下创建项目,对wechat文件夹下handler.py文件下编写各个Handler函数,项目运行时,依次调用各个函数,直到找到合适的函数进行操作。

想说的话

Handler实现了微信测试号前端与Django后端编写的连接,在运行过程中可以在后台显示不同操作产生了什么影响,较为直观,对于debug而言也是必要方便的。
现在的微信公众号已经可以通过微信公众平台进行和上述很相似的操作,可以对下方的目录进行操作,使得点击不同的选项出现不同的回复,使用Django算是对于原理的一种了解,深入内部,才是学习软件最重要的目的。毕竟我们以后不是软件的使用者,而是软件的开发者嘛

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值