#はじめに
Django初体験の自分が理解できる言葉でひたすらメモしています。
そのためDjangoの熟練度によっては理解しにくい人もいるかと思います、ご了承ください。
わかりにくい箇所は私の大好きな二郎系ラーメンに例えて説明します。
自分が例えて楽しく理解できるものにしたため、二郎系がわからない人はすみません。
知らなくてもあまり支障はないと思いますが笑
※自身が文字を見ただけでは理解しにくいと感じた用語のみメモしているため、初心者がこの記事1つで用語を網羅できるというものではありません、ご了承ください。
#用語
###startproject(二郎系ラーメン屋OPEN!)
djangoグッズを呼び出すための呪文。
以下のようにターミナルを使って呼び出すことができます。
$django-admin startproject jirou #最後はフォルダ名、ここでは便宜上jirouとします。
$python3 manage.py runserver #開発サーバ起動
(省略)
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
ブラウザでhttp://127.0.0.1:8000/
と打ち込み、「The install worked successfully! Congratulations!」と出てきたら完成、お店ができました。
###manage.py
・ターミナルでアプリ作成や、開発サーバを開く時に処理を行う場所
(例)
python manage.py runserver #開発サーバ起動
###_init_py
・「Python使ってますよ!」とPythonに宣言するだけのファイルであり、中身は空っぽ。
・特に意味について深く考える必要はなさげ。
###urls.py(注文受付)
・サイトごとのURLを保存しておく場所。
・複数アプリになる場合に整理できて便利。
流れ
1.URLのリクエストが来る。
「二郎系300gニンニクマシマシください!」
2.指定のURLを表示するようviews.py
へ情報を流す。
「二郎系300gニンニクマシマシ入りましたー!」
######urlpatterns = [= [path('jirou/', oishii),]
・リクエストを受けて指示を出すもの。
jirou
ていう注文が入ると、oishii
に書かれたデータを表示する指示を出す。
ではoishii
というデータはどこにどんなふうに書くのかというとこちら
from .views import oishii
urlpatterns = [
path('jirou/', oishii)
]
ここでviews.py
からoishii
を読み込むよーて宣言しといて、、、
from django.http import HttpResponse
def oishii(request):
returnobject=HttpResponse('jirou')
return HttpResponse('おいしい!')
request
は要求を受け取ったということを視覚的にわかりやすくするものであり、基本カッコ内はこれを入れる。
jirou
という注文を前述のhttp://127.0.0.1:8000/
の後に打ち込むと、、、
上手にできました!!!
全体の流れは以下の通り。
1.http://127.0.0.1:8000/jirou
によって、urls.py
が、「oishii
を読み込め」と注文。
2.views.py
に書かれたoishii
を読み込む。
3.return HttpResponse('おいしい!')
によって、「おいしい!」と出力するようurls.py
へ連絡を返す。
4.「おいしい!」と出力される。
######urlpatterns = [= [path('jirou/',この箇所の特殊な書き方
),]
・include(◯◯◯.urls)
で、そのフォルダ(アプリ)内のurls.pyを引っ張ってくる。
その際importを以下のように指定。
from django.urls import path,include #末尾にincludeを追加。
###models.py(冷蔵庫などの具材)
・入力フォームやクラスなどを整理しておく場所(ニンニク置き場、油置き場等)。
###views.py(厨房)
・送られた要求に対して、適切なページを表示して返す処理を行う場所。
・models.pyから入力フォームやクラスなどを受け取る(ニンニクマシマシ取ってくれー)
具体的には、
・HTTPリクエストを受ける。
(urls.py)「二郎系300gニンニクマシマシ入りましたー!」
・HTTPレスポンスを返す。
(views.py)「ヘイかしこまり!」
といった仕事を行っている。
・受けた注文によって持ってくるhtmlが異なる(300gはa.html
、400gはb.html
など)。
###csrf(クロスサイトリクエストフォージェリ)
・直訳すると、「サイトをまたいで偽造のリクエストを送信する」こと。
・つまり自身が公開するサイトに、悪人が変な処理を促す恐れがあるということ。
・Djangoでは、HTMLに{csrf_token}
という記述をすることで対策できる。
###'DIRS': [BASE_DIR,'templates'],
・htmlファイルは'templates'に入ってますよ!と宣言している。
###renderメソッド
使用例
def index(request):
return render(request, 'A/index.html')
・Aのindex.htmlを返す。
・renderは「与える」とか「提供する」という意味。
#最後に
この記事を読んだdjango初心者の人が、同じように理解に役立ててくれれば嬉しいです!
今後も理解しにくい用語が出てくる度に更新していきます!
##おまけ
図解でめちゃ理解しやすかったサイト
https://djangobrothers.com/tutorials/memo_app/mtv/
デプロイで沼からハマってた私を救ってくれた神サイト
http://makimakimakino.hatenablog.com/entry/2019/01/13/200729