WEB开发网
开发学院软件开发Python 使用 TurboGears 和 Python 开发 Web 站点 阅读

使用 TurboGears 和 Python 开发 Web 站点

 2007-03-30 12:27:33 来源:WEB开发网   
核心提示: 在 TurboGears 中,URL 非常清楚地映射到方法上,使用 TurboGears 和 Python 开发 Web 站点(9),它们都包含在 Root 控制器中,根 URL / 映射为一个名为 index 的特殊方法,它会从数据库中检索出一个产品,并将其传递给 product Kid

在 TurboGears 中,URL 非常清楚地映射到方法上,它们都包含在 Root 控制器中。根 URL / 映射为一个名为 index 的特殊方法。通过向 Root 添加一个名为 category 的方法,它就可以通过 URL /category 进行访问了。任何提交的 URL 如果无法匹配给定方法,就会产生一个 404 错误,除非定义了一个 default 方法。

下面是一些可能的 URL 情况及其结果:

/:显示没有父 id 的第一个分类

/category?categoryID=2:显示 id 值为 2 的分类。

/category/1:显示 id 值为 1 的分类(格式为 TG 0.9)

/category:抛出一个 500 错误,这是因为缺少分类 id。

/xyz:抛出一个 404 错误

图 2 给出了分类显示的页面:

图 2. 分类显示

产品显示

对于产品显示页面来说,我们要创建一个 product 控制器,它会从数据库中检索出一个产品,并将其传递给 product Kid 模板进行呈现。

清单 14. 增加产品控制器方法

@expose("tgcommerce.templates.product")
def product(self, productID):
  from model import Product
  product = Product.get(productID)
  return dict(product=product)

product.kid 模板有一个产品信息表。此处要注意用来显示价格(有两位小数)的 Python 字符串的格式:

清单 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>

上一页  4 5 6 7 8 9 10  下一页

Tags:使用 TurboGears Python

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接