簡體   English   中英

如何使用Django保存到遠程服務器

[英]How to save to a remote server with Django

我是Python和Django的新手。 我最近有一個Django應用程序在Linux Mint 18.3中使用Postgresql數據庫在localhost上工作。

我已將應用程序上傳到PythonAnywhere,但不幸的是,它需要Java來實現一些NLP功能(Stanford POS)。 有沒有辦法解析和處理本地系統上的數據並將其保存到遠程Postgres DB並從遠程服務器提供數據?

我在這里看了一些關於SSH隧道的答案,但我不確定這適用於此? 或者可以保存到本地數據庫並定期將數據遷移到遠程數據庫嗎?

是 - 要從本地計算機訪問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服務器,請替換:

  • 第一個33065432 (這意味着在本地機器上,它將使用默認的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

... username12310123值不同。

當你運行該命令(並輸入你將提示你的PythonAnywhere登錄密碼)時,一個進程將在你的機器上啟動,看起來像Postgres服務器到所有本地進程,但實際上只是來回轉發所有內容PythonAnywhere托管的數據庫服務器。 因此,您可以在本地運行解析和處理代碼,它將以透明方式工作。

是的,您只需使用Django DATABASES設置將本地環境連接到遠程數據庫https://docs.djangoproject.com/en/2.0/ref/settings/#databases

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

這樣你就可以從本地env寫入,並從遠程服務器讀取(使用相同的設置連接到遠程數據庫)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM