我目前正在開發一個Django應用程序供內部使用,它在本地網絡中的一臺服務器(服務器1)上運行,但需要對另一臺服務器(服務器2)數據保存到數據庫時。Django和Apache:在網絡中的另一臺服務器上創建文件夾
保存新記錄時,Django會在外部服務器(服務器2)上使用適當的文件夾名稱創建一個新目錄。這在Django測試服務器上運行良好,似乎可以訪問整個本地網絡。
我現在已經成功部署我的Django應用程序與Apache和mod_wsgi但文件夾創建過程似乎不再工作。我嘗試了一些東西,但似乎無法迅速修復它。有任何想法嗎?這可以用Django和Apache實現嗎?
def create_folder(self,request,obj,form, change, serverfolder, templatefolder):
try:
source_dir = templatefolder # Replace with path to project folder template
if not os.path.exists(destination_dir):
dir_util.copy_tree(source_dir,destination_dir)
obj.projectfolder = destination_dir
messages.success(request,"Project folder created on %s" % (serverfolder))
obj.create_folder = False
obj.has_folder = True
else:
messages.warning(request,"No new project folder created on %s server" % (obj.office.abbreviation))
except Exception,e:
messages.warning(request,str(e) + " Error during project folder creation on %s server!" % (obj.office.abbreviation))
def save_model(self, request, obj, form, change):
serverfolder = r'\\C-s-002\Projects' #C-s-002 is the external server in the same local network as the server on which Django is running
templatefolder = r'\\C-s-002\Projects\XXX Project Template'
self.create_folder(request,obj,form, change, serverfolder, templatefolder)
我看不到與其他服務器(服務器2)的連接。 'serverfolder'包含什麼? – alexvassel
連接不是在代碼本身中進行的。 Django項目位於C-s-001上。運行時,它會引發一個錯誤,說明\\ C-s-002 \\ Projects不是一個有效的文件夾 – brunostuyts
您確實需要編寫一些代碼才能連接到另一臺服務器(例如通過ssh)並在那裏執行shell命令。 – alexvassel