BLOG
Enjoy when you can, and endure when you must.
pptpd 架设 VPN 遇到的问题(续)
原来架设过VPN且没有遇到任何问题,不过这次运气就没那么好了,折腾了老半天才解决。 我遇到的问题是拨号出现619,pptpd日志输出以下内容: Mar 10 22:37:28 Cloud1050 pppd[8193]: Connect: ppp0 <--> /dev/pts/1 Mar 10 22:37:58 Cloud1050 pppd[8193]: LCP: timeout sending Config-Requests Mar 10 22:37:58 Cloud1050 pppd[8193]: Connection terminated. ...
MAR 09, 2013/Django
Django Form 验证过程
最近在Django的Form上使用很频繁,于是花了些时间对其更深入的了解了下,以下和大家分享一下Form表单的验证过程。Django的表单验证过程分为很多步:1. 各Field数据类型验证与转换:表单验证的第一步则是从widget中获取原始数据,并根据Field所接受的数据类型进行转换,如果在此过程中发生错误,会抛出ValidationError异常。2. 各Field的内置clean()方法验证:这一步会根据先前的验证结果返回数据,如果验证通过则返回clean data,如果失败则抛出异常。3. clean_<fieldname>()方法:这一步是用户自定义的验证步骤,用以...
MAR 08, 2013/Django
深入Django ORM的继承关系
本文为转载内容,查看来源。ORM中通常将对象引用映射到外键,但是对于继承,关系数据库中没有自然有效的方法来对应。从数据存储的角度来看,在映射继承关系时,可以采用几种方式(参考JPA中的InheritanceType.定义):1. 使用单个表,在JPA中称作SINGLE_TABLE。整个继承树共用一张表。使用唯一的表,包含所有基类和子类的字段;2. 每个具体类一张表,在JPA中称作TABLE_PER_CLASS。这种方式下,每张表都包含具体类和继承树上所有父类的字段。因为多个表中有重复字段,从整个继承树上来说,字段是冗余的;3. 每个类一张表,继承关系通过表的JOIN操作来表示。在JPA中...
MAR 07, 2013/数据库
MySQL: charset和collation的设置
本文为转载内容,查看原帖。 charset和collation有多个级别的设置:服务器级、数据库级、表级、列级和连接级。 1.服务器级: 查看设置:show global variables like 'character_set_server'; 和 show global variables like 'collation_server'; 修改设置:在OPTION FILE (/etc/mysql/my.cnf)里设置: [mysqld] character_set_server=utf8 collatio...
MAR 07, 2013/数据库
MySQL编码设置
查看系统的字符集设置:   mysql> SHOW VARIABLES LIKE 'character_set_%'; +--------------------------+----------------------------+ | Variable_name            | Value                      | +---...
MAR 05, 2013/Django
Django Model中基于时间的筛选(续)
在昨天的写《Django Model中基于时间的筛选》一文中,我写到可以使用published_date__range来提取某个时间段内的所有数据,那就想到这样一个需求:如果要筛选出某月内的所有数据应该怎么做呢?如果采用写死的方式,如:start_date = datetime.date(2012, 12, 1)end_date = datetime.date(2012, 12, 31)blog.objects.filter(published_date__range=(start_date, end_date))这样的局限在于如果月中的天数是不定的,我们必须基于给定的月份找到其头和尾。...
MAR 04, 2013/Django
Django Model中基于时间的筛选
在Django的Model中,可以基于时间对数据进行筛选,并且可以有很多的筛选方法供选择使用。1.published_date__gt:筛选出大于某个时间的所有数据。time_point = datetime.datetime.now() - datetime.timedelta(days=-1)result = blog.objects.filter(published_date__gt=time_point)2.published_date__gte:筛选出大于等于某个时间的所有数据。  time_point = datetime.datetime.now() - date...
配置Postfix SMTP的SASL认证
这里我利用dovecot提供的SASL来完成postfix中SMTP的认证。1.配置dovecot:打开dovecot的配置文件(/etc/dovecot.conf),修改内容如下:auth default {     mechanisms = plain login     passdb pam {     }     userdb pass...
解决Nginx+uwsgi+Django线程发送邮件的问题
最近一直在完善我的新版网站,在这一版中我加入了用户注册的功能,系统会生成用户帐户并向用户的注册邮箱发送一封激活邮件。在开发服务器上,我花了很多时间来完善这个功能,但转入生产服务器时却遇到了一个怪问题 —— 邮件不能成功发送,甚至日志里也并未记录任何错误。通过各方面的搜索,终于发现该问题是因为uwsgi的参数设置不当造成的,应在uwsgi启动参数中加入:--enable-threads该参数允许用内嵌的语言启动线程(即允许在app程序中产生子线程)。至此,问题解决!
FEB 06, 2013/心得与分享
DannySite v2.0 正式启用!
欢迎各位访问我的个人网站 —— DannySite!经过努力,DannySite的第二个版本正式启用。第一个版本作为对Django的学习和练习,有很多考虑不周全或冗余的代码。因此在新版本中,我不仅重新设计了UI,后端的代码也基本重写了,并增加了一些功能,以下还是简单的做一个记录:1.改进项目结构,优化代码;2.全新的UI设计,优化HTML、CSS、JS相关代码;3.增加多用户支持,支持注册、密码重置、密码修改等帐户管理功能;4.增加“关于本站”,并支持用户意见反馈;5.增加邮件支持,以满足帐户激活、密码重置、邮件通知等功能的需要;6.关联站点的一些服务,更方便的查询和管理;7.增加友情链...