- 博客(106)
- 资源 (20)
- 收藏
- 关注

原创 心内求法与心外求法
“科学”一词,指发现、积累并公认的普遍真理或普遍定理的运用,已系统化和公式化了的知识。经过四百年的发展,科学取得了辉煌的成就。今天,任何国家,任何民族,任何信仰的人,都无异议地在学校里接受科学教育,以致于我们认为科学能够解决一切问题,并且把“是否科学”作为检验事物正确的标准。 其实“科学”是人们认识事物的一种方法,即通过实证的方式,由实践对理论进行检验。科学的方法不受主
2007-06-25 13:27:00
2603
原创 Emacs学习笔记(5):更有效率的编辑
前面学习了Emacs的基本编辑功能。为了让编辑更有效率,还需要了解:窗口管理缓冲区管理搜索和替换批量处理窗口管理C-x 2 split-window-vertically 水平分割C-x 3 split-window-horizontally 竖直分割C-x 1 delete-o
2012-02-18 21:46:02
1366
原创 Emacs学习笔记(4):基本的编辑功能
掌握了Emacs的帮助系统,就可以自己随时学习了。但是还是应该有一个主线。尽管Emacs能做的事情很多,但首先Emacs是一个编辑器。所以还是应该从文本编辑的功能开始。完成本节的内容后,可以应付日常的大部分编辑工作。内容提要 文件操作 光标定位 输入删除 复制粘贴 撤销重做1.文件操作文件操作的快捷键都集中在C-x"菜单"中:
2012-02-18 09:31:30
1550
原创 Django+jquery 什锦(1):集成Django和jquery
在《Django实战》系列中,简单的提到了Django + jquery 实现ajax,但总感觉“意犹未尽”,很多事情都没有说清楚。所以打算专门讨论一下这个话题。ajax可以用在web应用的方方面面,所以用“什锦小菜”的方式,用几个单独的例子来说明常见的使用情况。如果你一定要问为什么是jquery而不是别的什么ajax框架,请参考这里。根据Django官方的说法,Django没有提供内置的aj
2012-02-18 00:28:46
10359
1
原创 Emacs学习笔记(3):帮助系统
GNU的软件大多有丰富的帮助系统,学习GNU的软件时,首先学习如何使用其帮助系统,往往事半功倍。Emacs的帮助文档很多,并大部分都在C-h开头的组合键中。首先是C-h ?,关于帮助系统的“帮助”。改命令会打开一个新的Frame,如下图:从该文档中摘录常用的帮助功能如下:快捷键命令说明C-h ? 关于帮助系统的帮助,可以通过SPC和D
2012-02-16 13:07:27
2248
原创 Emacs学习笔记(2): 初识Emacs
内容提要1.Emacs是什么2. Emacs能做什么3. Emacs的界面4.基本概念--命令5. 基本概念--快捷键6. 基本概念--模式Emacs学习笔记2: 初识Emacs1.Emacs是什么其实很难给Emacs下一个定义。正统的说法也许是"Emacs即Editor MACroS(宏编辑器),是一种文本编辑器"。 最初人们认为Emacs是一个编
2012-02-15 22:49:20
2257
1
原创 Emacs学习笔记(1):初学者的学习计划
已经用了5年的vim,最近突然想试试Emacs。不要问我为什么,我自己也不是很清楚:),也许只是一时心血来潮,也许是对vim实在没有感觉,也许... 但不管怎么说,要想学习好一样东西,一定要有一个计划,并能够有效执行。参考了网上的众多资源,结合自己的实际情况,拟定了一个《Emacs初学者学习计划》在开始学习之前,首先要确定一个原则就是: 随时用,尽量用。就好像当年学linux,彻底卸载了w
2012-02-15 13:14:36
1850
1
原创 深入Django(2):自定义ORM
Django的Model使用ORM来操作数据库,通常我们只需关注Model类本身,Django自己会处理到数据库的映射。但凡事总有例外,有时需要改变默认的映射行为。Django对此也提供了丰富的支持。1. 自定义字段名默认的字段名与属性名相同,可以通过字段的db_column属性自定义,如 where = models.CharField(max_length=400
2012-02-14 01:00:01
4343
2
原创 Django技巧:改变Admin中显示的应用(app)名称
Django的Admin提供了强大的功能,很多人可能会基于Admin开发自己的应用。在Admin默认的管理界面中,Model类的显示名称可以通过国际化的方法来改变,其实app的名称也可以自己指定,你甚至可将同一个应用下的Model类分配到不同的app中去分组,如下图:以《Django实战》中的Model类为例,可以这样指定Order类显示的应用名称:class Order(mode
2012-02-13 18:18:29
6438
3
转载 Python之禅
The Zen of Python, by Tim Peters Beautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.
2012-02-12 17:56:18
1429
转载 无根的根:无名师的 Unix 心传
《Rootless Root:The Unix Koans of Master Foo》, 《Unix编程艺术》一书的附录D,原作者不详导言《无根的根》这部心传的收录集在西山纯净的空气中得以保存数十年,它的发现在学术圈中掀起轩然大波。这些出土文稿是否为早期 Unix 教义的新发现?抑或仅是后世高明的赝品?那些半神秘的人物,像尊者 Thompson、Ritchie 和 Mcllr
2012-02-12 17:45:10
3916
原创 深入Django(1): 通用视图 (generic views)
如果对Django的基础部分尚不熟悉,请参考《Django实战》系列。欢迎访问Django专栏:http://blog.youkuaiyun.com/column/details/django.html内容提要1. 回顾Django的视图函数(view function)2. 在视图函数中使用模板3. 简化视图函数的两个工具4. 使用通用视图函数5. Django提供的通用
2012-02-12 00:57:05
6127
2
原创 Django实战(24):总结
这个实战系列暂时就告一段落了,时间和能力的关系,有些地方写的不够清楚明白,代码也没有整理出来。未尽事宜将在以后逐步补全。希望通过这个系列,你能够掌握使用Django开发一个web应用的基本过程。现在简单整理一下《Django实战系列》的内容:0. 如果你以前没有接触过Django,你可能需要这些准备知识: URLconf+MTV:Django眼中的MVC Dja
2012-02-10 16:58:38
10244
10
原创 Django实战(23):权限控制
我们已经实现了登录和注销功能,但是它还没有起作用。因为匿名用户还是可以通过直接输入url:http://localhost:8000/depotapp/product/list/ 访问到产品管理界面。这就好像你在门上加了把锁,却没有把窗户关上一样。所以我们还需要进行访问控制。我们这里实现最简单的控制,非登录用户禁止访问产品管理界面。在Django里面,只需要在相应的视图函数前面增加@login
2012-02-10 15:50:24
6018
3
原创 Django实战(22):处理登录和注销
广告时段:转载请保留源地址:http://blog.youkuaiyun.com/thinkinside/article/details/7247171,并欢迎访问我的Django专栏:http://blog.youkuaiyun.com/column/details/django.html前一节我们实现了用户管理,本节对用户登录和登出进行处理。由于我们已经引入了django.contrib.auth应用,用户的登录
2012-02-10 10:29:42
9887
1
原创 GTD精要
前年写的,居然一直躺在草稿箱里。今天把它放出来。。。GTD(Getting Things Done) 是一种将繁重超负荷的工作生活方式变成无压力高效的时间管理系统(David Allen, 《Getting Things Done-The Art of Stress-Free Productivity》。其核心是把所有要做的事情都记录下来,然后整理组织,并逐一执行。也就是收集、整理、组
2012-02-09 23:53:31
2268
原创 Django实战(21):使用内置的Amin管理用户
到目前为止,我们开发的所有功能都是匿名访问的,这显然不够安全。通常我们会要求注册的用户通过用户名和密码登录,只有登录后的用户才可以管理产品。套用专业的说法就是:第一步是认证,验证用户是否是他所宣称的那个人;第二步是授权,验证用户是否拥有执行某种操作的权限。Django已经提供了一个django.contrib.auth应用来处理登录、登出和权限验证,同时还提供了django.contrib.a
2012-02-09 23:44:05
5623
原创 Django实战(20):分页(Pagination)
在上一节我们实现了针对某个产品的订单订阅功能。但是我们可能需要直接在站点上查询所有的订单。显然,随着时间的增长订单会越来越多,所以分页(Pagination)是个好办法:每次只显示一部分订单。分页是Web应用常用的手法,Django提供了一个分页器类Paginator(django.core.paginator.Paginator),可以很容易的实现分页的功能。该类有两个构造参数,一个是数据的
2012-02-09 20:33:58
4300
2
原创 企业架构框架之EAP(Enterprise Architect Planning)
在Zachman Framework之后,很多组织开始了对企业架构的研究。其中 Steven H. Spewak在1998年定义了企业架构计划(Enterprise Architect Planning,EAP)。Spewak将EAP定义为”制定信息架构以支持业务这一过程和实现该过程的计划“。从企业架构的概念来看,EAP更偏重于企业架构的动态部分,包括过程、计划、阶段的划分等。EAP将企业架构
2012-02-09 17:17:18
2520
原创 Django实战(19):自定义many-to-many关系,实现Atom订阅
记得有人跟我说过,rails的has_many :through是一个”亮点“,在Django看来,该功能简直不值一提。rails中的many-to-many关联中,还需要你手工创建关联表(写migration的方式),而has_many :through的”语法“只不过是为了自定义关联关系:通过一个中间的、到两端都是many-to-one的模型类实现多对多关联。在Django中,many-t
2012-02-09 15:30:45
3338
1
原创 企业架构框架(Enterprise Architect Framework)之 Zachman 重出江湖
Zachman Framework 可谓是企业架构框架的鼻祖。早在1987年,IBM的Zachman就指出了信息系统架构的重要性,并提出了著名的企业架构的框架——Zachman framework。现在已经78岁(生于1934年)的Zachman老先生仍在担任Zachman International的CEO,并于2011年8月23日在加州的萨克拉门托发布了Zachman Framework最新的
2012-02-08 15:06:53
3963
原创 Django实战(18):提交订单
原文地址:http://blog.youkuaiyun.com/thinkinside/article/details/7240914,转载请保留。另外欢迎访问Django专栏。前面的内容已经基本上涵盖了Django开发的主要方面,我们从需求和界面设计出发,创建模型和修改模型,并通过scaffold作为开发的起点;在scaffold的基础上重新定制模板,并且通过Model类和Form类对用户输入的数据
2012-02-08 11:51:47
5160
3
原创 Django实战(17):ajax !
继续上一节未完成的任务,现在让我们来通过ajax请求后台服务。当然首选要实现后台服务。关于“加入购物车”,我们需要的服务是这样定义的:url: http://localhost:8000/depotapp/API/cart/items/postpost数据: product = product_id处理过程: 根据product_id,将product加入购物车返回:购物车中的
2012-02-07 15:02:17
5970
1
原创 Django实战(16):Django+jquery
已经开通了Django专栏,本系列的文章会持续加入。现在我们有了一个使用json格式的RESTful API,可以实现这样的功能了:为了避免在产品列表和购物车之间来回切换,需要在产品列表界面显示购物车,并且通过ajax的方式不刷新界面就更新购物车的显示内容。ajax框架的选择关于ajax框架的选择,看图不说话:我不管你选的是什么,反正我是选了jquery。
2012-02-07 00:50:42
9557
1
原创 企业架构(Enterprise Architect,EA)是什么
《论语·子路》曰:”名不正则言不顺,言不顺则事不成。“尽管企业架构(Enterprise Architect,EA)一词起源于西方,但是英语的表达并不是那么准确。比如我们习惯的”What's xxx",其实有两种不同的译法,一种是“xxx是什么“,体现了对内涵的定义;另一种是”什么是xxx", 体现了对外延的描述。正如《墨子·经说》中所云:“所以谓,名也。所谓,实也。”从1987年的Zac
2012-02-06 21:47:57
4663
原创 Django实战(15):Django实现RESTful web service
原文地址:http://blog.youkuaiyun.com/thinkinside/article/details/7236807,欢迎转载,请保留链接!曾几何时,Ajax已经统治了Web开发中的客户端,而REST成为web世界中最流行的架构风格(architecture style)。所以我们的选择变得很简单:前端ajax访问后端的RESTful web service对资源进行操作。Djang
2012-02-06 14:48:19
17216
6
原创 Django实战(14):让页面联动起来
原文地址:http://blog.youkuaiyun.com/thinkinside/article/details/7235082,欢迎转载,请保留链接!上一节我们实现了一个”能看不能用“的购物车,现在我们来使用这个购物车。首先是产品目录界面中的”加入购物车“链接,我们希望点击这个按钮后,在购物车中添加该产品(添加的规则是如果购物车中已经有该产品就增加数量,如果没有就增加条目),然后显示购物车
2012-02-05 21:50:40
5748
2
原创 Django实战(13):在session中保存购物车
现在,我们有了一个产品目录界面,用户如果看到满意的产品,就可以将其放入购物车。下面就让我们来实现购物车的功能。首先要做一下简单的分析和设计。购物车应该显示一系列产品的清单,其中列出了买方选中的产品。但是这个清单没有必要马上保存到数据库,因为直到付款之前,用户随时都有可能改变主意。我们只需要在用户的session中记录这些产品就可以了。购物车中的条目购物车中的条目与产品(Prod
2012-02-05 16:43:45
10759
4
原创 Django实战(12):增加目录页,设定统一布局
针对上一节的新需求,界面设计师还为我们设计了一个新的界面,不仅仅是目录页,还包含了站点的整体风格,如下图:感谢界面设计师为我们提供的“又黑又硬”的工具条,这个看起来真的很酷。下面,让我们来享用她的工作成果吧。我们前面的scaffold已经生成了有继承关系模板,显然对于一些公用的内容应该放到base.html之中。但是我们先把这件事情放到一边,先来实现目录页。首选为目录页
2012-02-03 17:19:12
6099
2
原创 Django实战(11):修改Model类
我们已经实现了卖方的产品维护界面,根据最初的需求,还要为买方实现一个目录页:买方通过这个界面浏览产品并可以加入购物车。通过进一步需求调研,了解到产品有一个“上架时间”,在这个时间之后的产品才能被买方看到。并且买方应该先看到最新的产品。我们注意到,这个“新需求”需要对Product进行调整,增加一个日期属性date_available来保存“上架时间”。如同开发新功能一样,在修改的时候也应该
2012-02-03 13:10:50
7174
5
原创 Django实战(10):单元测试
尽早进行单元测试(UnitTest)是比较好的做法,极端的情况甚至强调“测试先行”。现在我们已经有了第一个model类和Form类,是时候开始写测试代码了。 Django支持python的单元测试(unit test)和文本测试(doc test),我们这里主要讨论单元测试的方式。这里不对单元测试的理论做过多的阐述,假设你已经熟悉了下列概念:test suite, test cas
2012-02-02 14:06:00
6432
2
原创 Django实战(9):实现Product的输入校验
让我们完成上一节中的任务:1.验证price>0:需要在Form中验证;2. 验证title唯一:在Model中验证;3. 验证image_url的扩展名:在Form中验证,还可以顺便在Model中将其改为URLField类型。之前生成的scaffold中已经实现了属性不能为空的验证:但是对于url格式,rul的后缀,title的唯一性都没有验证。首先在model中增加UR
2012-02-01 15:42:18
5755
4
原创 Django实战(8):对比RoR与Django的输入校验机制
rails有一个”简洁、完美的验证机制,无比强大的表达式和验证框架“。在《Agile Web Development with Rails 4th》一书的7.1节向我们展示了如何验证Product:class Product < ActiveRecord::Base validates :title, :description, :image_url, :presence => t
2012-02-01 00:40:35
5152
2
原创 Django实战(7):改造ProductList界面
有了上一节关于Django模板的基础,改造界面就很容易理解了。将界面设计师设计的页面中的内容根据复用程度分别放到基础模板base.html和专用模板productlist.html中。depot/templates/base.html {% block title %} 标题 {% endblock %} {%
2012-01-31 19:02:48
6616
3
原创 Django实战(6):对比RoR和Django的模板系统
scaffold的生成物虽然用处不大,但是给我们带来一些最佳实践。其中就有模板的继承和分区。如果你深入使用过rails的模板体系,那么恭喜你:你有超强的忍耐力!而且更重要的是,你只需要3分钟就可以理解Django的模板体系。让我们先回顾一下rails的模板系统:1. 你创建了一个xxxview,展现出一些数据。2. 你意识到,各个view都有一些共同的内容。因为rails也强调DR
2012-01-31 18:07:22
7136
3
原创 Ruby on Rails(RoR) 和 Django深度对比
1 框架得设计哲学2 url 生成和映射3 模板系统4 ormapping5 form handling6 其他功能7 用这个框架所能够获得得好处8 用这个框架所能获得得坏处9 框架的未来这几点包括了所有的web框架所要关心的部分
2012-01-31 18:03:45
500
翻译 Python编码风格指南
原文地址:http://www.python.org/dev/peps/pep-0008/看了这篇指南,才发现自己的编码风格中的一些“恶习”。这篇指南在网上有一些中文翻译,其中Elias的翻译不错,可惜是针对2009年的一个早期版本(目前的版本是2011年6月);而悟空a飞的翻译有点惨不忍睹。尽管本人才疏学浅,还是愿意重新翻译此文,与大家共勉。全文目录如下:
2012-01-31 13:16:57
141
原创 Django实战(5):引入bootstrap,设置静态资源
之前生成了Product类的scaffold,但是如同rails的开发者David所讲的那样,scaffold几乎没什么用。所以按照《Agile Web Development with Rails 4th》中的迭代计划,下一步的修改是美化list页面:但是这个界面还是太丑陋了。其实,有了bootstrap后,很多站点都变成了“又黑又硬”的工具条+“小清新”风格。我们即不能免俗,又懒得
2012-01-31 11:58:21
14131
2
原创 Django实战(4):scaffold生成物分析
在上一节用一个插件生成了类似rails的scaffold,其实无非就是URLconf+MTV。让我们看看具体都生成了哪些东西。首先是“入口”的定义即URLconf,打开urls.py:from django.conf.urls.defaults import patterns, include, urlfrom depot.views import hellourlpatterns
2012-01-30 23:25:41
6583
2
《学习GNU Emacs》(英文版)
2012-02-15
Shell Coding
2012-01-30
GTD-尽管去做_无压工作的艺术
2010-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人