理由
仕事をしていてDjangoのライブラリに関連するものが多く、一度触ってみたいと思ったため
目的
- アプリケーションの作成の流れを理解する
- 使うことができるライブラリを理解する
参考文献
はじめての Django アプリ作成、その 1 | Django ドキュメント | Django
実践
djangoのプロジェクトのスタート
django-admin startproject mysite
上記コードを実行するとdjango用のプロジェクトをmysite
という名前で作成してくれる。
プロジェクトの中身
そのプロジェクト構造は以下のようになっている。
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
*外側のmysiteは重要ではないため好きな名前でよい
-
manage.py プロジェクトの様々な操作を行うやつ
-
内側のmysiteはPythonパッケージ
-
mysite/settings.py: Django プロジェクトの設定ファイル
-
mysite/urls.py: Django プロジェクトの URL 宣言(コントローラーみたいなやつ?)
-
mysite/asgi.py: プロジェクトを提供する ASGI 互換 Web サーバーのエントリポイント
エントリポイント:プログラムを実行するうえで、プログラムやサブルーチンの実行を開始する場所のこと(main.pyみたいなやつ) -
mysite/wsgi.py: Webサーバー
開発用サーバー
manage.pyのあるディレクトリ、つまりは外側のmysiteで上記コードを実行すると立ち上がる。
python manage.py runserver
サーバーのポートを変えたい場合は下記のようにする。
python manage.py runserver 8080
pollsアプリケーション
作成準備
manage.pyと同じ階層で下記のコマンドを実行
python manage.py startapp polls
pollsというディレクトリが自動生成される。中身は下記のようになっている。
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
polls
の部分は任意。startappが大事。
urls.pyを追加し、urls.pyとviews.pyを作成する。
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
ルートURLconf
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
- urlpatternsのリスト内にurlconfを追加。
- djangoではinclude()に遭遇するとそのポイントまでに一致したurlのところまでを切り取る。
- 次の処理のために残りの文字列をインクルードされたURLconfへ渡す。
http://polls/hogehoge/
の場合は
http://polls/(ここまで切り落とす)
,hogehoge/(ここまでをpolls.urlsへ渡す)
実行結果の確認
下記のコマンドで実行結果を確認する
$ python manage.py runserver
http://localhost:8000/polls/ にアクセスして、
「Hello, world.You`re at the polls index.」と表示されていれば成功