摘要: “科学”一词,指发现、积累并公认的普遍真理或普遍定理的运用,已系统化和公式化了的知识。经过四百年的发展,科学取得了辉煌的成就。今天,任何国家,任何民族,任何信仰的人,都无异议地在学校里接受科学教育,以致于我们认为科学能够解决一切问题,并且把“是否科学”作为检验事物正确的标准。 其实“科学”是人们认识事物的一种方法,即通过实证的方式,由实践对理论进行检验。科学的方法不受主观意志的影响,我们暂且称其为“心外求法”。这种实证的方法具有普遍性、可靠性和实践性。 在科学产生以前,人类的知识来自宗教。通常僧侣和祭司是学识最渊博的智者。那是人们获取智慧的方式是通过渐修、顿悟等方式,通过内心的感悟来得到真理. 阅读全文
posted @ 2012-02-21 15:21 心内求法 阅读(1929) 评论(5) 推荐(3) 编辑
摘要: 我终于明白,为什么CSDN关掉了metaweblog API,限制了对界面的定制,不能嵌入google analytics,甚至不允许以站外图片的方式嵌入一个计数器。我只能说,我不认同这种对商业价值的看重,对用户的态度,以及对竞争对手的评价。逃离CSDN,为了程序员心中的freedom!尽管,用windows的人比用linux的人多。 阅读全文
posted @ 2012-02-21 14:25 心内求法 阅读(29433) 评论(170) 推荐(53) 编辑
摘要: 前面的内容已经基本上涵盖了Django开发的主要方面,我们从需求和界面设计出发,创建模型和修改模型,并通过scaffold作为开发的起点;在scaffold的基础上重新定制模板,并且通过Model类和Form类对用户输入的数据进行校验。我们也涉及到了单元测试。为了提高开发用户界面的效率,更好地实现模板,我们还讨论了对静态资源(css,js,image等)的管理,并通过模板继承的方式实现了整个站点的统一布局。作为web应用必不可少的部分,我们还演示了如何使用会话(session)。最后,我们还在这些基础上增加了RESTful web service,将jquery集成到Django,并实现了aj 阅读全文
posted @ 2012-02-19 23:03 心内求法 阅读(6946) 评论(4) 推荐(0) 编辑
摘要: 继续上一节未完成的任务,现在让我们来通过ajax请求后台服务。当然首选要实现后台服务。关于“加入购物车”,我们需要的服务是这样定义的:[plain] view plaincopyurl:http://localhost:8000/depotapp/API/cart/items/post post数据:product=product_id 处理过程:根据product_id,将product加入购物车 返回:购物车中的所有条目 这个API的定义似乎不那么RESTful,但是暂且不去管它。实现这个服务需要为RESTful web service(depotapp/views.py中的RESTfor 阅读全文
posted @ 2012-02-19 23:02 心内求法 阅读(17119) 评论(7) 推荐(1) 编辑
摘要: 曾几何时,Ajax已经统治了Web开发中的客户端,而REST成为web世界中最流行的架构风格(architecture style)。所以我们的选择变得很简单:前端ajax访问后端的RESTful web service对资源进行操作。 Django中有一些可选的REST framework,比如django-piston,django-tasypie。 但是我和google(呵呵,不好意思)推荐这个:Django REST framework。因为这个框架的几个特点: 1. 名字好!直入主题 2. 因为名字好,所以google搜索(Django REST/ Django RESTful)排名 阅读全文
posted @ 2012-02-19 23:00 心内求法 阅读(38583) 评论(2) 推荐(1) 编辑
摘要: 上一节我们实现了一个”能看不能用“的购物车,现在我们来使用这个购物车。首先是产品目录界面中的”加入购物车“链接,我们希望点击这个按钮后,在购物车中添加该产品(添加的规则是如果购物车中已经有该产品就增加... 阅读全文
posted @ 2012-02-19 22:58 心内求法 阅读(6727) 评论(1) 推荐(1) 编辑
摘要: 现在,我们有了一个产品目录界面,用户如果看到满意的产品,就可以将其放入购物车。下面就让我们来实现购物车的功能。首先要做一下简单的分析和设计。购物车应该显示一系列产品的清单,其中列出了买方选中的产品。... 阅读全文
posted @ 2012-02-19 22:53 心内求法 阅读(10585) 评论(4) 推荐(0) 编辑
摘要: 针对上一节的新需求,界面设计师还为我们设计了一个新的界面,不仅仅是目录页,还包含了站点的整体风格,如下图:感谢界面设计师为我们提供的“又黑又硬”的工具条,这个看起来真的很酷。下面,让我们来享用她的工作... 阅读全文
posted @ 2012-02-19 22:48 心内求法 阅读(6640) 评论(2) 推荐(0) 编辑
摘要: 我们已经实现了卖方的产品维护界面,根据最初的需求,还要为买方实现一个目录页:买方通过这个界面浏览产品并可以加入购物车。通过进一步需求调研,了解到产品有一个“上架时间”,在这个时间之后的产品才能被买方看... 阅读全文
posted @ 2012-02-19 22:44 心内求法 阅读(9047) 评论(9) 推荐(0) 编辑
摘要: 尽早进行单元测试(UnitTest)是比较好的做法,极端的情况甚至强调“测试先行”。现在我们已经有了第一个model类和Form类,是时候开始写测试代码了。Django支持python的单元测试(un... 阅读全文
posted @ 2012-02-19 22:42 心内求法 阅读(10102) 评论(4) 推荐(0) 编辑
摘要: 让我们完成上一节中的任务:1.验证price>0:需要在Form中验证; 2. 验证title唯一:在Model中验证; 3. 验证image_url的扩展名:在Form中验证,还可以顺便在Model... 阅读全文
posted @ 2012-02-19 22:39 心内求法 阅读(3994) 评论(4) 推荐(0) 编辑
摘要: rails有一个”简洁、完美的验证机制,无比强大的表达式和验证框架“。在《Agile Web Development with Rails 4th》一书的7.1节向我们展示了如何验证Product:c... 阅读全文
posted @ 2012-02-19 22:33 心内求法 阅读(4132) 评论(0) 推荐(0) 编辑
摘要: dudu,这个系列的第8——18篇搬家未成功,只好手工贴过来了!现在我们有了一个使用json格式的RESTful API,可以实现这样的功能了:为了避免在产品列表和购物车之间来回切换,需要在产品列表界面显示购物车,并且通过ajax的方式不刷新界面就更新购物车的显示内容。ajax框架的选择关于ajax框架的选择,看图不说话: 我不管你选的是什么,反正我是选了jquery。 在Django中使用jquery这个实在是简单得不能在简单了,在depot/static下面创建js文件夹,放入jquery库,如jquery-1.7.1.min.js。然后在模板界面中引入即可。我们假定所有的界面都使用jq. 阅读全文
posted @ 2012-02-19 22:00 心内求法 阅读(19902) 评论(4) 推荐(3) 编辑
摘要: 从模型开始开发似乎是个好主意。一方面模型是整个应用的核心,实现了应用的业务数据和对业务数据进行操作的约束,而视图和模板只是向用户提供操作和展现这些数据的界面;另一方面模型相对于系统的其他部分更加稳定,将模型先确定下来有助于系统其他部分的实现。DDD(领域驱动设计)更进一步将模型中的核心对象抽取出来作为“领域模型”。从Depot应用来看,产品(Product) 应该是模型中的核心对象之一。就让我们先来实现Product模型。创建app我们可以从《Django第一步》中实现的工程开始。在继续之前,还要进行一些准备工作。 Django约定必须要创建app才能使用模型。这也是Django的哲学之一: 阅读全文
posted @ 2012-02-18 23:59 心内求法 阅读(12660) 评论(4) 推荐(2) 编辑
摘要: 前面学习了Emacs的基本编辑功能。为了让编辑更有效率,还需要了解: 窗口管理 缓冲区管理 搜索和替换 批量处理 阅读全文
posted @ 2012-02-18 21:48 心内求法 阅读(5490) 评论(0) 推荐(0) 编辑
摘要: 文件操作 光标定位 输入删除 复制粘贴 撤销重做 阅读全文
posted @ 2012-02-18 09:31 心内求法 阅读(7421) 评论(0) 推荐(0) 编辑
摘要: 在《Django实战》系列中,简单的提到了Django + jquery 实现ajax,但总感觉“意犹未尽”,很多事情都没有说清楚。所以打算专门讨论一下这个话题。ajax可以用在web应用的方方面面,所以用“什锦小菜”的方式,用几个单独的例子来说明常见的使用情况。如果你一定要问为什么是jquery而不是别的什么ajax框架,请参考这里。根据Django官方的说法,Django没有提供内置的ajax支持,而仅仅提供了将python对象序列化(seriallize)成JSON和XML的工具,并推荐了一个库和工具。但我更倾向于使用原生的jquery,自己集成到Django中,这并不难,而且一切对你来 阅读全文
posted @ 2012-02-18 00:28 心内求法 阅读(8574) 评论(0) 推荐(1) 编辑
摘要: GNU的软件大多有丰富的帮助系统,学习GNU的软件时,首先学习如何使用其帮助系统,往往事半功倍。Emacs的帮助文档很多,并大部分都在C-h开头的组合键中。首先是C-h ?,关于帮助系统的“帮助”。改命令会打开一个新的Frame,如下图:从该文档中摘录常用的帮助功能如下:快捷键命令说明C-h ?关于帮助系统的帮助,可以通过SPC和DEL键滚动,通过ESC退出C-h tM-x help-with-tutorial进入 《Emacs 快速指南》C-h rM-x info-emacs-manualEmacs使用手册C-h iM-x info《Emacs说明》C-h aM-x apropos-comm 阅读全文
posted @ 2012-02-16 13:07 心内求法 阅读(6526) 评论(0) 推荐(1) 编辑
摘要: 内容提要1.Emacs是什么2. Emacs能做什么3. Emacs的界面4.基本概念--命令5. 基本概念--快捷键6. 基本概念--模式Emacs学习笔记2: 初识Emacs1.Emacs是什么其实很难给Emacs下一个定义。正统的说法也许是"Emacs即Editor MACroS(宏编辑器),是一种文本编辑器"。最初人们认为Emacs是一个编辑器(Editor),与Vim一起并称为两大神器,据说Vim是编辑器之神而Emacs是神之编辑器,又据说世界上的程序员分三种,一种使用Emacs,一种使用vim,剩余的是其它。也有人认为Emacs是一个架构在编辑器上的集成环境,除 阅读全文
posted @ 2012-02-15 22:49 心内求法 阅读(13147) 评论(3) 推荐(6) 编辑
摘要: 已经用了5年的vim,最近突然想试试Emacs。不要问我为什么,我自己也不是很清楚:),也许只是一时心血来潮,也许是对vim实在没有感觉,也许... 但不管怎么说,要想学习好一样东西,一定要有一个计划,并能够有效执行。参考了网上的众多资源,结合自己的实际情况,拟定了一个《Emacs初学者学习计划》 在开始学习之前,首先要确定一个原则就是: 随时用,尽量用。就好像当年学linux,彻底卸载了windows,斩断了退路,才能去解决遇到的一个个问题。学习Emacs应该也是一样,而且Emacs能做的事情很多,写文档,写代码,日程安排,收发邮件,浏览网页...在这些场景下都坚持使用,想必能收到很好的效. 阅读全文
posted @ 2012-02-15 13:14 心内求法 阅读(10012) 评论(1) 推荐(5) 编辑