【问题标题】:Using an RPC like Protocol Buffers as a backend to Django, instead of MySQL or SQLite使用像 Protocol Buffers 这样的 RPC 作为 Django 的后端,而不是 MySQL 或 SQLite
【发布时间】:2010-12-22 04:05:52
【问题描述】:

app-engine-patch 项目背后的聪明人基本上启用了 Django 的所有有趣的东西,包括管理员,但没有使用 Django 的 ORM。

来自他们的网站:

最重要的变化是你必须使用谷歌的Model类,因为开发模型与Django太不同了(至少与Django当前的API不同)。

这本质上是我想做的,但是通过RPC使用Google's Protocol buffers作为数据传输层。

在他们的 addressbook.proto 示例中使用 Person 消息,我基本上想这样做:

from django.contrib import admin
from myrpc.models import Person

class PersonAdmin(admin.ModelAdmin):
  list_display = ['id', 'name', 'email']

admin.site.register(Person, PersonAdmin)

【问题讨论】:

  • Google 的协议缓冲区作为数据传输层为了什么通过 RPC?如果需要,可以将它们用作 Django ORM 模型的数据传输层。 RPC 不是数据库,它不会取代 MySQL。如果您特别想使用 Google App Engine + Django,则根本不必弄乱 RPC 级别的东西,您可以使用 github.com/django-nonrel/djangoappengine 和常规 Django 模型等

标签: django django-admin rpc protocol-buffers


【解决方案1】:

app-engine-patch 不再维护,上次我尝试它时出现了太多错误,我最好重新实现我想要的中间件。我也不记得他们曾经支持过 Django 的管理员。

Django 的 Admin 与用于数据库访问的 Google App Engine 的 API 不兼容。其实完全不一样。

然后是Django-norel,它试图让 Django 的 ORM 与 GAE 兼容,你可能会遇到一些运气,但它还是没有维护。

所以在 GAE 上,不要使用补丁,因为 Django 1.2 已经包含在可用 API 列表中。请参阅他们的文档中的此部分:Third Party Libraries, Django

而且您将无法使用 Django 的 Admin。别想了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-20
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2020-08-15
    相关资源
    最近更新 更多