Djangoプロジェクトのデプロイの詳細なメモ

個人的な調査ノート、参照記事は次のとおりです:
https ://blog.csdn.net/tr_136163798/article/details/120901363
https://www.dusaiphoto.com/article/71/
https://docs.djangoproject.com / zh -hans / 3.2 / howto / static-files /
https://docs.djangoproject.com/zh-hans/3.2/howto/static-files/deployment/

この記事は私の個人ブログに初めて公開されました
。https ://sunguoqi.com/2021/12/15/Django_04/にアクセスしてください。

  Djangoの公式ドキュメントのガイドラインに従って、投票申請を行いました。私たちはローカルで開発し、プロジェクトはオンラインになるとサーバーにデプロイされます。このメモは、参照用として、Djangoプロジェクトをデプロイするプロセス全体を記録しています。

1.新しいサイト

1.パゴダパネルを使用してサイトを作成します


站点创建成功!

2. SSL証明書を構成します(オプション)


配置成功

第二に、パッケージングプログラム

1.依存関係をエクスポートします

  プロジェクトをローカルで開き、次のコマンドを実行してプロジェクトの依存関係をエクスポートします。

pip freeze > requirements.txt

2.パッケージのアップロード

  pycharmを閉じ、プロジェクトmysiteを圧縮パッケージにして、パゴダパネルを使用してWebサイトディレクトリにアップロードします/www/wwwroot/django.sunguoqi.com

3.減圧

  パゴダパネルは、コマンドラインを操作しなくてもファイルを直接解凍できます。

3.環境のインストール

1.仮想環境をインストールします

  Xshellリモートホストを使用し、Webサイトディレクトリに入り、次のコマンドを実行して仮想環境をインストールします。

pip3 install virtualenv

2.仮想環境を作成します

  プロジェクトディレクトリに入り

  、次のコマンドを実行して仮想環境を作成します。venvは、カスタマイズ可能な仮想環境の名前です。

virtualenv venv

3.仮想環境をアクティブ化します

cd venv
source bin/activate

4.依存関係パッケージをインストールします

cd ..
 pip3 install -r requirements.txt

报错

ERROR: Failed building wheel for mysqlclient

解决方案

  以下のコマンドをそれぞれ実行してください

sudo apt-get install python3 python-dev python3-dev
sudo apt-get install build-essential libssl-dev libffi-dev
sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev

  データベースエンジンを再インストールします

pip3 install mysqlclient

成功

  packageinstallコマンドを実行します

pip3 install -r requirements.txt

  データベースエンジンのインストール時にプログラムが終了したため、以下のパッケージはインストールされていません。

成功

第4に、プロジェクトデータベースを構成します

1.プロジェクトデータベースの構成情報を変更します

2.データベースを移行します

python3 manage.py migrate

成功

5.プロジェクトを開始します

1.プロジェクト設定を変更します

mysite/setting.py

ALLOWED_HOSTS = ['*']

2.バックグラウンド管理スーパーユーザーを作成します

  開発中のデータベースデータがインポートされていないため、バックグラウンドアカウントデータがありません。次のコマンドを実行して、スーパーユーザーを作成します。

python manage.py createsuperuser

3.プロジェクトを開始します

  ホストのポート8000​​を開き、次のコマンドを実行します。

python3 manage.py runserver 0.0.0.0:8000

  プロジェクトは正常に開始できます!

6、スクリーンプロセスホスティング

  SSHセッションが閉じられると、Webサービスも閉じられ、Webサイトの接続に失敗します。プロセスを24時間動作させる必要があります。ここでは、画面を使用して達成します。

1.インストール画面

apt-get install screen

2.画面を作成します

screen -S django_study

3.プロジェクトを開始します

python3 manage.py runserver 0.0.0.0:8000

セブン、Nginxリバースプロキシ

  現在、このIP:Port方法でアクセスできるのはWebのみであり、最終的なプロジェクトが開始されると、通常はドメイン名でアクセスされます。私たちのプロジェクトのドメイン名の対応はdjango.sunguoqi.com
  、Nginxのリバースプロキシを使用して、ドメイン名とポートの関係を確立することです。
在宝塔面板上配置

8、展開が完了しました

  アクセスdjango.sunguoqi.com/polls/、バックグラウンドでデータを追加しなかったため、利用可能な投票はありません。

1.バックグラウンドにログインします

  訪問django.sunguoqi.com/admin/

2.投票を追加する

3.投票する

django.sunguoqi.com/polls/投票するために  訪問してください。

4.データを送信する

九、DEBUG = False?

  本質的に、現在のプロジェクトでは引き続きDjangoに付属のWebサーバーを使用しており、リバースプロキシとしてNginxを使用しています。
  プロジェクトを正式にデプロイするときは、デバッグをオフにする必要があります。変更を加えずにプロジェクトを開始すると、次のエラーが表示されます。

  プロジェクト開発段階では、DEBUG = Trueの場合、Djangoは独自のWebサービスを使用して静的ファイルを処理しますが、パフォーマンスはあまり良くありません。そのため、プロジェクトのデプロイフェーズでは、DEBUG = Falseの場合、Djangoは静的ファイルを管理しなくなります。Djangoは、静的ファイルをNginx(または他のWebサーバー)に渡して処理することを望んでいます。
  現時点では、静的ファイルを処理する必要があります。

1.静的ファイルパスを構成します

  まず、setting.pyの関連する構成をこれに変更します。

import os

# 关闭调试模式
DEBUG = False

# 允许的服务器
ALLOWED_HOSTS = ['*']

# 静态文件收集目录
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

2.静的ファイルを収集します

  次のコマンドを実行して、プロジェクト内の静的ファイルを収集します。収集後の場所は、上記で設定した静的ファイル収集ディレクトリです。

python3 manage.py collectstatic

3.Nginxを構成します

  以下をサイト構成ファイルに追加します。

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|woff|woff2)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }

    location ~ /\.
    {
        deny all;
    }

4.プロジェクトを開始します

  わかった!

おすすめ

転載: blog.csdn.net/weixin_50915462/article/details/121953668