我对Python和Django相当陌生。最近,我在LinuxMint18.3中使用Postgresql数据库开发了一个Django应用程序。
我已经将该应用程序上传到PythonAnywhere,但不幸的是,它需要Java的一些NLP功能(斯坦福POS)。是否有一种方法可以解析和处理本地系统上的数据并将其保存到远程Postgres并从远程服务器为数据提供服务?
我看过一些关于SSH隧道的答案,但我不确定这是否适用于这里?或者,是否可以将数据保存到本地数据库并定期将数据迁移到远程数据库?
发布于 2018-03-05 19:40:25
是的--要从本地机器访问PythonAnywhere Postgres,您需要使用SSH隧道。如果您使用的是类似Unix的操作系统(例如。在您的本地机器上,此帮助页底部的“手动SSH隧道”指令将通过一些调整来处理。
帮助页上的SSH命令是:
ssh -L 3306:username.mysql.pythonanywhere-services.com:3306 username@ssh.pythonanywhere.com正如您所看到的,...which是MySQL的。要使它在您的PythonAnywhere Postgres服务器上工作,请替换:
3306的5432 (这意味着在本地机器上,它将使用默认的Postgres端口)username.mysql.pythonanywhere-services.com来自PythonAnywhere内部“数据库”页面上的"Postgres“选项卡。3306与"Postgres“选项卡的端口在PythonAnywhere中的”数据库“页面上。所以你最终会发现
ssh -L 5432:username-123.postgres.pythonanywhere-services.com:10123 username@ssh.pythonanywhere.com...with对username、123和10123的不同值。
当您运行该命令(并输入您的PythonAnywhere登录密码,它将提示您输入密码)时,您的计算机上将启动一个进程,该进程看起来像一个Postgres服务器,用于所有本地进程,但实际上只是将所有内容转发到PythonAnywhere托管的数据库服务器。这样您就可以在本地运行您的解析和处理代码,并且它将透明地工作。
发布于 2018-03-05 11:44:32
是的,您只需使用Django DATABASES设置https://docs.djangoproject.com/en/2.0/ref/settings/#databases将本地env连接到远程DB即可。
小心使用文档中的Django版本(这里是2.0)
这样,您就可以从本地env写入,从远程服务器读取(使用相同的设置连接到远程DB)。
https://stackoverflow.com/questions/49100598
复制相似问题