to_xml方法和数据存储模型

时间:2014-12-11 14:42:09

标签: python google-app-engine

我正在开展一个使用谷歌数据存储模型的学术项目。我是谷歌应用引擎和python的新手。任何人都可以指向实例方法的示例' to_xml()' python中的谷歌数据存储模型类?我有点陷入困境,我的实施没有向前发展。

3 个答案:

答案 0 :(得分:1)

为您的xml创建一个模板。填写他,作为html页面的普通模板

 Example (first from found)
<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect.         http://www.livejournal.com/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:atom10='http://www.w3.org/2005/Atom'>
  <channel>
  <title>Ofertas de empleo en argentina</title>
  <link></link>
<description>'title site'</description>
<lastBuildDate>{{date}}</lastBuildDate>
<generator>'site url'</generator>


{%for i in List%}
<item>
<guid isPermaLink='true'>{{i.url}}</guid>
<pubDate>{{i.date}}</pubDate>
<title>{{i.subject}}</title>
<link>{{i.url}}</link>
<description>{{i.text}}</description>

  </item>
 {%endfor%}

 </channel>
 </rss>

关于模板cloud.google.com/appengine/docs/python/gettingstartedpython27/templates

答案 1 :(得分:0)

您可以使用all NDB models上的dict功能转换为to_dict()。然后使用类似this package的内容转换为xml

因此,在模型定义中,您可以添加如下函数:

import dicttoxml

def to_xml(self):
  return dicttoxml.dicttoxml(self.to_dict())

答案 2 :(得分:0)

我将从一般性评论开始。如果你开始使用appengine和python,你打算开发任何重要的东西。停下来开始查看ndbto_xml()方法是db界面的一项功能,ndb是操作的位置,ndb解决了db复杂使用时出现的一些问题1}}。

同样在你的问题中,你还没有真正说出你的问题或你想要达到的目标。更清晰一些可以帮助您获得一个明确的答案 - 请注意涵盖各种不同事物的各种答案。

关于如何使用它to_xml

调用.to_xml()将返回实体的xml表示。除非你想构建属性等的ATOMS,否则它没有很多用处。文档在这里https://cloud.google.com/appengine/docs/python/datastore/modelclass#Model_to_xml

以下是我们to_xml()

的示例
The db, ndb, users, urlfetch, and memcache modules are imported.
dev~cash-drawer> class MyClass(db.Model):
...    name = db.StringProperty()
...    value = db.IntegerProperty()
...    state = db.BooleanProperty()
...
dev~cash-drawer> x = MyClass()
dev~cash-drawer> x.name = "hello world"
dev~cash-drawer> x.value = 101
dev~cash-drawer> x.state = False
dev~cash-drawer> x.to_xml()
u'<entity kind="MyClass">\n  <property name="name" type="string">hello world</property>\n  <property name="state" type="bool">False</property>\n  <property name="value" type="int">101</property>\n</entity>\n'
dev~cash-drawer>

使其更具可读性

dev~cash-drawer> print x.to_xml()
<entity kind="MyClass">
  <property name="name" type="string">hello world</property>
  <property name="state" type="bool">False</property>
  <property name="value" type="int">101</property>
</entity>

就是这样。