- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我当前正在存储给定产品的上传图像,如下所示:
class Product(db.Model):
images= db.ListProperty(db.Blob)
# More properties ...
我用以下方法检索它们:
class ImageHandler(webapp2.RequestHandler):
def get(self):
productKey = cgi.escape(self.request.get('id'))
if productKey:
try:
product = Product.get(db.Key(productKey))
if product and product.images:
idx = 0 # if not img is passed, return the first one
imageIndex = cgi.escape(self.request.get('img'))
if imageIndex:
imageIndex = int(imageIndex)
if imageIndex > 0 and imageIndex < len(product.images):
idx = imageIndex
self.response.headers['Content-Type'] = 'image/jpeg'
self.response.out.write(str(product.images[idx]))
return
self.redirect('/img/image-missing.jpg')
return
except:
self.redirect('/img/image-404.jpg')
return
self.redirect('/img/image-404.jpg')
通过调用/image?id={{productkey}}&img={{imageindex}}
。
现在考虑:
我应该保持这样,还是应该有一个单独的图像模型,它只包含一个db.BlobProperty
,并且有一个db.ListProperty(db.Key)
而不是在产品型号中?
我不确定将图像保留为产品内部的 blob 是否会在我 get() 产品时自动获取它们(这会很糟糕),或者是否会减少数据存储访问,因为我不必获取另一个产品图像实体。
最后,任何改进此 python 代码(大量重定向、返回和条件)的建议也将受到赞赏。谢谢。
最佳答案
如果您认为每个数据存储实体的大小都绑定(bind)为 1MB,那么将 Blob 列表存储到一个实体中很容易成为一个问题。最好将每个图像存储在单独的模型中,并保留产品模型的 key 列表。
关于python - 我应该将产品图像存储为 db.ListProperty(db.Blob) 还是 db.ListProperty(db.Key)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13432973/
我当前正在存储给定产品的上传图像,如下所示: class Product(db.Model): images= db.ListProperty(db.Blob) # More prop
我的目标是:实现两个“相同”列表,在尽可能短的时间内从两个列表中删除不重合的对象。 我所取得的成就:两个相同的列表,删除了不重合的内容,但花费的时间太长。 我的问题是: 我有两个大列表(每个列表有 8
我在一个实体中拥有 ListProperty,该实体包含两个时间对象,这两个时间对象代表企业一周中某一天的营业时间和营业时间: mon_hours = db.ListProperty(datetime
我目前在 Google App Engine 中使用 Django 表单,我有一个模型如下: class Menu(db.Model): name = db.StringProperty(re
如何使用 Google App Engine 分配 ListProperty? name = self.request.get("name") description = self.r
我定义了一个包含列表的类。我正在尝试使用传输列表初始化构造函数中的列表: public class Person { public IntegerProperty id; public
JavaFX 中是否有一个 CHANGEABLE ListProperty?我需要一个 ListProperty 支持 add() 和 remove() 方法,但我找不到。SimpleListProp
在 Google App Engine 解决方案 (Python) 中,我使用 db.ListProperty 来描述多对多关系,如下所示: class Department(db.Model):
如何按 ListProperty* 对查询进行排序? 模型: class Chapter(ndb.Model): title = ndb.StringProperty(required=Tru
我有一个ListProperty(str): class Item(db.Model): tags = db.ListProperty(str) 有时我需要编辑已经写入数据存储的标签,所以我创
ListProperty 中可以存储多少项?有限制吗? 最佳答案 实体的大小限制为 1MB(当编码为 Protocol Buffer 时),因此这对列表的大小提供了实际限制。此外,如果列表已编入索引,
我正在开发一个简单的博客/书签平台,我正在尝试添加一个tags-explorer/drill-down 功能 là delicious允许用户过滤指定特定标签列表的帖子。 是这样的: 帖子在数据存储中
我想我疯了,为什么下面的方法不起作用? class Parent(db.Model): childrenKeys = db.ListProperty(str,indexed=False,def
好的,我在本地和 gae 云中都有相同的 python 代码。 当我在本地存储实体时,设置元素类型 datetime.datetime 的 ListProperty 字段在数据存储查看器中看起来像这样
我有这段代码可以找到属性分支为空的所有节点。 nobranches=TreeNode.all() for tree in nobranches: if tree.branches==[]: 我想找到
我注意到 ListView 中的 itemsProperty类型为 ObjectProperty> ,但我会期待 ListProperty . 现在我想知道:我应该什么时候使用 ObjectPrope
在 tornadoFX 中是否可以将 ListView 绑定(bind)到 ListProperty? 我有一个如下 View 模型: class MyVm: ItemViewModel() {
我正在尝试使用 bulkloader 填充 db.ListProperty() 模型字段。 我正在使用如下导入转换函数: def parse_array(fn): def wrapper(va
我正在试用 Google App Engine 并有一个问题。 为简单起见,假设我的应用正在为计算机网络建模(一个相当大的企业网络,有 10,000 个节点)。我正在尝试按如下方式对我的 Node 类
假设我有一个模型User,其属性bands 类型为StringListProperty。在请求处理程序中,我正在扩展/附加到 bands 列表,而且我正在为 taskqueue 创建很多任务,其处理程
我是一名优秀的程序员,十分优秀!