見出し画像

【Django公式サイト チュートリアル(1)】はじめての Django アプリ作成。

こんにちは(@t_kun_kamakiri

今日からDjangoの公式サイトにあるチュートリアルを見ながら学習を進めたいと思います。

基本的には公式ドキュメントを見れば良いのですが、ここでは勉強ログとしてわからない点などまとめながら進めていきます。

最終的には以下のものが出来上がります。

デザインがしょぼいですが、Webで投票した数を表示してくれるアプリですね。

【作成するアプリの概要】
●ユーザが投票したり結果を表示したりできる公開用サイト
●投票項目の追加、変更、削除を行うための管理 (admin) サイト

簡単なアプリですが、Djangoをはじめて学習する上ではちょうど良い内容となっています。

僕自身がDjangoを勉強して1,2週間ほどですがチュートリアルを普通に理解することができたので、結構わかりやすく書かれていると思います。

DjangoとPythonのバージョン

djangoは既にインストールした状態からスタートしています。

PythonとDjangoのバージョンは以下のコマンドで調べることができます。

python3 --version

Python 3.6.11

python3 -m django --version

3.1

プロジェクトを作成する

まずは、プロジェクトを作成しないといけないです。

ぼくは、以下のフォルダをまず作成しました。

mkdir tut_django

今、「tut_django」ディレクトリにいます。

プロジェクトの作成には、以下のコマンドを実行します。

django-admin startproject mysite .

するとこのようにファイルがいっぱい作成されます。

画像1

ファイル構成はこんな感じですね。

tut_django/
  manage.py
  mysite/
   __init__.py
   settings.py
   urls.py
   asgi.py
   wsgi.py

公式サイトとは違って「django-admin startproject mysite .」のように最後に「.」を書きました。
これは現在のディレクトリ(tut_django)にプロジェクトのファイルを作成るするという意味です。
「.」を付けない場合は、さらに「mysite」というディレクトリを作成してその中にプロジェクトを作成することになり、無駄にディレクトリ階層が深くなるので、それを避けるためです。

それぞれのファイルの中身は追々細かく見るとして、一旦ローカルサーバーが立ち上がるか確認してみます。

開発用サーバーを立ち上げる

開発用のサーバーを立ち上げるには以下のコマンドを打ちます。

python3 manage.py runserver

http://127.0.0.1:8000/
にアクセスして以下のようなロケットの絵が出ればOKです。

画像2

開発用サーバーを遮断するのは「ctrl+c」でできます。

Polls アプリケーションをつくる

プロジェクトが作成したら、プロジェクト内にアプリを作成します。

アプリ作成のコマンドが以下です。

python3 manage.py startapp polls

「python3 manage.py startapp アプリ名」として、アプリ名には自分が設定した名前にすれば良いです。

画像3

このように「polls」の中にいっぱいファイルが作成されました。

次に、プロジェクトとアプリのつなぐ操作をします。

●まず、「polls」の中にurls.pyがないので作成します。

touch polls/urls.py

プロジェクト内に各アプリが存在しているというイメージを持っておきます。

画像5

●「mysite/urls.py」を以下のようにします。

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
   path('polls/', include('polls.urls')),
   path('admin/', admin.site.urls),
]

「'polls/'」というリクエストがあったら、include('polls.urls')を操作するという内容です。
include('polls.urls')は、「polls.urls.py」のファイルを指しています。

●「polls/urls.py」を以下のようにします。

from django.contrib import admin
from django.urls import path
from .views import hellofunc

urlpatterns = [
   path('hello/', hellofunc),
]

path('hello/', hellofunc)は、「hello」というリクエストが来たら、hellofuncという操作を行うという意味です。

hellofuncがいったいどこになるのかわからないので、場所を指定するために「from .views import hellofunc」と書いています。

そのhellofuncの操作は「polls/views.py」に書きます。

●「polls/views.py」を以下のようにします。

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def hellofunc(request):
   return HttpResponse("やっほー")

HttpResponse("やっほー")として、レスポンスを「"やっほー"」とかえすことにしました。
HttpResponseを使うためにfrom django.http import HttpResponseとしてimportしています。

再度流れを確認すると以下のようになります。

画像5

以上で、開発用サーバーを立ち上げます。

python3 manage.py runserver

http://127.0.0.1:8000/polls/hello/

とすると「polls」(プロジェクトのurls.py)から「hello」(アプリのurls.py)にアクセスして、hellofuncが操作して「"やっほー"」と出力されます。

画像6

本日は以上です。

Twitter➡@t_kun_kamakiri
ブログ➡宇宙に入ったカマキリ(物理ブログ)
ココナラ➡物理の質問サポートサービス


この記事が気に入ったらサポートをしてみませんか?