BLOG
Enjoy when you can, and endure when you must.
APR 09, 2015/Django
让 ImageField 更懂我的心
Django 的 ORM 提供了一个 ImageField 为我们在图片的存取上带来了极大的便利。不过在 Web 中,我们经常有这样的一个需求,就是不同的页面可能呈现不同尺寸的图片,例如一个图片浏览器通常会在列表页中显示方形的缩略图而在详情页中才展现完整尺寸的图片,为了页面显示的美观,我们必须在满足不同比例显示的同时保证美观,也就是不能让图片变形。一种处理方式就是在图片上传的时候就自动生成所需的缩略图,然后根据需求调用不同的图片达到所需的效果。要让 ImageField 更懂我们的心,看来需求对它动动手脚。要想定制它,首先需要了解 ImageField 是如何工作的。通过阅读官方文档,可...
JAN 09, 2015/后端开发与架构
DWeixin:微信公众平台开发
微信公众平台开发 2.0 版本,优化了原先的一些功能,新增“事件外部处理”支持等。 Github: https://github.com/manyunkai/DWeixin 包依赖 Pythhon == 2.7.3+,暂时不支持 3.x 版本; django == 1.6.x,该版本基于 1.6.5 开发; MySQL-python == 1.2.3; django-grappelli == 2.5.x,注意不能使用更高或更低版本; lxml == 3.3.6; beautifulsoup4 == 4.3....
JUL 11, 2014/Django
uwsgi部署django工程的常见问题
在Linux上部署django工程的时候,有些细节上的操作如果没注意的话可能会导致一些莫名其妙的错误,这里整理两个很常出现的问题: -- unavailable modifier requested: 0 -- 这句话写的确实不太明确,其实这问题出在uwsgi没能正确找到python。而这多是因为通过apt来独立安装uwsgi导致的,所以如果确实要这么做要注意进一步安装uwsgi-plugin-python,并且在uwsgi的配置文件中指定“plugins = python”。 还有一种方法,我认为更合适,就是直接编译安装uwsgi或通过pip,...
APR 19, 2014/Python
Datetime中offset-naive与offset-aware时间的计算
在使用Django时,默认是开启对多时区的支持的,在获取时间的时候会是如下形式:datetime.datetime(2014, 4, 18, 15, 37, 7, tzinfo=<UTC>)我们可以利用django.utils.timezone中提供的localtime方法来将该时间转换为本地时间:>>> dt datetime.datetime(2014, 4, 18, 15, 37, 7, tzinfo=<UTC>) >>> localtim...
MAR 19, 2014/Django
Django多数据库的简单应用
在使用Django时,我们很多时候都是与一个数据库打交道,特别是对于小工程来说。不过如果要在同一工程里同时使用多个数据库呢?那也挺简单的,只需几步即可达到该目标。首先,我们肯定需要在工程配置文件(默认为settings.py)中的DATABASES配置项定义我们要使用的所有数据库。DATABASES = {     'default': {         'NAME': 'app_da...
MAR 04, 2014/Django
为Django模型增加自定义的view权限
本文转载并翻译自《Adding a view permission to Django models》在Django中对于每一个请求都会利用Django权限模型来控制对指定对象类型的访问。这在Django看来已经再平常不过了,特别它已经在所有模型上提供了“增加”、“修改”和“删除”等默认权限。那如何添加我们的“view”权限呢?关于这个问题网上有不少答案,不过还是感觉没什么点睛之笔。经过一番摸索,我发现post_syncdb钩子最适合来完成这项任务。当使用syncdb命令时,所有的内容类型都会检测是否具有“view”权限并在没有的情况下创建。现在只要抓住这一要点并将相应的代码放在一个应用...
FEB 11, 2014/Django
django+uwsgi之session抽风记
新配好一个服务器,结果用着用着发现个奇怪的问题,只要一登录就很智能的把我踢出来了。这种问题很容易想到是出在session上,但为什么呢?既然代码不存在问题,在别的机子上也不存在问题,配置也没发生任何变化,那问题难道出在uwsgi上? 然后偶然在Stack Overflow上发现一篇提问《uWSGI processes lose Django sessions》和我遇到的问题差不多,并且在下方有回复提到尝试升级uwsgi到1.2.6以上版本。然后想想自己的情况,可能确实如此,我的uwsgi是通过apt-get安装的,这时常会碰到版本比较低的情况。 $ uwsgi ...
DEC 10, 2013/Django
InlineModelAdmin的魅力
如果经常使用Django Admin作为管理后台,那其中提供的InlineModelAdmin一定会经常凸显其魅力的。假如有这样的需求,我们接收来自用户的消息,并针对消息的内容做关键字匹配,然后再向用户返回特定的消息。那相关的模型可能如下:class Rule(models.Model):     ...     name = models.CharField(max_length=100)     msg = m...
NOV 25, 2013/后端开发与架构
Django微信公众平台开发:响应
最后一个基础模块就是对来自微信服务器的请求进行处理和响应。 一般来说,当普通微信用户向公众账号发消息时或产生关注/取消关注、点击自定义菜单等动作后,微信服务器会将消息的XML数据包以POST的形式发送到我们的服务器来。其中,XML数据包形式如下(以文本消息为例): <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName>  <C...
< 1 2 3 4 > >>