あなたの python スクリプトが何をしているかを完全に認識していなくても、私があなたの代わりに何をするかを簡単に説明しようと思います。
私はすべての Web 公開アプリケーションにDjangoを使用しています。URL パターンのカスタマイズはうまく機能し、レガシー データへのアクセスは優れており、これらのデータを操作するための Orb は、すべてのプロジェクトで私のニーズの 99% をカバーしています。
Apache で実行するように Django を設定する方法については、Django のドキュメントで詳しく説明されています。新しいサイトを立ち上げ、php アプリと並行して実行したら、それらの間の通信を開始できます。
PHP データにアクセスする Django
Django manage.py は、既存のテーブルに基づいてモデルを作成できます。すぐに使用できるモデル ファイルを入手できる場合もありますが、ほとんどの場合、独自の順序で作成し、テーブル間の関係をカスタマイズする必要があります。PHP アプリ データベースを指すように、settings.py のデータベース セクションをセットアップします。
DATABASES = {
'default': {
'ENGINE':'django.db.backends.postgresql_psycopg2',
'NAME': 'myphpappdbname',
'USER': 'phpuser',
'PASSWORD': 'phppassword'
# snipped away other options. Might or might not bee needed
}
}
セットアップが完了したら、データへのアクセスをテストできます
python manage.py dbshell
データベースへの正しい接続を確認したら、実行できます
python manage.py inspectdb > models.py
これにより、各テーブルのモデルが生成されます。このモデル ファイルを新しい django プロジェクトの app に追加します。
python manage.py startapp phpextension
mv models.py phpextension/models.py
インストールしたアプリを設定で変更して、新しくインストールしたアプリを含めると、django アプリを介して PHP アプリ データ全体にアクセスできるようになります。Web 上で公開したいデータのビューを作成します。
追加のメモとして、php と django/python を混在させていることを一般に偽装する必要がある場合は、次のように URL パターンを作成できます。
url(r'^my_command.php$', 'phpextensions.views.my_command', name="my_command"),
これが機能するには、設定も設定する必要があると思いますAPPEND_SLASH=False
。
ビューは、django ビューを単なる別の php スクリプトとして認識します (より速く、より優雅で、魔法のユニコーンが注入されているだけです)。
PHP を介した Django データへのアクセス
ここでは REST API を使用します。簡単な方法は、ビューで json.dumps(my_dictionary_of_data_for_php) を使用して JSON 応答を作成することであり、よりエンタープライズな方法はTastypieを使用することです。
次に、使用して PHP のデータにアクセスできます。
$fc = file_get_contents('http://yourdomain.com/path/to/django/my_command.php');
$django_data = json_decode(fc);