Djangoチュートリアル

Djangoチュートリアルのアプリ作成のメモを書いていきます

 $  py -m django --version

#インストールされている場合
>> 3.0.7

#インストールされていない場合
>> "No module named django"

まずDjangoがinstallされているかの確認を行う

1.プロジェクトの作成

$ django-admin startproject mysite

プロジェクトの作成を行う
→mysiteフォルダーが作成されていればOK
フォルダー構成

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

まず各pyの紹介から
・manage.py
→Djangoプロジェクトに対する様々な操作を行うためのコマンドラインで役にたつもの。

・__init__.py
→ディレクトリが Python パッケージであることを Python に知らせるための空のファイル。

・settings.py
→Django プロジェクトの設定ファイル。

・urls.py
→ Django サイトにおける「目次」に相当するらしい。

・asgi.py
→プロジェクトを提供する ASGI 互換 Web サーバーのエントリポイント

・wsgi.py
→プロジェクトをサーブするためのWSGI互換Webサーバーとのエントリーポイント

asgiとwsgiは調べたけど今は良くわからないから,ここではパスする

2.開発用サーバー

$ py manage.py runserver

>> Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
November 03, 2020 - 00:33:01
Django version 3.0.7, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

プロジェクトの起動を試みる。
起動成功!!
因みにポート変更したい場合は下記のコマンド

py manage.py runserver 8080

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

py manage.py startapp polls
polls/
    __init__.py
    admin.py
    apps.py
    migrations/
    __init__.py
    models.py
    tests.py
    views.py

できたフォルダーの中身はこんな感じになっている↑↑↑

4.Viewの作成

まずここのViewとはDjangoはMTVモデルを採用していて
このMTVモデルって言うのは
M → Model(データベースに格納されているデータ)
T → Template(テンプレ―トファイルによって定義されたそれぞれのページのデザイン)
V → View(どのページに表示させるかを決定する処理)
それがここのViewを示す

MTVの処理の流れは
ユーザー → Django(View)→ Django(Model)→ Django(Template)
→ ユーザー 
サーバーにアクセス→データベースからデータを探す→探し出したデータにメディアを加える→ブラウザで表示
的な感じ!!!

polls/views.py
from django.http import HttpResponse


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

indexという関数名で引数にrequestを受け取り、「Hello,World.」というHTTPレスポンスを返すという流れ
HTTPレスポンスとは、ページなどに関するサーバーからの返信
views.pyと、URLを紐付けする必要がある

polls/urls.py
# pathを使えるようにする為の記述
from django.urls import path

# . 相対パスで読み込むモジュール
# viewsを使えるように
from . import views

# views.pyの中にある,index関数をpathに追加する
urlpatterns = [
   path('', views.index, name='index'),
]
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),
]

include()関数は他のURLconfへ参照する事ができる

$ py manage.py runserver

※サーバーを動かした際に,ログイン先は
http://localhost:8000/
● http://localhost:8000/polls/

・path() 引数: route
→route は URL パターンを含む文字列です。リクエストを処理するとき、Django は urlpatterns のはじめのパターンから開始し、リストを順に下に見ていきます。要求された URL を一致するものを見つけるまで各パターンと比較する

・path() 引数: view
→jango がマッチする正規表現を見つけると、 Django は指定されたビュー関数を呼び出す。

・path() 引数: kwargs
→任意のキーワード引数を辞書として対象のビューに渡す。

・path() 引数: name
→URL に名前付けをしておけば Django のどこからでも明確に参照できる。

いいなと思ったら応援しよう!