如何使用Django保存到远程服务器

问题描述 投票:3回答:2

我是Python和Django的新手。我最近有一个Django应用程序在Linux Mint 18.3中使用Postgresql数据库在localhost上工作。

我已将应用程序上传到PythonAnywhere,但不幸的是,它需要Java来实现一些NLP功能(Stanford POS)。有没有办法解析和处理本地系统上的数据并将其保存到远程Postgres DB并从远程服务器提供数据?

我在这里看了一些关于SSH隧道的答案,但我不确定这适用于此?或者可以保存到本地数据库并定期将数据迁移到远程数据库吗?

django postgresql remote-access pythonanywhere
2个回答
1
投票

是 - 要从本地计算机访问PythonAnywhere Postgres DB,您需要使用SSH隧道。如果您在本地计算机上使用类Unix操作系统(例如Linux或Mac),this help page底部的“手动SSH隧道”指令将通过一些调整来处理。

帮助页面上的SSH命令是:

ssh -L 3306:username.mysql.pythonanywhere-services.com:3306 [email protected]

......正如你所看到的,它适用于MySQL。要使其适用于您的PythonAnywhere Postgres服务器,请替换:

  • 3306的第一个5432(这意味着在您的本地机器上,它将使用默认的Postgres端口)
  • 带有Postgres服务器主机名的username.mysql.pythonanywhere-services.com来自PythonAnywhere内“数据库”页面上的“Postgres”选项卡。
  • 第二个3306,带有来自PythonAnywhere内“数据库”页面上“Postgres”选项卡的端口。

所以你最终会结束这样的事情

ssh -L 5432:username-123.postgres.pythonanywhere-services.com:10123 [email protected]

... username12310123的值不同。

当你运行该命令(并输入你将提示你的PythonAnywhere登录密码)时,一个进程将在你的机器上启动,看起来像Postgres服务器到所有本地进程,但实际上只是来回转发所有内容PythonAnywhere托管的数据库服务器。因此,您可以在本地运行解析和处理代码,它将以透明方式工作。


0
投票

是的,您只需使用Django DATABASES设置https://docs.djangoproject.com/en/2.0/ref/settings/#databases将本地环境连接到远程数据库

小心在doc中使用你的Django版本(这里是2.0)

这样你就可以从本地env写入,并从远程服务器读取(使用相同的设置连接到远程数据库)

© www.soinside.com 2019 - 2024. All rights reserved.