热门标签:
Q:

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

我对Python和Django相当陌生。 我最近有一个Django应用程序在Linux Mint18.3中使用Postgresql数据库在localhost上工作。

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

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

原网址
A:

是的-要从本地机器访问PythonAnywhere Postgres DB,您需要使用SSH隧道。 如果您使用的是类Unix操作系统(例如)。 Linux或Mac)在本地机器上,这个帮助页面底部的"手动SSH隧道"指令将通过一些调整来处理这个问题。

帮助页面上的SSH命令是:

ssh -L 3306:username.mysql.pythonanywhere-services.com:3306 username@ssh.pythonanywhere.com

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

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

所以你会得到类似的东西

ssh -L 5432:username-123.postgres.pythonanywhere-services.com:10123 username@ssh.pythonanywhere.com

。..具有不同的值为username123和和10123

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

所有回答

共 1 条

author avatar

是的,您只需使用DjangoDATABASESsettings将本地env连接到远程DB即可https://docs.djangoproject.com/en/2.0/ref/settings/#databases

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

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

相似问题