网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > linux > Linux编程 > Python编程 > 使用TurboGears和Python开发Web 站点  

使用TurboGears和Python开发Web 站点

2006-09-22  作者:bitsCN整理  来源:ChinaITLab收集整理  点评 投稿 收藏


清单 15. 分类页 kid 模板文件(product.kid) 网管u家u.bitsCN.com


<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>
       网管网www.bitscn.com 
网管联盟bitsCN_com


网管有家www.bitscn.net

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

网管u家bitscn.net


图 3. 产品显示页面
产品显示页面 
网管有家bitscn.net

错误处理

中国网管论坛bbs.bitsCN.com

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


清单 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)
       中国网管论坛bbs.bitsCN.com 

网管联盟bitsCN@com

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


清单 17. 重定向的例子

from turbogears import redirect
try:
    object = ClassName.get(objectID)
except SQLObjectNotFound:
    raise redirect("/path_to_redirect")
       
网管有家bitscn.net

网管u家www.bitscn.net

  网管联盟bitsCN@com

网管u家www.bitscn.net

TAGs   开发   使用       <   一个   TurboGears   我们   可以   方法      
 上一篇:Python编程技巧-使用状态机   下一篇:Python anygui 项目预览
使用TurboGears和Python开发Web 站点 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: