目次
こんにちは、テケ コマルです。私は最近、Django フレームワークに初めて触れることになりました。これまでの経験から、Python を使ったウェブ開発に興味があり、Django の持つ多くの利点に惹かれて学び始めました。
このブログでは、私が Django を使い始めたばかりの初心者としての視点から、基本的な使い方や学習の過程で得た気づき、直面した課題などを共有していきます。Django に関する情報やヒントを一緒に学びながら、初心者の視点で役立つ情報を提供できればと思っています。もしも経験豊富な方がいれば、ぜひアドバイスをいただけると嬉しいです。
Django とは?
Django は高水準の Python フレームワークであり、Google で検索するとそれに関連する多くの情報が見つかります。個人的には、Django は非常にシンプルでありながら、非常に強力なフレームワークの一つであると考えています。
Django が非常に強力であると私が感じる理由のいくつかを次に示します。
まずセキュリティについて言えば、Django はセキュリティを重視しており、SQL インジェクションやクロスサイトリクエストフォージェリ(CSRF)に対する保護など、多くのセキュリティ機能がデフォルトで組み込まれています。
また、デフォルトの管理コンソールが用意されており、初心者でも簡単に学習を始めることができるので私は強力なフレームワークだと感じています。
実際にやってみましょう!!!
# まずディレクトリを作成する
mkdir MyFirstDjango
cd MyFirstDjango
# ryeを使用した仮想環境の起動
rye init # srcフォルダは不要なので削除します
rye add django
source .venv/bin/activate
# Djangoプロジェクトの開始
django-admin startproject myproject
cd myproject
# デフォルトのデータベースを移行する
rye run python manage.py migrate
# サーバーを実行する
rye run python manage.py runserver
これで、Django のデフォルト設定は完了です。実際に何が起こったのか見ていきましょう。
ディレクトリ構造はこのように形成されます。
まずデータベースから始めましょう。
デフォルトでは、Django は Sqlite3 データベースを使用します。ただし、settings.py ファイルを変更することでこれを変更できます。私自身、実際に MySQL や PostgreSQL を使う場合の設定に苦労したので、これらについてはブログの後半で説明します。
ここで、2 つの非常に重要なファイル、settings.py と urls.py を見てみましょう。
urls.py ファイルには、いくつかの URL パターンがデフォルトですでに追加されていることがわかります。
urlpatterns = [
path('admin/', admin.site.urls),
]
これは、URL に追加する必要があるパスです。たとえば、以下の URL http://127.0.0.1:8000/admin/ を実行すると、ログイン ページが表示されます。
URL パスを変更する場合は、admin を他の単語に置き換えるだけです。例えば、
urlpatterns = [
path('users/', admin.site.urls),
]
それでは、次に settings.py ファイルについて説明しましょう。
データベースの設定が表示されます。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
MySQL を使う場合は以下の設定になります。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test', #データベース名
'USER': 'root', #ユーザー名
'PASSWORD': 'test', #パースワード
'HOST': 'localhost', #データベースホストに設定する。
'PORT': '3306' #デフォルトの MySQl port.
}
}
PostgreSQL を使う場合は以下の設定になります。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'test',
'USER': 'root',
'PASSWORD': 'test',
'HOST': 'localhost', # データベースホストに設定する。
'PORT': '5432', # デフォルトの PostgreSQL port.
}
}
MTV アーキテクチャ (Model-Template-View)
Django がどのように動作するかを最初から最後まで見てみましょう。
urls.py ファイルを見るとわかるように、URL パスが追加されています。サーバーを起動したら、urls.py ファイルに追加された URL パスを渡す必要があります。
ユーザーは URL を入力します。たとえば、この場合はパスを http://127.0.0.1:8000/admin/ として渡す必要があります。
リクエストが生成されると、urls.py にアクセスし、正しい URL が入力されているかどうかを検索し、一致する場合は関連するビューを検索します。
urls.py ファイルに URL が記載されていない場合は、以下のように 404 エラーがスローされます。
View は実際のビジネス ロジックが記述される場所です。Model はデータベース テーブルが設定される場所です。Template は HTML ページが保存される場所です。
スーパーユーザーの作成
スーパーユーザーを作成するには、以下のコマンドを実行します。
ユーザー名とパスワードを使用して管理者にログインします。
ログインに成功すると、以下のようなページが表示されます。
このブログで説明したように、Django のモデル テンプレート ビュー (MTV) アーキテクチャと強力なデフォルトの管理インターフェイスは、Web アプリケーションを構築するための強固な基盤を提供します。これらの基本を理解することで、Django を使用した効率的でスケーラブルなプロジェクトの開発に着手できます。