はじめに
Djangoに触れる機会があったので、プロジェクトの作成から画面の表示までまとめてみました。
Djangoとは
PythonでWebアプリケーションを開発するためのフレームワーク。
プロジェクトの作成から画面の表示まで
Djangoのインストール
# インストール
python3 -m pip install Django
# インストールされたか確認
python -m django --version
プロジェクトの作成
django-admin startproject ${プロジェクト名}
or
python3 -m django startproject ${プロジェクト名}
開発サーバを立ち上げてみる
以下のコマンドを実行するとサーバが立ち上がる。
「http://127.0.0.1:8000/」にアクセスするとサーバの画面が表示される。
# デフォルトのポートで起動する
python3 manage.py runserver
# ポートを指定して起動する
python manage.py runserver ${ポート番号}
アプリケーションを作成
# プロジェクトのディレクトリへ移動
cd ${プロジェクト名}
# アプリケーションを作成
python3 manage.py startapp ${アプリケーション名}
プロジェクトからアプリケーションを認識できるようにする
「${プロジェクト名}/settings.py」を以下のように書き換える。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'${アプリケーション名}.apps.${apps内に記載されているクラス名}' ←追記
]
Viewを作成
「${アプリケーション名}/views.py」を以下のように書き換える。
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello World")
ルーティングの追加
「${プロジェクト名}/urls.py」を以下のように書き換える。
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path("${パス}/", include("アプリケーション名.urls")),
path('admin/', admin.site.urls),
]
アプリケーションにアクセスする
「http://127.0.0.1:8000/${パス}/」にアクセスすることでアプリケーションにアクセスできる。
その他
タイムゾーンの変更
「${プロジェクト名}/settings.py」を以下のように書き換える。
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
↓
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
MySQLの設定を行う
以下のコマンドで接続に必要なドライバーをインストールする。
python3 -m pip install pymysql
「${プロジェクト名}/init.py」を以下のように書き換える。
import pymysql
pymysql.install_as_MySQLdb()
「${プロジェクト名}/settings.py」を以下のように書き換える。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
↓
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '${DBのホスト名}'',
'PORT': '${DBのポート}',
'NAME': '${DB名}',
'USER': 'DBのユーザ名',
'PASSWORD': 'DBのユーザのパスワード',
}
}
参考
https://docs.djangoproject.com/ja/4.2/topics/install/#installing-official-release
https://docs.djangoproject.com/ja/4.2/intro/tutorial01/