【问题标题】:Save django models to XML将 Django 模型保存为 XML
【发布时间】:2015-09-09 07:25:57
【问题描述】:

我有这个 django 视图代码,可以将我的 django 模型保存到 xml 文件。

def my_serialize(request):
    from django.core import serializers
    data = serializers.serialize("xml", LogChanges.objects.all())
    from django.core.files import File
    f = open('tickets.xml', 'w')
    myfile = File(f)
    myfile.write(data)
    myfile.close()
    return HttpResponse("All done!")

然后我这样得到输出:

<django-objects version="1.0">
    <object pk="1" model="ticket.logchanges">
        <field type="CharField" name="prevRemarks">action taken</field>
        <field type="IntegerField" name="idTicket">1</field>
        <field type="DateTimeField" name="dateChanged">2015-09-05</field>
        <field type="CharField" name="status">Open</field>
        <field type="CharField" name="userID">admin</field>
    </object>
</django-objects

有没有一种方法可以在不使用库的情况下以更简单的 xml 形式保存它,或者我真的必须使用库吗?喜欢:

<rowset> 
    <row>
        <prevRemarks> action taken </prevRemarks>
        <idTicket>1</idTicket>
        ...etc...
    </row>
</rowset>

【问题讨论】:

  • XML 不错,但您不想使用更通用、更紧凑的 JSON 吗?
  • @e4c5 我想用它来加载一些数据,所以每次我想要这些信息时我都不会访问数据库。你能详细说明我如何在这里使用 JSON 吗?
  • 听起来你真正在寻找的是缓存。 docs.djangoproject.com/en/1.8/topics/cache
  • @e4c5 JSON 更紧凑,但绝对不是更通用。

标签: python xml django


【解决方案1】:

看起来XML renderer plugin for Django Rest Framework 可能更适合您的喜好。

用户模型的示例输出:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <list-item>
        <id>1</id>
        <username>jpadilla</username>
        <email>jpadilla@example.com</email>
        <is_staff>True</is_staff>
    </list-item>
</root>

【讨论】:

  • 感谢您的回答。我会调查这个。但是没有其他不涉及使用库的方法吗?
  • @predator 当然。您可以使用 Django 模板系统来输出自定义 XML,就像您已经使用它来输出自定义 HTML 一样容易。我个人的偏好是使用该库,但我知道如果您不使用django-rest-framework,添加它来解决问题会有点奇怪。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 2018-10-07
  • 2019-10-06
相关资源
最近更新 更多