之前写了一篇搭建sae的python平台,通过微信公众平台验证的博文。现在就是要承上启下,开始开发的第一步。也许你会说开发的第一步就是写代码。那我会对你表示鄙视,尽管南苑随笔是个很简单的应用,但是多少也还需要设计一下。确定一下需求,为了将来能够吸引到粉丝来关注我的公众号,我必须要定位好我的app,然后提供优秀的内容,并确定它的运营模式,才能进一步地提升我们的应用水准。
需求分析
首先,这个app是要用python写的,那么就一定要优雅一点,pythonic一点。对于我自己来说,我要使得这个app至少能够满足我阅读若干与南苑相关的文章的要求才行。故而需要对南苑随笔进行需求分析:
定位: 为南苑或者外校同学提供我们在南苑生活和学习的文章。文体不限,内容形式包括{图片,语音,文字},推送给用户,这正是微信能够提供给我的。
约定: 允许投稿,但是投稿必须通过管理员的审核。其实很大程度上,我们是为了向粉丝们推介 @bibo-果冻 和 @daoluan-郑思愿 合作的那本《南苑随笔——IT小小鸟外传》。
内容: 校园生活,学习,感情,分享,趣味,摄影,文学作品,简单社交 ,歌曲等等。
服务: 提供每1天/2天定期推送文章或语音。同时相应用户发来的请求,对用户请求进行分析后返回所要求的内容。
性能: 要求服务器在5秒内返回用户的请求内容,在网络差的时候,这个就难说了。能够同时处理至少20位粉丝的请求(其实到底有没有这么多粉丝发来请求,我心里还是没有数啊)。
系统设计
这次,我吸取了上次的经验教训,要先完成逻辑和数据的设计,最后才去设计我们的交互界面(包括交互方式和菜单)。数据先行,那么一切就从构建起数据库开始。参照wordpress的博客数据库,就可以设计出基本的数据库框架。这部分就交给 @daoluan-思愿 来搞定,我相信他会完成的相当出色。
本系统需要一个博客系统,和一个微信服务app,博客系统作为web端,用浏览器可访问的。而微信app则负责推送到用户的微信帐号聊天界面。故而我们的数据库设计就很清晰了,需要:
user表——用户
post表——文章
blog配置——博客的设置
category表——分类
———————————次要———————————
url表——友情链接
guest_book表——留言簿
而我需要用到的仅仅是博客系统数据库的一个子集——post表和guest_book表(也许会用到category表)。故而开发微信app则只需要自行创建两个表进行实验即可。
发送消息试验
暂且不把设计逻辑排到日程上来,我们来尝试一下在第三方服务器和微信服务器,以及客户端进行通信。假如用户发送来一个请求,由于已经绑定了URL,且开启了开发模式,那么就微信服务器就会转发这个请求到我们的服务器,我们的服务器要解析这个请求,然后返回所请求的内容。
我们需要一个类来处理get请求,以及定时向微信服务器传送群发的文章。
该类 weixin_scnuwriter设计如下:
handle_request(request) # 处理请求
parse_request_xml(xml) # 解析请求
response_msg(request) # 响应请求(关键逻辑部分)
pack_text_xml(post_msg, response_msg) # 打包响应的文本内容,需要参考微信API,供response_msg调用
# 另外在数据库方面要能够读取,需要django于数据库打交道,不过我们暂时不实现,只是做一个简单的测试。
下面是handle_request代码:
def handle_request(request): if request.method == 'GET': response = HttpResponse(check_signature(request),content_type="text/plain") # 如果是GET请求,那么核对签名 return response elif request.method == 'POST': response = HttpResponse(response_msg(request),content_type="application/xml") # 如果是POST请求,那么响应消息 return response else: return None
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, 设计
, 服务器
, c#微信开发
, 微信开发
, 内容
, 微信接口
, app接口开发
, request
, 微信定位
, 微信分享接口
, 用户
, 转发阅读文章微信
.net 开发微信公众号
,以便于您获取更多的相关知识。