摘要:
前面的内容已经基本上涵盖了Django开发的主要方面,我们从需求和界面设计出发,创建模型和修改模型,并通过scaffold作为开发的起点;在scaffold的基础上重新定制模板,并且通过Model类和Form类对用户输入的数据进行校验。我们也涉及到了单元测试。为了提高开发用户界面的效率,更好地实现模板,我们还讨论了对静态资源(css,js,image等)的管理,并通过模板继承的方式实现了整个站点的统一布局。作为web应用必不可少的部分,我们还演示了如何使用会话(session)。最后,我们还在这些基础上增加了RESTful web service,将jquery集成到Django,并实现了aj 阅读全文
摘要:
继续上一节未完成的任务,现在让我们来通过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 阅读全文
摘要:
曾几何时,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)排名 阅读全文
摘要:
上一节我们实现了一个”能看不能用“的购物车,现在我们来使用这个购物车。首先是产品目录界面中的”加入购物车“链接,我们希望点击这个按钮后,在购物车中添加该产品(添加的规则是如果购物车中已经有该产品就增加... 阅读全文
摘要:
现在,我们有了一个产品目录界面,用户如果看到满意的产品,就可以将其放入购物车。下面就让我们来实现购物车的功能。首先要做一下简单的分析和设计。购物车应该显示一系列产品的清单,其中列出了买方选中的产品。... 阅读全文
摘要:
针对上一节的新需求,界面设计师还为我们设计了一个新的界面,不仅仅是目录页,还包含了站点的整体风格,如下图:感谢界面设计师为我们提供的“又黑又硬”的工具条,这个看起来真的很酷。下面,让我们来享用她的工作... 阅读全文
摘要:
我们已经实现了卖方的产品维护界面,根据最初的需求,还要为买方实现一个目录页:买方通过这个界面浏览产品并可以加入购物车。通过进一步需求调研,了解到产品有一个“上架时间”,在这个时间之后的产品才能被买方看... 阅读全文
摘要:
尽早进行单元测试(UnitTest)是比较好的做法,极端的情况甚至强调“测试先行”。现在我们已经有了第一个model类和Form类,是时候开始写测试代码了。Django支持python的单元测试(un... 阅读全文
摘要:
让我们完成上一节中的任务:1.验证price>0:需要在Form中验证; 2. 验证title唯一:在Model中验证; 3. 验证image_url的扩展名:在Form中验证,还可以顺便在Model... 阅读全文
摘要:
rails有一个”简洁、完美的验证机制,无比强大的表达式和验证框架“。在《Agile Web Development with Rails 4th》一书的7.1节向我们展示了如何验证Product:c... 阅读全文
摘要:
dudu,这个系列的第8——18篇搬家未成功,只好手工贴过来了!现在我们有了一个使用json格式的RESTful API,可以实现这样的功能了:为了避免在产品列表和购物车之间来回切换,需要在产品列表界面显示购物车,并且通过ajax的方式不刷新界面就更新购物车的显示内容。ajax框架的选择关于ajax框架的选择,看图不说话: 我不管你选的是什么,反正我是选了jquery。 在Django中使用jquery这个实在是简单得不能在简单了,在depot/static下面创建js文件夹,放入jquery库,如jquery-1.7.1.min.js。然后在模板界面中引入即可。我们假定所有的界面都使用jq. 阅读全文