0

現在、ローカル ネットワーク内の 1 つのサーバー (サーバー 1) で実行される内部使用のための Django アプリケーションを開発していますが、データがデータベースに保存されるときに別のサーバー (サーバー 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)
4

1 に答える 1

0

ここでとれるさまざまなアプローチがあるため、すべての可能性を網羅しようとはしません。

オプション 1: Python で外部コマンドを呼び出します。これは、Django や Apache に固有のものではありません。

オプション 2: サーバー 1 で必要なファイル/ディレクトリの作成を処理する API 呼び出しを介してアクセスできる Web サービスをサーバー 2 にセットアップします。これは Django で実装できます。

于 2013-10-10T11:39:34.190 に答える