個人的な調査ノート、参照記事は次のとおりです:
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.プロジェクトを開始します
わかった!