Python开发微信点餐系统(二)

微信点餐平台开发(二)

上一篇我们完成了微信公众平台与SAE的联通,接下来我们实现关注提示及自定义菜单。

关注公众号自动发送信息给客户端

用户与公众号之间的信息交互类型分为文本、图片、语音、视频、小视频、地理位置、链接等,关注后自动推送欢迎信息,用到了文本信息。
文本信息XML格式如下

1
2
3
4
5
6
7
8
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>

具体参数详解参照微信公众号开发手册
代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import xml.etree.ElementTree as ET
from flask import Flask, request

TEXT_MSG_TPL = \
u"""
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>
"""


WELCOME_INFO = \
u"""
欢迎关注微信餐厅微信点餐
"""


#来自微信服务器的消息推送
@app.route('/weixin', methods=['POST'])
def weixin_msg():
if verification(request):
data = request.data
msg = parse_msg(data)
# 用户关注微信公众号时自动发送欢迎信息到用户端
if user_subscribe_event(msg):
return welcome_info(msg)
# 用户发送?到公众号时自动回复欢迎信息
elif is_text_msg(msg):
content = msg['Content']
if content == u'?' or content == u'?':
return welcome_info(msg)

# 将消息解析为dict
def parse_msg(rawmsgstr):
root = ET.fromstring(rawmsgstr)
msg = {}
for child in root:
msg[child.tag] = child.text
return msg

# 判断用户信息类型是否为文本信息
def is_text_msg(msg):
return msg['MsgType'] == 'text'

# 判断是否为关注事件
def user_subscribe_event(msg):
return msg['MsgType'] == 'event' and msg['Event'] == 'subscribe'

# 返回欢迎信息值
def welcome_info(msg):
return response_text_msg(msg, WELCOME_INFO)

# 给定一个信息模板,返回对应对应值
def response_text_msg(msg, content):
s = TEXT_MSG_TPL % (msg['FromUserName'], msg['ToUserName'], str(int(time.time())), content)
return s

Python开发微信点餐系统(一)

微信点餐平台开发 (一)

接下来我们将一步一步学习Flask+微信公众平台+新浪SAE平台开发一个点餐平台。

功能介绍

此点餐平台有以下功能:
1、预约管理
2、菜单管理
3、线路导航

微信平台接口

主要用到微信公众平台的以下接口:
1、信息接口,用来输出用户服务信息
2、地理位置信息服务
3、自定义菜单
4、事件推送

功能实现

首先在微信的公众平台与新浪SAE平台上注册账户。

此处不作详细介绍

在SAE上搭建Python应用

在新浪云中选择云应用SAE,创建新应用。为了方便开发调试,我们需要安装SAE本地开发环境。
1、安装
直接使用pip或者easy_install安装sae-python-dev即可

Python实现车牌定位及分割

具体步骤

1、将采集到的彩色车牌图像转换成灰度图
2、灰度化的图像利用高斯平滑处理后,再对其进行中直滤波
3、使用Sobel算子对图像进行边缘检测
4、对二值化的图像进行腐蚀,膨胀,开运算,闭运算的形态学组合变换
5、对形态学变换后的图像进行轮廓查找,根据车牌的长宽比提取车牌

一步一步学Scrapy:setp 2

step 1简单爬取了mininova-ebook第一页的数据,接下来我们来写爬取ebook所有的数据

首先我们来分析一下页面


查看源代码,在点击Next »包含有下一页的链接,我们可以用来实现自动翻页爬取

1
<strong><a href="/sub/50/name/2" title="Next page">Next »</a></strong>

查看一下最后一页的源代码

1
<li class="disabled"><span>Next »</span></li>

,