どちらも一般的な python ツールである 2 つのツールが思い浮かびます。特に Django で動作する必要はありません。
- ファブリック。これを使用します。これにより、SSH で接続されているかのようにリモート コマンドを記述したり、コードをアップロードしたりできます。これらは、実行できないことはほとんどなく、基本的には Python で記述された bash スクリプトであるため、非常に簡単に実行できます。ただし、これは Python で記述された bash スクリプトでもあります。つまり、django アプリの一部をインポートしたり、テストを実行したり、デプロイの実行中に Python で実行できることを実行したりできます。
- ビルドアウト。私はこれを使用したことはありませんが、django frontent の開発者は、これは絶対に使用すべきツールだと言っています。推測では、それは同じアイデアか、もう少し抽象的で、より Python 指向の同等物です。
他のパッケージもあると思います。私ができる最善のアドバイスは、それらすべてを簡単に評価し、シナリオ/チームの作業スタイルに最も適したものを選択することです. これらは主に展開ツールであることに注意してください。Python コードをコンパイルしないため、Python でのビルドはあまり意味がありません。
CI 関連のものに関しては、知っておく必要がある django の 3 つのコマンドがあります。
./manage.py test
すべてのファイルからテストを実行しtests.py
ます。unittest
これらは基本的に、Python パッケージであるに対する django 固有の拡張機能です。
./manage.py collectstatic
選択したディレクトリに静的ファイルを収集します。すべてのビットをまとめて静的メディア サーバーに存在させるのに非常に便利です。これがどのように機能するかについては、静的ファイルのハウツーをご覧ください。
- これにはSouthが必要です。これ
./manage.py schemamigration app --auto && ./manage.py migrate app
により、モデルの変更が基になる SQL スキーマに適用されます。基本的に、モデルを変更しただけで南を使用しない場合、新しいフィールドが古い SQL スキーマにマップされず、モデルを永続化できないため、Django は非常に混乱します。south がサポートするスキーマの移行により、データが入力された既存のデータベースをアップグレードできます。自動化する前に手動で行う価値があります。
- また、実行するカスタム管理コマンドを記述できることも指摘しておく必要があります
./manage.py whatever you like
。これにはかなりの可能性があります。たとえば、cron ジョブで実行するコマンドとして管理コマンドを使用しました。アプリケーションの管理者向けのインタラクティブなコマンドを構築することもできます。もちろん、展開とテストも可能です。
これらがどのように処理されるかは、使用可能なセットアップと選択したツールによって異なります。
コンパイル時: Python でのビルドに最も近いのは、バイナリを生成するフリーズ、別名 py2exe または cxfreeze です。ただし、これらはすべて、python バイトコードを exe に格納し、インタープリターを介して渡すだけであることに注意してください。これはとにかく共有オブジェクトです。また、django アプリを cxfreeze することはできません。これは、django 自体が実行時に発生する動的インポートを使用するため、本質的にコンパイル時のツールである cxfreeze で評価できないためです。したがって、建物を行う必要があるタスクとして割り引いてください。ディレクトリにファイルが表示.pyc
される場合があります。前回の pyc 以降に変更が加えられた場合、python は python スクリプトを python バイトコードに変換します。変更が行われていない場合は、pyc
前回のファイル。Python バイトコードが実行されるため、これは実際にはパフォーマンスの面での高速化ではなく、読み込み時間だけです。