2

私はあらゆる場所を調べましたが、いくつかの異なるソースからの古いものや断片的なものしか見つかりませんでしたが、Django を運用環境にデプロイするための完全な手順を持っているものはありませんでした。

私が見たいのは、特にDjango専用のgit、ローカルおよび運用環境のsettings.py、.gitignoreを利用してDjangoをデプロイするための推奨される方法です。

必要なファイルのみが git リポジトリに送信されるように、両方の環境に対応する設定と .gitignore ファイルに追加する必要のある設定をどのように実装すればよいですか?

ローカルおよび実稼働設定を使用するベスト プラクティスと最新の方法を知りたいことに注意してください。

このような疑問は、Django アプリをデプロイするときに発生します。

  1. 設定はどこに保存する必要がありますか?
  2. 両方の環境に対応する設定を適切に実装するにはどうすればよいですか?
  3. 主な設定から切り離すべき機密情報は何ですか?

2016 年 9 月 25 日更新:

これを明確にしてくれてありがとうandreasそして今、私は Django を展開する標準的な方法がないことに完全に同意します. 私は長い調査を行い、Django 設定を展開するために最も一般的に使用される方法を見つけました。同じ疑問を持っているすべての人に私の調査結果を共有します。

答える

設定はどこに保存する必要がありますか?

settings.py設定は、単一のファイルではなく、設定モジュール内に収める方が適切です。

両方の環境に対応する設定を適切に実装するにはどうすればよいですか?

これは、設定モジュールが非常に便利な場所です。環境に依存しない設定を簡単に作成でき、git またはその他のバージョン管理で維持できるためです。

主な設定から切り離すべき機密情報は何ですか?

データベース、電子メール、秘密鍵、および認証関連情報を含むあらゆる機密情報と、この個人情報を秘密裏に提供する方法については、andreas の提案を使用することをお勧めします。

で別のファイルを作成し/etc/app_settingsて非常に制限するか、システム内の環境変数を単に使用することができます。

.gitignore 部分

.gitignore の部分については、 https://github.com/github/gitignoreであらゆる種類の例を入手できる素晴らしいレポを見つけました。

私は最終的に使用しました:

# OSX Finder turds
.DS_Store

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Distribution / packaging
.Python
env/

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Django stuff:
*.log
my_app/settings/dev.py
bower_components

答えが非常に長くなってしまったので、Django 設定の展開ですべての手順を説明する記事を作成しました。

4

1 に答える 1

5

Django アプリをデプロイするための推奨される方法は 1 つではありません。公式ドキュメントには、Apache と mod_wsgi を使用してデプロイするためのガイドが記載されています。他のいくつかのオプションは、Heroku / DokkuのようなPaaSまたはDockerを使用したデプロイです。

設定を別のファイルに分割するのが一般的です。たとえば、設定を 4 つの異なるファイルに分割できます。

  • ベースファイル (base.py) - すべての環境に共通の設定 (以下のすべてのファイルはこれからインポートされます)from .base import *
  • 開発ファイル (development.py) - 開発に固有の設定 (DEBUG = True など...)
  • 本番ファイル (production.py) - 本番環境に固有の設定。(DEBUG = False、ホワイトノイズ設定など)
  • テストファイル (testing.py)

環境変数を使用して、どの設定ファイルをロードするかを制御できますDJANGO_SETTINGS_MODULE

SECRET_KEY などのシークレットを環境変数に格納することも、一般的に推奨される方法です。SECRET_KEY = os.environ.get('SECRET_KEY', None). または、 django-environ パッケージをチェックしてください。

セットアップの例については、このリポジトリを確認してください。

于 2016-09-17T13:24:14.267 に答える