BLOG
Enjoy when you can, and endure when you must.
NOV 25, 2013/后端开发与架构
Django微信公众平台开发:响应
最后一个基础模块就是对来自微信服务器的请求进行处理和响应。 一般来说,当普通微信用户向公众账号发消息时或产生关注/取消关注、点击自定义菜单等动作后,微信服务器会将消息的XML数据包以POST的形式发送到我们的服务器来。其中,XML数据包形式如下(以文本消息为例): <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName>  <C...
NOV 25, 2013/Python
解析XML:更便捷的方式
在前面介绍的解析XML的方法都是利用Python标准库中的API来实现的,即ElementTree和DOM。不过貌似都觉得不是非常直观。因此,这里我们引入一个第三方库来更方便的完成需求 —— BeautifulSoup。BeautifulSoup是一个功能强劲的用于解析HTML/XML的模块。还是以之前的例子切入:<?xml version="1.0" encoding="utf-8"?> <CSubmitState xmlns:xsd="http://www.w3.org/2001/XM...
NOV 24, 2013/Python
解析XML:DOM
在之前所写的解析XML:ElementTree一文中,我是用Python标准库里的xml.etree.ElementTree来实现的。不过这种对于含有命名空间的XML则显得不大方便和直观。其实Python标准库里还提供了更简单的方法,那就是利用The Document Object Model API,即xml.dom。这种方法通过检索DOM树实现。还是以之前的XML文档为例:<?xml version="1.0" encoding="utf-8"?> <CSubmitState xmlns:xsd...
NOV 22, 2013/Python
解析XML:ElementTree
解析XML是很常见的需求,利用Python内置的ElementTree XML API即可实现。假如有如下一个简单的XML文档(来自于微信的XML数据包):<xml> <ToUserName>toUser</ToUserName> <FromUserName>fromUser</FromUserName>  <CreateTime>1348831860</CreateTime> <MsgType>text</MsgType> <Content>thi...
NOV 20, 2013/后端开发与架构
Django微信公众平台开发:Access Token
微信公众平台开发中,与微信服务器的交互都必须使用Access Token。因此相比之前介绍的接入,实现access_token的获取同样是非常重要而基础的。 请求access_token,需要以GET方式访问https://api.weixin.qq.com/cgi-bin/token这个接口,并附带如下参数: grant_type:这个参数的值总是client_credential appid:公众号的app_id secret:公众好的凭证密钥 在开始之前,我们必须首先实现一个发送请求的方法send_request,其代码如下: def&nbs...
NOV 18, 2013/后端开发与架构
Django微信公众平台开发:接入
最近在搞微信公众平台开发,挺有意思的,也很简单。今天在这里和大家分享一下接入,这是进行微信平台开发的基本要素。 其实在微信公众平台开发者文档中对接入是有详细说明的,我们主要是改用django来处理微信服务器发来的请求。 消息接口申请与验证: 登录微信开发平台,在“开发模式”页面里进行服务器配置: URL是开发者用来接收微信服务器数据的接口URL,Token则是用于签名,可以任意填写。 接下来就是验证,这里我们必须有线上环境来响应微信服务器的请求。 在Django工程中编写如下View: class W...
NOV 15, 2013/Django
在ModelAdmin中自定义list_filter
list_filter可以对数据进行筛选,支持BooleanField、CharField、DateField、DateTimeField、IntegerField、ForeignKey或ManyToManyField。另外,还可以自定义!假设这里有一个Activity模型并为其增加一个自定义过滤器使其能够方便的筛选出“我参与的活动”、“我发布的活动”,我们可以这样做:class ActTypeFilter(SimpleListFilter):     title = u'类型'  &nb...
NOV 14, 2013/Python
利用Python列表实现堆栈(二):实现
以下定义了一个全功能的堆栈类:class error(Exception): pass                 # when imported: local exception class Stack:     def __init__(self, start=[]):&nbs...
NOV 14, 2013/Python
利用Python列表实现堆栈(一):剖析
堆栈是一种非常常见且简单易用的数据结构,适用在多种应用场合。堆栈是一种数据项按序排列的数据结构,只能在一端(栈顶)对数据项进行插入和删除,遵循后进先出的原则。在不同的需求中,栈的操作可能不仅限于进栈和出栈,可能还需要检测栈是否为空,获取栈顶元素但并不将其弹出,遍历栈内所有元素,或者检测某元素是否在栈中存在等等。在Python中,一个简单的列表元素通常足够用来实现栈:它允许对其中的元素进行任意操作,从任意一端插入或取出元素。下表总结了一些Python内置的列表操作方法来模拟栈操作。操作栈顶处于列表末尾栈顶位于列表起始位置栈顶位于列表起始位置新建stack=['a', ...
NOV 13, 2013/Django
在ModelAdmin中添加自定义View
为拓展ModelAdmin的功能,我们时常需要通过自定义View来进行拓展,通过利用ModelAdmin.get_urls(self)可以很方便的做到这一点。ModelAdmin中的get_urls方法返回该ModelAdmin中特定的URLs,其采用的方式和URLConf一样。由此,我们只需加入自己的View函数并通过get_urls方法加入URL链接即可达到目的。以下是我自己网站的一个示例:class PhotoAdmin(admin.ModelAdmin):     ......    &nbs...
<< < 5 6 7 8 9 > >>