初めてのDjango環境構築(Meta Backend Developper Certificate)
最近Coursera
のMeta Backend Developper Certificate
と言うプログラムに参加しているのですが、そこでDjangoを使ってバックエンドについて学んでいます。ここでは自分のメモに近いのですが、Djangoとして最低限のWebで何か表示できるところまでをまとめています。
なお、普段はFlutterでの開発がメインであり、バックエンドは詳しくありません。ご了承ください。
Courseraとは
学習プラットフォームです。大学の講義などを受講できるのですが、GoogleやMeta、IBMなど企業によるものもあり、コースを終了すると修了証がもらえます。なお、内容は全部英語ですが、適宜AI使って対処しています。
Coursera及びMeta Backend Developper Certificateについてはこちらです。
Djangoとは
私は長いこと「ディージャンゴ」と読んでいましたが、「ジャンゴ」が正解なようです。
DjangoはPythonのフルスタックフレームワークです。DjangoだけでWebアプリケーションが作れます。こんなことができます。
- Webページ作成
- 管理画面(コーディングせずとも備わっています)
- ログイン画面(コーディングせずとも備わっています)
- DB用のModel作成
例えばコース内で作成したLittle Lemon Restaurantと言うレストランのアプリでは、APIを使わずに予約などを受け付けDBを更新。それを管理画面で確認するまたはDBを操作する、といったことができます。
全てをDjango内で完結できる、と言うのは感心しました。
この記事でのゴール
すごく地味で申し訳ないのですが、記事が長くなりました。とりあえずhogehogeとか文字をブラウザ上で表示できるところまでをゴールにします。
私の作業環境
M1Pro:MacbookPro(2021)
python:Python3.12(Homebrew経由でインストール)
Djangoで環境構築とサーバー起動
個人的に一番厄介なのが環境構築です。PythonのウインストールはMacの場合直接インストールしている場合とhomebrew経由でのインストールがあります。
私の環境はhomebrew経由でしたが、レッスンの中では直接インストールしたものを使用している前提でしたので、自分で悪戦苦闘しながら対処しました。
virtualenvで仮想環境構築
まず仮想環境を構築するためにvirtualenv(venv)をインストールする。
pip3 install virtualenv
homebrewでインストールしたPythonを使っているなら、下記のコマンドです。
brew install virtualenv
次に設定仮想環境を構築します。
virtualenv {任意のディレクトリ名}
作った仮想環境を適用します。
source {任意のディレクトリ名}/bin/activate
なお、仮想環境を終了する場合はこの通りです。
diactivate
Djangoのプロジェクト作成
準備が整ったらprojectとappを作成します。
ここでは一つのprojectと一つのappを作成して基本的な構造を構築していきます。
まずは仮想環境下の状態でDjangoをインストールします。
pip3 install django
次に、Djangoのprojectを作成します。
django-admin startproject {任意のproject名}
projectができたら、projectディレクトリに移動したのち、appを作成します。
cd {任意のproject名}
python3 manage.py staratapp {任意のapp名}
DBの設定をします。なくても良いかもしれません。
python3 manage.py migration
いよいよサーバー起動です。
python3 manage.py runserver
http://127.0.0.1:8000/
とローカル用のパスがターミナル上に表示されます。
これをクリックすると、ブラウザ上で次の画面が表示されると思います。
ここまでで一旦Djangoの起動に成功です。Flutteと比べるとterminalも結構触れるし抵抗がありましたが、何度かやっていると慣れていきました。
Djangoでルーティング
次に画面を表示するためのルーティングを行います。
ゴールはこの画面表示
app内の実装
app内のviews.pyにメソッドを書きます。ここでは、該当のpathの際にHtttpのResponseとしてhogehogeを表示する、と言うことです。
from django.urls import HttpResponse
def home(response):
return HttpResponse('hogehoge')
app内にurls.pyを作ります。ルーティングを行います。
from django.urls import path
from . import views # 同じディレクトリに存在するmoduleなのでfrom .
urlpatterns = [
path('', views.home, name="home"),
]
project内の実装
project内のurls.pyにあるurlpattersに、app.urlsを追加します。
これでpathが''の場合、つまりURLの最後がadmin/
でない限り、urlpatternsとしては、app内のurls.pyを参照するよ、と言うことになります。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('app.urls')), # 追加
]
project内のsettings.pyのINSTALLED_APPSにappの情報を追加します。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp.apps.MyappConfig', # 追加
]
サーバー起動
最後に親のprojectでコマンドを叩きserverを起動。アクセスしてUIを確認します。
python manage.py runserver
出でくるlocalhostのリンクをクリックすれば、ゴールの画面が表示されます。
まとめ
長くて集中力切れました。。
この記事を見ている人は、どちらかというとDjangoでの最初の立ち上げに苦戦している人とかかなと思います。私の記事で理解して作業捗る、と言うほどのことにはならないと思いますが、つまづいている中でちょっとしたヒントとかにつながれば良いかなと思います。
Discussion