Djangoアプリを作る (初期設定)
- 2021.01.10
- Python

副業に向けた勉強としてDjangoのアプリを作ろうとししています。設定は基本的にサイトを見れば分かりますが、初期設定がそれなりに面倒だったので、自分で使うためにまとめておきます。
インストール
Pythonはすでにインストールされているものとして、下記のコマンドでDjangoをインストールします。
1 |
python -m pip install Django |
プロジェクト作成
まずプロジェクトを作成します。先にプロジェクトを保存したいフォルダを作成しておき、そこにcdで移動した上で、下記のコマンドを実行します。
1 |
django-admin startproject mysite |
mysiteの部分は自分のアプリ名に応じて変更します。これを実行することで、中に指定したアプリ名のフォルダが作成され、manage.pyなどが生成されます。
サーバー起動確認
プロジェクトの確認のためディレクトリを移動してrunserverでサーバを起動します。
1 2 |
cd mysite python manage.py runserver |
その後、ブラウザでhttp://127.0.0.1:8000/にアクセスすると、下記のように表示されます。
アプリ作成
上記でプロジェクトを作成しましたが、これにアプリを追加します。私は1つだけしか作りませんが、大規模なシステムなら機能ごとに分ければ良さそうです。下のコマンドでアプリが作れます。今回はチュートリアルの通りpollsというアプリ名としています。
1 |
python manage.py startapp polls |
これでpollsという名前のフォルダが作られ、その中にpythonのファイルやフォルダが作成されます。
ビュー作成
作成したフォルダの中にあるviews.pyの中身を下記のように書き換えてみます。ぱっと見て何となく察せられると思いますが、これでブラウザにHello, World!と表示されるようになります。
1 2 3 4 |
from django.http import HttpResponse def index (request): return HttpResponse("Hello, World!") |
urlsファイル作成
urlとファイルを結びつけるためにアプリフォルダの中(今回はpolls)にurls.pyというファイルを作成し、中身を下記にして保存します。
1 2 3 4 5 6 7 |
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] |
更に、プロジェクトフォルダの中にあるurls.pyのurlpatternsに一行追加します。
1 2 3 4 5 6 7 |
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ] |
settingsファイル修正
プロジェクトフォルダのsettings.pyファイルを修正していきます。まずINSTALLED_APPSに作成したアプリのクラスを追加します。
1 2 3 4 5 6 7 8 9 |
INSTALLED_APPS = [ 'polls.apps.MainConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] |
更に、言語とタイムゾーンを変更します。
1 2 3 |
LANGUAGE_CODE = 'ja' TIME_ZONE = 'Asia/Tokyo' |
表示確認
python manage.py runserverを起動した後で、http://127.0.0.1:8000/pollsにアクセスすると、ブラウザにHello, World!と表示されます。勿論、views.pyの文字を変えれば表示も変わります。
これで、最低限の設定は出来ましたが、まだデータベースの設定はしていませんし、実際の運用ではhtml、css、javascriptファイルも準備する必要があります。それはまた別途設定がいるなるので、後でまとめたいと思います。
-
前の記事
UnityとRaspberry PiをROSで繋ぐ 2020.12.19
-
次の記事
Djangoアプリを作る(html, css,カスタムフィルタ) 2021.01.10