Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为一个对象建模多个BLOB?_Python_Google App Engine_Blobstore_Data Modeling - Fatal编程技术网

Python 如何为一个对象建模多个BLOB?

Python 如何为一个对象建模多个BLOB?,python,google-app-engine,blobstore,data-modeling,Python,Google App Engine,Blobstore,Data Modeling,我想在文本对象和blob之间启用类似一对多的关系,以便文本对象(一篇“文章”或类似的内容)具有许多图像和/或视频。我看到了两种方法,第一种是使用blob列表作为实例变量。行吗 class A(search.SearchableModel): blobs = db.ListProperty(blobstore.BlobReferenceProperty()) 优点:只需一节课。可读且易于获取和设置数据。 缺点:缺少blob的额外信息,例如,如果我想用描述性单词标记blob,我仍然需要两个类:

我想在文本对象和blob之间启用类似一对多的关系,以便文本对象(一篇“文章”或类似的内容)具有许多图像和/或视频。我看到了两种方法,第一种是使用blob列表作为实例变量。行吗

class A(search.SearchableModel):
  blobs = db.ListProperty(blobstore.BlobReferenceProperty())
优点:只需一节课。可读且易于获取和设置数据。 缺点:缺少blob的额外信息,例如,如果我想用描述性单词标记blob,我仍然需要两个类:

class A(search.SearchableModel):
...
class B(db.Model):
  reference=db.ReferenceProperty(A,collection_name='matched_blobs',verbose_name="Title")
  blob = blobstore.BlobReferenceProperty()
后一个示例有一个缺点,因为它需要referenceproperty,并引入了两个类,在这些类中,问题可以像第一个示例中那样仅使用类a来解决。后一种解决方案的优点是,它有明确的文档记录,而blobreferenceproperties的listproperty没有,我已经实现了后一种解决方案,现在我考虑使用Blob列表而不是引用的集合。这有关系吗?还是两者都会同样有效?你能推荐选择哪种方式吗,如果有这些或其他方式的话


感谢

App Engine在其文档中实际有一篇关于此的文章:

App Engine在其文档中实际有一篇关于此的文章:

感谢链接!
db.ListProperty(blobstore.BlobReferenceProperty())
我从未见过有人在使用它,也许它不会工作。我希望现在可以很容易地确定哪些blob属于哪个实体,反之亦然。我可能会在这里保留带有2个类的模型。@Niklas它不会工作-您有一个项目列表,而不是属性列表。你想要
db.ListProperty(blobstore.BlobKey)
db.ListProperty(blobstore.BlobKey)
就是我想要的。我想知道如果我使用ListpRoperty而不是引用,在datastore管理控制台数据视图中会发生什么。现在有了一个指向“查看blob”的清晰链接如果我使用当前的实现,它仍然有使用旧实例变量blobproperty的痕迹,并且我希望能够使用
get\u serving\u url
,因此我将所有Blob移动到blobstore,并且我不会使用
db.blobproperty
,因为blobstore与get\u serving\u url和admin视图相比更好。感谢链接!
db.ListProperty(blobstore.BlobReferenceProperty())
我从未见过有人在使用它,也许它不会工作。我希望现在可以很容易地确定哪些blob属于哪个实体,反之亦然。我可能会在这里保留带有2个类的模型。@Niklas它不会工作-您有一个项目列表,而不是属性列表。你想要
db.ListProperty(blobstore.BlobKey)
db.ListProperty(blobstore.BlobKey)
就是我想要的。我想知道如果我使用ListpRoperty而不是引用,在datastore管理控制台数据视图中会发生什么。现在有了一个指向“查看blob”的清晰链接如果我使用当前的实现,它仍然有使用旧实例变量blobproperty的痕迹,并且我希望能够使用
get\u serving\u url
,因此我将所有Blob移动到blobstore,而我不会使用
db.blobproperty
,因为blobstore使用get\u serving\u url和admin视图更好。