我是 Python 和 Django 的新手。我最近有一个 Django 应用程序在 Linux Mint 18.3 的本地主机上运行,带有 Postgresql 数据库。
我已将该应用程序上传到 PythonAnywhere,但不幸的是,它需要 Java 才能实现某些 NLP 功能 (Stanford POS)。有没有办法在本地系统上解析和处理数据并将其保存到远程 Postgres 数据库并从远程服务器提供数据?
我在这里查看了一些关于 SSH 隧道的答案,但我不确定这是否适用于此?或者是否可以保存到本地数据库并定期将数据迁移到远程数据库?
最佳答案
是的——要从您的本地计算机访问您的 PythonAnywhere Postgres 数据库,您需要使用 SSH 隧道。如果您在本地计算机上使用类 Unix 操作系统(例如 Linux 或 Mac),请参阅 this help page 底部的“手动 SSH 隧道”说明。将通过一些调整来处理这个问题。
帮助页面上的SSH命令是:
ssh -L 3306:username.mysql.pythonanywhere-services.com:3306 username@ssh.pythonanywhere.com
...如您所见,它适用于 MySQL。要使其适用于您的 PythonAnywhere Postgres 服务器,请替换:
- 第一个
3306
和5432
(这意味着在您的本地机器上,它将使用默认的 Postgres 端口) username.mysql.pythonanywhere-services.com
以及 PythonAnywhere 中“数据库”页面上“Postgres”选项卡中的 Postgres 服务器主机名。- 第二个
3306
端口来自 PythonAnywhere 中“数据库”页面上的“Postgres”选项卡。
所以你会得到类似的东西
ssh -L 5432:username-123.postgres.pythonanywhere-services.com:10123 username@ssh.pythonanywhere.com
...username
、123
和 10123
具有不同的值。
当您运行该命令(并输入您的 PythonAnywhere 登录密码,它会提示您输入)时,一个进程将在您的机器上启动,它看起来像所有本地进程的 Postgres 服务器,但实际上只是将所有内容转发回去然后再到 PythonAnywhere 托管的数据库服务器。因此,您可以在本地运行您的解析和处理代码,它会透明地工作。
关于django - 如何使用 Django 保存到远程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49100598/