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 のような運用サーバの設定をいじらなくても良いようにするためのものです。
このサーバは開発中の利用だけを考えて作られています。絶対に運用環境では 使わないでください。
そういうことか
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終わり