前言

近几年,Python语言的火热,少不了培训机构的推波助澜,更离不开Python语言本身的魅力,他的简洁让普通人也能走进代码的世界,就连地产界大佬王老板也来凑热闹。Python语言像一个万能百宝箱,能做的事情太多,也让很多初学者迷了眼,什么都想学,最后,一场空!

Python自学第一技

不贪多,选中一个方向深入研究学习,本篇专注Python Web开发,其他方向读者可绕行!

伴随着移动互联网的浪潮,移动开发如火如荼,一时风头无两,曾经哪些专注PC端开发的前辈们不知是否还在,但栖息在“企鹅”的翅膀下富起来的个人企业已不在少数。作为Python语言下优秀的web开发框架django自然也能胜任移动互联网时代,虽然他的架构依然倾向于PC开发,但丝毫也不会影响我们学习他,并运用它进入移动开发的大门,跟随企鹅的步伐向钱迈进!

django微信公众号开发步骤

既然是公众号开发,那么自然你先得要有一个公众号,止于是不是服务号、订阅号不重要,我们又不是去运营,个人号也是可以的,止于如何注册,这里不做赘述,大家自行去解决!

一、准备微信公众平台测试账号

这里就默认大家已经有了自己的公众号,进入之后可以看到在设置开发菜单下有个开发者工具,点击之后我们可以看到红框框起来的两项,如果你从未在别的平台绑定过开发者,那么首页点击“web开发者工具”进入绑定自己为开发者,之后点击“公众平台测试账号”,扫码登录开通自己的测试账号,测试账号拥有公众号所有的高级权限,我们可以在开发过程中测试所有功能接口,但有一个要求是操作人员必须先关注自己的测试账号!

登录进入自己的公众平台测试账号之后,界面如下所示!

  1. 测试号信息

appID和appsecret这两个自然不必说,是公众号开发的一切基础;

  1. 接口配置信息

URL:这里填写公众号的回调地址

Token:自己填写,可以复杂,也可以简单,开发的时候尽量简单点,自己能记住就行!

这里的信息对应的是正式公众号基本配置里的信息,在切换到正式公众号的时候,程序中对应的就得在这里配置!

  1. JS接口安全域名

这里如果你不是用微信的JSSADK的话,那么就不需要设置,需要的话就设置,测试号支持IP和域名,这里只填入域名或IP,注意如果你开发不是用80端口,那么域名和IP后还得跟随端口号!注意:这里对应的正式公众号在右侧顶部头像和用户名的下拉菜单中有个功能设置中配置!

了解了,这几项之后,这里要注意,第二项接口配置信息在回调地址【URL】无法访问的情况下是不能验证成功的,那么这里又有了一个要求就是你必须要有一个能访问的服务器,如果是域名,还得备案。这就给不少个人初学开发者设置了门槛,那么,既然想进入这行,这点投资是值得的!

二、准备好服务器进入开发

Python拥有非常多的库,安装Python之后官方很多功能也是有许许多多的库来提供,只不过这些库有官方来维护,那么,第三方库自然更是多如牛毛,几乎你能想到的每一个方向都有对应的库,我们下来就是要利用一个wechatpy的库来进入之后的开发!

  1. 创建虚拟环境安装django
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
venv\Scripts\activate     ## windowns激活
source venv/bin/activate  ## linux激活
# 安装django
pip3 install django
  1. 安装wechatpy
pip3 install wechatpy
# with cryptography (推荐)
pip3 install wechatpy[cryptography]
# with pycryptodome
pip3 install wechatpy[pycrypto]
  1. 创建一个django项目和应用
# 创建一个django项目
django-admin startproject mysite .
# 创建一个应用demo
python3 manage.py startapp demo
  1. 在demo的views.py文件中创建回调验证接口代码,如下
from wechatpy.utils import check_signatureclass WechatServe(View):# 回调接口def get(self, request, *args, **kwargs):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 = config_admin.get('token')try:check_signature(token, signature, timestamp, nonce)except InvalidSignatureException:passreturn HttpResponse(echostr)def post(self, request, *args, **kwargs):# post请求的数据会回调到这里,比如用户向公众号发送消息msg = parse_message(request.body)print(msg, 'msg')return HttpResponse('success')

这个视图的作用就是在第二步的时候微信官方用来验证服务器地址的有效性,其中get请求中的参数说明如下:

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

参数

描述

signature

微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。

timestamp

时间戳

nonce

随机数

echostr

随机字符串

开发者通过检验signature对请求进行校验,也就是wechatpy为我们提供的check_signature()方法为我们做的事情,他做了中间的一些加密对比的事情,验证成功后,原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

  1. 在demo应用下创建一个urls.py的文件,代码如下
from django.urls import path
from .import views# 应用的命名空间
app_name = 'demo'urlpatterns = [# 构造验证视图的URL地址path("server/", views.WechatServe.as_view(), name="server"),
]
  1. 将demo下创建的urls.py 引入到项目mysite的urls.py中
from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path("demo/", include('demo.urls')),
]

这样我们就构造了一个有效的验证视图,URL:hhtp://www.xxxx.com/demo/server/, 那这个url地址就是在第二步接口配置信息中需要填入的域名!

