python在电商中的应用_谷歌应用引擎(Python)中的电子商务产品类别

剩下的答案假设没有使用实体祖先。在

要将一个产品与一个类别(或多个类别,如果需要,可以使用repeated properties)关联,可以使用:class Product(ndb.Model):

name = ndb.StringProperty()

category = ndb.KeyProperty(kind='Category', repeated=True)

category = ndb.Key("Category", "Books")

new_product = Product(title="Coding Horrors Book",

category=[category]).put()

这种方法有一个可伸缩性问题:如果一个产品属于许多类别,那么更新类别列表会变得越来越慢(整个实体,逐渐增长,每次都需要重新编写),而且,如果属性被索引,它对exploding indexes problem敏感。在

这可以通过将产品类别关系存储为单独的实体来避免:

^{pr2}$

可伸缩性更好,但在本例中,您需要一个ProductCategory查询来确定产品的相关类别实体的键,然后进行键查找以获取这些类别的详细信息,大致如下:category_keys = ProductCategory.query(ProductCategory.product == product_key) \

.fetch(keys_only=True, limit=500)

if category_keys:

categories = ndb.get_multi(category_keys)

logging.info('product %s categories: %s' \

% (product.title, ','.join([c.name for c in categories])))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值