【发布时间】:2013-10-18 03:14:07
【问题描述】:
我目前正在开发一个供内部使用的 Django 应用程序,该应用程序在本地网络中的一台服务器(服务器 1)上运行,但在将数据保存到数据库时需要对另一台服务器(服务器 2)进行写访问。
保存新记录后,Django 在外部服务器(服务器 2)上创建一个新目录,并使用适当的文件夹名称。这在似乎可以访问整个本地网络的 Django 测试服务器上运行良好。
我现在已经成功地使用 Apache 和 mod_wsgi 部署了我的 Django 应用程序,但文件夹创建过程似乎不再起作用。我已经尝试了一些东西,但似乎无法快速修复它。有任何想法吗?这真的可以用 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包含什么内容? -
连接不是在代码本身中建立的。 Django 项目位于 C-s-001。运行时会报错,提示 \\C-s-002\\Projects 不是有效文件夹
-
你真的必须编写一些可以连接到另一个服务器(例如通过 ssh)并在那里执行 shell 命令的代码。
标签: python django apache directory