记住,别忘了启动调试服务器(runserver),如果有端口号,还需要加入端口号,至此,我们就可以正式进入微信公众平台之后的开发了,准备工作就到此告一段落!

欢迎大家关注学习,一起进步,笔者专注django相关开发,对django有深入研究,可一起学习探讨,并且承接django相关项目的开发任务!

django微信公众号开发入门详细指南相关推荐

  1. 微信公众号开发入门教程第一篇

    微信公众号开发入门教程第一篇 关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/ ...

  2. 微信开发学习总结(一)——微信公众号开发入门指引

    本节要求: ①微信公众号申请 ②测试公众号的注册 ③准备微信公众号开发的环境 微信公众号开发入门指引 微信公众号的接入在微信公众平台-微信公众平台技术文档中有着详细的介绍.在进行微信开发前,建议先完整 ...

  3. JAVA微信公众号开发入门

    好久没进博客,最近应某人的要求,要每周写一篇博客,故此今天就把我这周刚学的微信公众号开发的知识在此总结总结,以供后人查阅.我写博客都是简要白话文,勿喷. 1.为什么要学微信公众号开发 微信的用户量庞大 ...

  4. 微信公众号开发—入门系列(一)

    最近在学习微信公众号开发的相关内容,现将学习内容总结如下: 一.微信公众平台简介 微信公众平台,即我们平时所说的"公众号",曾用名"官方平台"."媒体 ...

  5. 微信公众号开发踩坑指南(3)——公众号返回超链接点击跳转并自动关闭

    前段时间产品提了一个听起来很奇葩的需求,其实做起来也感觉很奇葩. 公众号在触发某些事件后,返回给用户具体的文案回复,但这个文案回复需要带超链接的,在用户点击超链接之后做一些CURD操作并改变改用户的状 ...

  6. Java微信公众号开发入门:一、微信公众号简介

    微信公众号 微信公众号,是微信公众平台的一种账户类型,旨在为特定或公开用户群体提供信息.营销等服务.用户可通过关注公众号来使用特定服务,进行不同活动. 微信公众号主要包括三类:订阅号.服务号.企业号( ...

  7. php微信公众号开发入门

    1 公众号准备 首先申请一个公众号申请公众号网页 由于一般的个人订阅号开放的功能有限,作为学习者,我们并不推荐使用这种账号的开发者模式进行开发,而是另外申请一个测试号进行开发学习,测试号开放的功能基本 ...

  8. php微信公众号开发入门,PHP微信公众号开发入门(二)

    好了,上一篇已经介绍到了如何成为一个微信开发者,并且简单介绍了如何获取和发送简单的文本信息,这次就来介绍一下其他类型数据的接收和发送方式. 我们可以通过微信端给我们发送来的xml来判断用户发送消息的类 ...

  9. 微信公众号开发入门教程

    1.申请注册一个公众号,个人的就可以了,然后进入测试号,如下图:(测试账号,除了支付其他的都可以用) 2.获取用户信息: (1)前端代码: 前端需要先获取code然后传给后端获取用户信息,之后就可以尽 ...

  10. 微信公众号开发入门 --验证消息来自微信服务器 (java)

    第二步:验证消息的确来自微信服务器 开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示: 参数 描述 signature 微信加密签名,signatu ...

最新文章

  1. 基因组组装(Genome Assembly)
  2. fft ocean注解
  3. 大大提高你的工作效率的Linux 技巧
  4. c语言预处理指令之 ##
  5. 设计数据密集型应用程序_设计数据密集型应用程序书评
  6. C#AE创建FeatureDataset/创建数据、集要素集
  7. osg布告板技术(Billboard)
  8. 微信iOS多设备多字体适配方案总结
  9. 浙江高级会计师评审计算机要求,浙江2020年高级会计师评审申报论文要求
  10. opencart china 书籍主题
  11. 极客时间-技术领导力300讲-小小读后感
  12. 通用后台管理系统前端界面Ⅺ——信息列表页(弹窗复用增改、CRUD前端基础实现)
  13. 伊美尔在港招股书失效:首次冲刺上市折戟,曾多次遭到处罚
  14. 算法 - 判断一个数是不是2的n次幂
  15. 电脑长时间不操作造成卡死
  16. Python学习初阶:Python基本介绍及常用数据类型
  17. SQL “varchar转换为numeric时出错” 的小插曲
  18. 非2的幂,离散傅里叶变化DFT的快速实现
  19. AI时代,与其恐惧,不如拥抱。
  20. Linux基础命令必知必会

热门文章

  1. 贪心算法 --- 例题2.哈夫曼编码问题
  2. mhdd测试hdd硬盘软件,硬盘检测工具mhdd
  3. java高级工程师个人简历模板
  4. Elasticsearch 集成 SpringBoot并进行CRUD操作
  5. 获取百度地图、高德地图经纬度坐标
  6. java 判断客户端是手机端还是PC端(SSH框架)
  7. 虚拟机上安装win7系统
  8. 理解GAN网络基本原理
  9. 江苏计算机二级msoffice高级应用,计算机二级考试MSOffice高级应用
  10. 焕然一新的 Vue 3 中文文档来了,附送50张学习思维图