kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

Djangoチュートリアル(1)

はじめての Django アプリ作成、その1から見ていく
その7まであるからまずまずのボリューム

なにはともあれDjangoをインストール
ただしフォルダを掘って仮想環境作ってから
バージョンは本に合わせて1.11.7で

$ mkdir django-tutorial
$ cd django-tutorial/
$ python3.6 -m venv venv
$ source venv/bin/activate
$ pip install django==1.11.7

プロジェクト作成
プロジェクトとは何なのか

プロジェクトとは、あるウェブサイト向けに設定とアプリケーションを集めたものです。一つのプロジェクトには複数のアプリケーションを入れられ ます。また、一つのアプリケーションは複数のプロジェクトで使えます。

了解

$ django-admin startproject mysite

この時点で何かは動かせるようだ
これは何なのか

$ cd mysite
$ python manage.py runserver

migrationしてねっていうメッセージが出るがここでは無視でよいらしい

これで、Django 開発サーバを起動しました。 Django 開発サーバは Python だけで書かれた軽量な Web サーバです。このサーバは、開発を迅速に行い、運用に適した状態になるまで Apache のような運用サーバの設定をいじらなくても良いようにするためのものです。
このサーバは開発中の利用だけを考えて作られています。絶対に運用環境では 使わないでください。

そういうことか

開発サーバーは必要に応じてリクエストごとにPythonコードを自動的にリロードします。

Flaskでもそういうことやってたな

ここからが最初のアプリ作成
じゃあさっき表示されたのは何か
動作確認用?

You're seeing this message because you have DEBUG = True in your Django settings file and you haven't configured any URLs. Get to work!

URLを構成するまでは表示されるよってことかな
続ける

mysiteディレクトリに降りてアプリ作成

$ cd mysite
$ python manage.py startapp polls

polls/views.pyを修正

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, World. You're at the polls index.")

polls/urls.pyを新規作成

from django.conf.urls import url

from . import views
urlpatterns = [
    url(r'^$', views.index, name='index')
]

URLのホスト名以降なんていうんだっけが空っぽだったらviews.indexを呼べと言っているんだろうか
nameはなにかの目印にする きっと

mysite/urls.py は既存のファイルに追記

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^polls/', include('polls.urls')), # ここ
    url(r'^admin/', admin.site.urls)
]

ここが根っこでアプリはinclude()でつなげていく感じなのか
URLがhttp://.../polls/だったらviews.indexなわけだ
nameはURLに名前をつけるもの
URLを変えても影響が広がらないようにできる

ではpython manage.py runserverしてhttp://127.0.0.1:8000/polls/にアクセス
http://127.0.0.1:8000/pollsでも表示されたけど
http://127.0.0.1:8000/polls/aaaはダメ
ついでにhttp://127.0.0.1:8000/admin/にアクセスしてみるとなにやらログイン画面が

チュートリアル1終わり