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

使用 TurboGears 和 Python 开发 Web 站点

 2007-03-30 12:27:33 来源:WEB开发网   
核心提示: 接下来是模型类,每个类表示数据库中的一个表,使用 TurboGears 和 Python 开发 Web 站点(4),它是使用一个映射为数据库列的类级属性定义的,这些属性是 SQLObject 列类型的实例,这种操作也会发生,有关 SQLObject 的更多文档,包括基本数据类型,例如 St

接下来是模型类。每个类表示数据库中的一个表,它是使用一个映射为数据库列的类级属性定义的。这些属性是 SQLObject 列类型的实例,包括基本数据类型,例如 StringCol 和 CurrencyCol;以及关系类型,例如 ForeignKey 和 MultipleJoin。

对于这个购物车来说,有一个层次 Category 类和一个简单的 Product 类。目录层次是由父 ForeignKey 和子类 MultipleJoin 定义的。

清单 6. Category 和 Product 类(model.py,续)

class Category(SQLObject):
  name = StringCol(length=64)
  parent = ForeignKey('Category', default=None)
  subcategories = MultipleJoin('Category', joinColumn='parent_id')
  products = MultipleJoin('Product')
class Product(SQLObject):
  name = StringCol(length=64)
  sku = StringCol(length=64)
  price = CurrencyCol(notNone=True, default=0.0)
  category = ForeignKey('Category')

要验证这个模型,请使用 tg-admin sql sql 命令显示创建所需要的表使用的 SQL 代码。注意 SQLObject 会为每个表都创建一个 id 列。即使没有定义主键,这种操作也会发生。有关 SQLObject 的更多文档,请参见 参考资料 给出的链接。

清单 7. 使用 “tg-admin sql sql” 命令查看数据库模式

~/dev/TG-Commerce$ tg-admin sql sql
Using database URI sqlite:///home/ubuntu/dev/TG-Commerce/tgcommerce.db
CREATE TABLE category (
  id INTEGER PRIMARY KEY,
  name VARCHAR(64),
  parent_id INT
);
CREATE TABLE product (
  id INTEGER PRIMARY KEY,
  name VARCHAR(64),
  sku VARCHAR(64),
  price DECIMAL(10, 2) NOT NULL,
  category_id INT
);

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 TurboGears Python

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