频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

使用TurboGears和Python开发Web 站点

来源: 作者: 出处:巧巧读书 2006-09-23 进入讨论组
上一页 1 2 3 4 5 6 7 8 9 下一页 


清单 15. 分类页 kid 模板文件(product.kid)


<table id="product-info">
  <tr>
    <td class="fld">Name:</td>
    <td class="val"><span py:replace="product.name" /></td>
  </tr>
  <tr>
    <td class="fld">SKU:</td>
    <td class="val"><span py:replace="product.sku" /></td>
  </tr>
  <tr>
    <td class="fld">Price:</td>
    <td class="val">$<span py:replace="'%.2f' % product.price" /></td>
  </tr>
</table>
      


图 3 给出了产品显示页面:


图 3. 产品显示页面
使用TurboGears和Python开发Web 站点(图三) 

错误处理

     控制器方法尚未考虑的一件事是 SQLObject 的 get 方法所抛出的 SQLObjectNotFound 异常。清单 16 给出了捕获这个异常并将其作为 NotFound 异常重新抛出的方法,这会发送一个基本的 HTTP 404 错误:


清单 16. 向 Controller 类添加的错误处理

from model import Category, Product
from sqlobject import SQLObjectNotFound
from cherrypy import NotFound
from turbogears import controllers, expose, url
class Root(controllers.Root):
    @expose("tgcommerce.templates.category")
    def category(self, categoryID):
 try:
     category = Category.get(categoryID)
 except SQLObjectNotFound:
     raise NotFound()
 return dict(category=category)
    @expose("tgcommerce.templates.product")
    def product(self, productID):
 try:
     product = Product.get(productID)
 except SQLObjectNotFound:
     raise NotFound()
 return dict(product=product)
      

     处理找不到对象的错误的另外一个策略不是发送 404 错误,而是对其进行重定向。这是使用 turbogears.redirect(...) 方法实现的:


清单 17. 重定向的例子

from turbogears import redirect
try:
    object = ClassName.get(objectID)
except SQLObjectNotFound:
    raise redirect("/path_to_redirect")
      

 

文章地址: http://www.qqread.com/other-devtool/u210714.html 更多文章 更多内容请看Python实用指南Wlan组网----家庭专题Python相关文章专题,或进入讨论组讨论。
上一页 1 2 3 4 5 6 7 8 9 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章