この記事では、DjangoアプリをHeroku上に無料でデプロイする方法について説明します。
それでは、私たちの最初のDjangoアプリをHerokuプラットフォーム上に、それもコストゼロでデプロイするエキサイティングな旅を始めましょう。
もしあなたがDjangoを知らないなら、私たちはDjangoのチュートリアルシリーズを用意していますので、そちらを参考にしてください。
Herokuとは?
Herokuは、世界中の開発者が様々な種類のWebアプリケーションを開発または構築、実行、運用できるようにするクラウド上のプラットフォームです。
これは、広く使用され、最も人気のあるクラウドコンピューティングサービスオファリングの一つであるPaaS(Platform As A Service)の下に来る。
Herokuは、学生の学習を完全にサポートしています。
そのため、有料機能とは別に、簡単に実験とデプロイメントができる無料サービスも提供しています。
Herokuは、Java、Node.js、Scala、Clojure、Python、PHP、Goなどのプログラミング言語をすべてサポートしているので、Herokuプラットフォームで簡単に作業することができます。
なぜDjangoアプリをHerokuにデプロイするのか?
Python で Django のようなプログラミング言語やフレームワークを学ぶときはいつも、学習やデバッグには十分なローカルのコンピュータであらゆる種類の開発作業を行います。
しかし、開発作業を終えて、プロジェクトが実際のユーザによって使用される準備ができた後、プロジェクトやアプリケーションをいくつかのウェブサーバにデプロイすることが必要になります。
そうすれば、すべての潜在的なユーザーがアクセスできるようになります。
最も重要なことは、それがインターネット上でライブであり、人々が簡単にリアルタイムで動作しているものを見ることができるので、私たちの開発作業に関して非常に深く、肯定的な影響を作成することです。
この記事もチェック:Djangoで入力フォームを作ってユーザーの入力を受け付ける方法
HerokuでDjangoアプリをデプロイする手順
以下は、Heroku 上での Django アプリのデプロイプロセスに関わる 5 つの主要なステップです。
1. Heroku にデプロイしたい Django アプリの作成
すでに Django プロジェクト (Web アプリや Web サイト) を作成し、開発しているならば、それは素晴らしいことです。
このステップはスキップできます。
Django プロジェクトが手元にないけれども、Heroku 上での Django アプリのデプロイ手順を学びたい人向けです。
以下のコマンドを実行して、新しい Django プロジェクトとアプリを作成することができます。
> python -m pip install Django
|
> django-admin startproject <your_project_name> |
> python manage.py migrate |
> python manage.py runserver |
結果は以下の通りです。
Django version 3.2.6, using settings '<your_project_name>.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. |
注意: デプロイメントのプロセスを進める前に、ローカルサーバ (http://127.0.0.1:8000/) で Django アプリを動かしてみることを忘れないでください。
この記事もチェック:Python Djangoのアプリ構成とプロジェクト構成を分かりやすく解説
2. GitHub で Django アプリのリポジトリを作成する
GitHub のアカウントにログインし、Django プロジェクトのすべてのフォルダ、ファイル、コードを格納するための全く新しいレポ (リポジトリ) を作成します。
また、現在の Django プロジェクトのディレクトリを git repo にして、リモートの GitHub リポジトリに接続します。
そして、すべてをステージングし、コミットし、最後にリモート GitHub リポジトリにすべてをプッシュします。
この記事もチェック:Djangoでログイン認証機能を自作する方法を分かりやすく解説する
3. Django プロジェクトのファイルに以下の変更を加えてください。
- Django プロジェクトのディレクトリに Procfile というファイル名で新しいファイルを作成し、以下のコードをそこにコピーしてください。
web: gunicorn <your_project_name>.wsgi --log-file - |
- 以下の依存関係をコマンドラインインタフェースから、あるいは仮想環境からインス トールします。
> python -m pip install gunicorn
|
> python -m pip install whitenoise
|
- プロジェクトのサブフォルダ内の
settings.py
ファイルを修正して、許可するホストを追加し、DEBUG
パラメータをFalse
に設定します。
DEBUG = False
ALLOWED_HOSTS = [ '127.0.0.1' , '<site_name>.herokuapp.com' ]
|
-
settings.py
ファイルを再度修正し、MIDDLEWARE
コードを whitenoise 依存に更新します。
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware' ,
# Added Following One Line Of Code
'whitenoise.middleware.WhiteNoiseMiddleware' ,
'django.contrib.sessions.middleware.SessionMiddleware' ,
'django.middleware.common.CommonMiddleware' ,
'django.middleware.csrf.CsrfViewMiddleware' ,
'django.contrib.auth.middleware.AuthenticationMiddleware' ,
'django.contrib.messages.middleware.MessageMiddleware' ,
'django.middleware.clickjacking.XFrameOptionsMiddleware' ,
] |
- メディアと静的ファイルのスムーズな動作のために必要な、プロジェクトのサブフォルダ内の
settings.py
ファイルを、以下の方法で更新します。
urlpatterns = [
path( 'admin/' , admin.site.urls),
path('', include( "home.urls" )),
# Added Following Two Lines Of Code
url(r '^media/(?P<path>.*)$' , serve,{ 'document_root' : settings.MEDIA_ROOT}),
url(r '^static/(?P<path>.*)$' , serve,{ 'document_root' : settings.STATIC_ROOT}),
] |
- 以下のコマンドを使用して、Django プロジェクトの様々な依存関係と、Django アプリのスムーズなデプロイメントと動作に必要なそのバージョンについて、サーバに伝える
requirements.txt
ファイルを作成します。
> python -m pip freeze > requirements.txt
|
NOTE: ステージ、コミット、そしてリモート (GitHub リポジトリ) への変更点のプッシュを忘れないでください。
4. Herokuプラットフォームで無料アカウントを作成する
www.heroku.com にアクセスし、以下の必須項目を入力するだけで、無料のHerokuアカウントを作成することができます。
- 名前
- 姓
- 電子メールアドレス
- 役割
- 主な開発言語
すでにHerokuのアカウントをお持ちの方は、デフォルトのWebブラウザでログインするだけで、新しいアカウントを作成する必要はありません。
5. Herokuダッシュボードで新規Herokuアプリを作成・設定する
以下は、新しいHerokuアプリを作成し、設定する手順です。
- Heroku Dashboardに移動し、Newボタンをクリックします。
- ドロップダウンから新しいアプリを作成するオプションを選択します。
- 使用可能な適切なアプリ名を選択します。
- App Settings pannelに移動し、BuildpacksセクションでPythonを選択します。
- App Deploy pannel に切り替え、Deployment method セクションで GitHub アカウントを接続します。
- Django プロジェクトを含む GitHub リポジトリを検索し、選択します。
- 手動デプロイセクションで、通常 master/main となる git ブランチを選択し、デプロイブランチボタンをクリックします。
万歳! これで、Heroku サーバ上で Django アプリや Web サイトを正常に起動することができました。
まとめ
この記事では、Heroku プラットフォームについて、デプロイの必要性、Heroku プラットフォームに Django アプリや Web サイトをデプロイする手順について学びました。
デプロイプロセスを理解し、 Heroku に Django アプリや Web サイトをデプロイすることに興奮したことでしょう。
お読みいただきありがとうございます。
Pythonに関するより多くの素晴らしい学習コンテンツに私たちと一緒にご期待ください。