20.04序章Djangoは、Pythonアプリケーションをすばやく作成するための柔軟なフレームワークです。デフォルトでは、Djangoアプリケーションはデータを軽量のSQLiteデータベースファイルに保存するように構成されています。これはいくつかの負荷の下でうまく機能しますが、より伝統的なデータベース管理システムは本番環境でのパフォーマンスを向上させることができます。このガイドでは、Djangoアプリケーションで使用するPostgreSQL(Postgresと呼ばれることもあります)をインストールして構成します。必要なソフトウェアをインストールし、アプリケーションのデータベースクレデンシャルを作成してから、このバックエンドを使用するように新しいDjangoプロジェクトを開始して構成します。前提条件sudo権限で構成されたroot以外のユーザーを持つクリーンなUbuntu20.04サーバーインスタンスが必要になります。初期サーバーセットアップガイドに従って、これをセットアップする方法を学びます。続行する準備ができたら、sudoユーザーとしてログインします。ステップ1-Ubuntuリポジトリからコンポーネントをインストールするまず、重要なコンポーネントをインストールします。これには、pip、Pythonコンポーネントをインストールおよび管理するためのPythonパッケージマネージャー、およびデータベースソフトウェアとそれに関連するライブラリが含まれます。Ubuntu20.04に同梱されているPython3を使用します。次のように入力して、インストールを開始します。postgresql-contribインストールが邪魔にならないようにすると、データベースに移動できます。ステップ2–データベースとデータベースユーザーの作成デフォルトでは、Postgresはローカル接続に「ピア認証」と呼ばれる認証スキームを使用します。基本的に、これは、ユーザーのオペレーティングシステムのユーザー名が有効なPostgresユーザー名と一致する場合、そのユーザーはそれ以上の認証なしでログインできることを意味します。postgresPostgreSQL管理ユーザーに対応するように作成されました。管理タスクを実行するには、このユーザーを使用する必要があります。sudoを使用して、-uオプションを使用してユーザー名を渡すことができます。次のように入力して、インタラクティブなPostgresセッションにログインします。psqlまず、Djangoプロジェクトのデータベースを作成します。セキュリティ上の理由から、各プロジェクトには独自の分離データベースが必要です。このガイドではデータベースをmyprojectと呼びますが、よりわかりやすいものを選択することをお勧めします。myproject;ノートSQLプロンプトですべてのコマンドをセミコロンで終了することを忘れないでください。次に、データベースへの接続とデータベースの操作に使用するデータベースユーザーを作成します。パスワードを強力で安全なものに設定します。'password';その後、作成したユーザーの接続パラメーターのいくつかを変更します。これにより、データベース操作が高速化されるため、接続が確立されるたびに正しい値を照会して設定する必要がなくなります。'UTC';Djangoが期待するデフォルトのエンコーディングをUTF-8に設定しています。デフォルトのトランザクション分離スキームを「読み取りコミット」に設定しています。これは、コミットされていないトランザクションからの読み取りをブロックします。最後に、タイムゾーンを設定します。デフォルトでは、DjangoプロジェクトはUTCを使用するように設定されています。これらはすべて、Djangoプロジェクト自体からの推奨事項です。これで、作成したデータベースへのアクセス権をデータベースユーザーに付与するだけで済みます。myprojectuser;SQLプロンプトを終了して、postgresユーザーのシェルセッションに戻ります。\q仮想環境内にDjangoをインストールするデータベースがセットアップされたので、Djangoをインストールできます。柔軟性を高めるために、Python仮想環境内にDjangoとそのすべての依存関係をインストールします。virtualenvパッケージを使用すると、これらの環境を簡単に作成できます。virtualenvをインストールするには、次のように入力します。virtualenvDjangoプロジェクトを保持するディレクトリを作成して移動します。~/myproject次のように入力して、DjangoプロジェクトのPython要件を保存する仮想環境を作成できます。myprojectenvこれにより、Pythonのローカルコピーとローカルのpipコマンドが、プロジェクトディレクトリ内のmyprojectenvというディレクトリにインストールされます。仮想環境内にアプリケーションをインストールする前に、それをアクティブ化する必要があります。次のように入力してください。myprojectenv/bin/activateプロンプトが変わり、仮想環境内で操作していることを示します。このようになります(myprojectenv)user@host:~/myproject$。仮想環境がアクティブになったら、pipを使用してDjangoの公式リリースをインストールできます。psycopg2パッケージをインストールして、構成したPostgresデータベースを使用できるようにします。ノート使用しているPythonのバージョンに関係なく、仮想環境がアクティブ化されている場合は、pipコマンドを使用する必要があります(pip3ではありません)。psycopg2これで、myprojectディレクトリ内でDjangoプロジェクトを開始できます。これにより、コード自体を保持する同じ名前の子ディレクトリが作成され、現在のディレクトリ内に管理スクリプトが作成されます。これが正しく設定されるように、コマンドの最後にドットを追加してください。.Djangoデータベース設定を構成するプロジェクトができたので、作成したデータベースを使用するようにプロジェクトを構成する必要があります。子プロジェクトディレクトリ内にあるメインのDjangoプロジェクト設定ファイルを開きます。~/myproject/myproject/settings.pyファイルの下部に、次のようなDATABASESセクションが表示されます。.これは現在、SQLiteをデータベースとして使用するように構成されています。代わりにPostgreSQLデータベースが使用されるように、これを変更する必要があります。sqlite3アダプターの代わりにpostgresqlアダプターを使用するようにエンジンを変更します。NAMEには、データベースの名前(この例ではmyproject)を使用します。ログイン資格情報を追加する必要があります。接続するには、ユーザー名、パスワード、およびホストが必要です。デフォルトが選択されるように、ポートオプションを追加して空白のままにします。.ここにいる間、ALLOWED_HOSTSディレクティブも調整する必要があります。これは、Djangoインスタンスへの接続を許可されるアドレスまたはドメイン名のホワイトリストを定義します。このリストにないHostヘッダーを持つ着信要求は、例外を発生させます。Djangoでは、特定のクラスのセキュリティの脆弱性を防ぐためにこれを設定する必要があります。以下のスニペットには、デモンストレーションに使用されるコメントアウトされた例がいくつかあります。['your_server_domain_or_IP']角かっこ内に、Djangoサーバーに関連付けられているIPアドレスまたはドメイン名をリストします。各項目は、エントリをコンマで区切って引用符で囲む必要があります。ドメイン全体とサブドメインのリクエストを希望する場合は、エントリの先頭にピリオドを追加します。終了したら、ファイルを保存して閉じます。データベースを移行してプロジェクトをテストするDjango設定が構成されたので、データ構造をデータベースに移行してサーバーをテストできます。データベースへの移行を作成して適用することから始めます。実際のデータはまだないので、これにより初期データベース構造が設定されます。migrateデータベース構造を作成した後、次のように入力して管理者アカウントを作成できます。createsuperuserユーザー名を選択し、メールアドレスを入力し、アカウントのパスワードを選択して確認するように求められます。サーバーの初期設定ガイドに従った場合は、UFWファイアウォールを設置する必要があります。Django開発サーバーにアクセスしてデータベースをテストする前に、ファイアウォールでポートを開く必要があります。次のように入力して、ポートへの外部接続を許可します。8000ポートを開いたら、Django開発サーバーを起動して、データベースが正しく実行されていることをテストできます。0.0.0.0:8000Webブラウザーで、サーバーのドメイン名またはIPアドレスにアクセスし、続いて:8000にアクセスして、デフォルトのDjangoルートページにアクセスします。http://server_domain_or_IP:8000デフォルトのインデックスページが表示されます。URLの最後に/adminを追加すると、管理インターフェースへのログイン画面にアクセスできるようになります。createsuperuserコマンドで作成したユーザー名とパスワードを入力します。次に、管理インターフェースに移動します。調査が終了したら、ターミナルウィンドウでCTRL-Cを押して開発サーバーを停止できます。管理インターフェースにアクセスすることにより、データベースにユーザーアカウント情報が保存されており、適切にアクセスできることを確認したことになります。結論このガイドでは、PostgreSQLをDjangoプロジェクトのバックエンドデータベースとしてインストールおよび構成する方法を示しました。SQLiteは開発中および軽生産での使用中に負荷を簡単に処理できますが、ほとんどのプロジェクトは、よりフル機能のデータベース管理システムを実装することで恩恵を受けます。Postgres、Nginx、およびGunicornを使用してDjangoをセットアップする方法に関するガイドを参照してください。Joseモバイルバージョンに。