Django模型的远程访问

2024-04-26 11:20:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个django1.5项目,在apache服务器上运行mysql上使用django模型。在

class Person(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    birthdate = models.DateField()

class Book(models.Model):
    name = models.CharField(max_length=100)
    author = models.ForeignKey(Person)

我还有一个python/django应用程序(使用django自定义命令)在必须使用这些模型的远程计算机上运行。在

  • 远程应用程序与服务器共享相同的模型定义
  • 远程应用程序需要对模型的只读访问
  • 远程应用程序不能有服务器数据库的完整转储,因为服务器必须根据用户权限返回查询集
  • 远程应用程序只能通过http连接到服务器
  • 服务器可以通过restapi(json)公开模型

有没有通过http自动传输模型的方法?我试着用django.core.serializers但我有以下问题:

  • 我无法序列化查询集中的相关对象
  • 没有本地数据库,远程应用程序无法工作
  • 远程应用程序在反序列化后搜索本地数据库上的相关对象(不存在)

编辑:

我成功地将模型序列化如下:

^{pr2}$

我的问题是远程应用程序不能在没有本地数据库的情况下进行反序列化。在


Tags: djangoname模型服务器数据库应用程序model序列化
2条回答

最后我通过在客户端的ram上运行sqlite来解决这个问题

打开设置.py我用了这个配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': ':memory:'
    }
}

代码是这样的:

^{pr2}$

不要认为需要通过http传输模型。 只需要连接到服务器数据库。 在“远程应用程序设置”中,选择“数据库引擎”(在本例中为mysql)、名称。 指定适当的用户和密码。 并输入有效的主机和代理(如果需要)。运行数据库服务器的服务器

至于用户。在服务器上创建一个对数据库具有只读权限的mysql用户。在

这将使您能够对服务器和远程应用程序使用相同的数据库。在

相关问题 更多 >