0%

Django开发微信公众平台管理系统——第0章

前言

两年前,学习了Django的开发,整理了一个系列的文档,《Django入门》、《Django开发简单Blog系统》、《Django部署到线上》等。半年前,使用Django和图像处理方法完成了毕业设计。

最近,打算空闲时间打造一下自己的微信公众号,于是安装了微擎系统。但是发现微擎系统存在很多问题,最不能忍受的是添加自动回复,添加完成没有报错,但是数据库根本没有记录!
找客服?对不起咱不是付费用户,没人给咱服务。看文档?对不起文档不涉及咱这个具体问题。找社区?对不起社区不活跃,没人遇到过咱这个问题,无人解答。学完微擎框架自己解决?有这个闲工夫,咱就自己写一个了!。。。行吧,拜拜了您哪!

找了一圈,没有找到特别满意的其他微信公众平台管理系统,那就,自己写一个吧!基于DjangoWeRoBot,参考文档WeRoBot与其他 Web 框架集成

开发环境准备

1、Python版本3.6.3

2、Django版本2.1.7

3、PyCharm版本2018.1.4(Community Edition)

4、安装WeRoBot
pip install werobot

创建项目

首先给项目起个好名字吧,万一以后火了呢!就叫wecms吧,没错就是这么随意。

1、创建项目
django-admin startproject wecms

2、运行wecms

1
2
3
4
cd wecms
python manage.py runserver
# or
python manage.py runserver 0.0.0.0:8080

3、测试访问
浏览器访问 http://localhost:8000/ ,即可看到项目首页。

创建应用

1、创建应用
前期所有的模块都放在一起,以后再进行拆分优化,因此创建应用名为main。
python manage.py startapp main

2、注册应用
编辑 wecms/wecms/settings.py,添加:

1
2
3
4
5
6
7
8
9
10
11
# Application definition

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
]

3、第一个函数
编辑 wecms/main/views.py,如下修改:

1
2
3
4
5
6
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def index(request):
return HttpResponse('welcome to wecms!')

4、添加路由
编辑 wecms/wecms/urls.py,如下修改:

1
2
3
4
5
6
7
8
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('main.urls')),
path('main/', include('main.urls')),
]

创建 wecms/main/urls.py,内容如下:

1
2
3
4
5
6
7
from django.urls import path
from . import views

urlpatterns = [
path('',views.index, name='index'),
path('index/',views.index, name='index'),
]

5、启动服务
python manage.py runserver

6、测试访问
浏览器访问
http://127.0.0.1:8000/
http://127.0.0.1:8000/main/
http://127.0.0.1:8000/main/index/
都可以看到welcome to wecms!

引入WeRoBot

1、创建 wecms/main/views_wechat.py,内容为:

1
2
3
4
5
6
import werobot
robot = werobot.WeRoBot(token='vkwechat')

@robot.handler
def index(message):
return 'Today is wonderful day!'

收到的所有信息返回Today is wonderful day!

2、wecms/main/urls.py修改为:

1
2
3
4
5
6
7
8
9
10
from django.urls import path
from . import views
from . import views_wechat
from werobot.contrib.django import make_view

urlpatterns = [
path('',views.index),
path('index/',views.index),
path('wechat/',make_view(views_wechat.robot)),
]

注意,make_views函数中的参数并不是函数,而是robot对象。

3、测试访问
浏览器访问 http://127.0.0.1:8000/main/wechat/

微信配置

1、使用内网穿透,把本地8000端口代理到 wecms-dev.voidking.com 域名。

2、测试访问
http://wecms-dev.voidking.com/main/wechat/

3、配置微信公众号
登录微信公众平台,开发,基本配置,服务器配置,修改配置。
填入URL和代码中定义的Token,随机生成EncodingAESKey,消息加解密方式选择明文,提交。

提交成功,就完成了微信公众号和服务器的绑定。用户发送给微信公众号的消息,会转发给我们的服务器;服务器处理完成后的信息返回给微信公众号,微信公众号再把消息转发给用户。

4、测试

扫码关注自己的公众号,然后发送任意信息,看看返回了啥?Today is wonderful day!

源码分享

https://github.com/voidking/wecms/releases/tag/v0.0.0