$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ニャーDjango
Search
alice
May 10, 2023
0
280
ニャーDjango
alice
May 10, 2023
Tweet
Share
More Decks by alice
See All by alice
職場でショートカットキーの 勉強会をやってみたはなし
alice37308108
0
63
取引先がインボイスの登録事業者に なっているかAPIを使って調べてみた (GAS編)/invoice_gas001
alice37308108
0
1.1k
ノンプロ研 Power Query講座受講メモ②
alice37308108
0
210
ノンプロ研 Power Query講座受講メモ①
alice37308108
0
800
はじめてのRPA
alice37308108
0
2.2k
Featured
See All Featured
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
How to build a perfect <img>
jonoalderson
0
4.7k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
170
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
0
950
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
27
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
980
Color Theory Basics | Prateek | Gurzu
gurzu
0
150
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
89
Optimising Largest Contentful Paint
csswizardry
37
3.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Transcript
ニャーDjango① ざっくりDjango
おことわり そんなにDjangoにくわしくないです まだまだはじめたばっかりです。 ローカルでしか使ったことないです。。 たぶん違っていることがたくさんあると思います。。。
Djangoとは ・Pythonで書かれたWebアプリケーションフレームワーク ・MTVというアーキテクチャを採用していて、Model、Template、Viewの3つの部分に分かれ ている ・多くのWebアプリケーションで利用されており、開発効率を高めるための多数のツールや 機能を提供している Modelニャー Templateニャー viewニャー
MTVフレームワーク Model-Template-Viewの略で、アプリケーションを3つの部分に分ける Modelニャー アプリケーションのデータ 構造を定義するニャー。 データベースとのやり取 りも担当するニャー。 Templateニャー 表示するHTMLページを 作成するニャー。
デザインやレイアウトも 担当する担当するニャー。 Viewニャー リクエストを受け取って、Model とTemplateを組み合わせて レスポンスを生成するニャー。
MTVフレームワーク Model-Template-Viewの略で、アプリケーションを3つの部分に分ける Modelニャー Templateニャー Viewニャー ニャーたちがそれぞれ独立して開発できるから、大規模なアプリケーション でも、開発がしやすくて保守性も高い
Modelニャー Templateニャー Viewニャー Djangoの(とてもざっくりとした)全体像 せっかくなのでニャーを増やしてみた URLディスパッチャーニャー ブラウザからのリクエス トされたURLに対応する View(ビュー)を探すため の仕組みニャー。
Formニャー ユーザーからの入力を受け取り、 その入力データをバリデーション してからViewに渡すための仕組 みニャー。
Djangoの(とてもざっくりとした)全体像 1 ブラウザからのリクエスト(HTTPリクエスト)を受け取る。 2 URLディスパッチャーが、リクエストされたURLに対応するView(ビュー)を探す。 3 Viewが、受け取ったリクエストを解析し、適切なModel(モデル)を操作するための 処理を実行する。(この時、Formのバリデーションも行われることがある) 4 バリデーションに成功した場合、ViewがFormから受け取ったデータを用いてModelを更新する。
5 Viewでの処理に必要なデータをModelがデータベースから取得する 6 Viewが、Modelから取得したデータをTemplate(テンプレート)に渡し、HTMLページを生成する。 7 生成されたHTMLページをHTTPレスポンスとしてブラウザに返す。
Djangoの(とてもざっくりとした)全体像 ニャーたちのフォーメーション!! ブラウザから リクエストを送る ニャー Modelニャー Templateニャー Viewニャー URLディスパッチャーニャー Formニャー
Djangoの(とてもざっくりとした)全体像 1 ブラウザからのリクエスト(HTTPリクエスト)を受け取る。 日記を書くニャー! http://127.0.0.1:8000/create_diary/ を リクエスト!!
Djangoの(とてもざっくりとした)全体像 2 URLディスパッチャーが、リクエストされたURLに対応するView(ビュー)を探す。 URLディスパッチャーニャー http://127.0.0.1:8000/create_diary/ CreateMealViewだニャー Viewニャー ぱす
Djangoの(とてもざっくりとした)全体像 3 Viewが、受け取ったリクエストを解析し、適切なModel(モデル)を操作するための 処理を実行する。 Viewニャー Postリクエストが来た ニャー ちぇっくよろしく Formニャー
Djangoの(とてもざっくりとした)全体像 3 (この時、Formのバリデーションも行われることがある) Formニャー バリデーションをするニャー フォームに入力された情報を確認して、 正しいデータであるかどうかをチェック するニャー フォームに不適切な情報が入力された 場合には、エラーメッセージを表示して、
再度正しい情報を入力するように 促すニャー
Djangoの(とてもざっくりとした)全体像 3 (この時、Formのバリデーションも行われることがある) メモが「ニャーになってる」ニャー 「ニャー」だけだとわからない ニャー Formニャー
Djangoの(とてもざっくりとした)全体像 3 (この時、Formのバリデーションも行われることがある) 入れ直してもらうニャー Formニャー
Djangoの(とてもざっくりとした)全体像 3 (この時、Formのバリデーションも行われることがある) これならOKニャー おっけーだよ はい、データ Formニャー Viewニャー
Djangoの(とてもざっくりとした)全体像 4 バリデーションに成功した場合、ViewがFormから受け取ったデータを用いてModelを更新する。 登録よろしくニャー はい、でーた Viewニャー Modelニャー
Djangoの(とてもざっくりとした)全体像 4 バリデーションに成功した場合、ViewがFormから受け取ったデータを用いてModelを更新する Modelニャー 登録するニャー
Djangoの(とてもざっくりとした)全体像 5 Viewでの処理に必要なデータをModelがデータベースから取得する 成功したからlistを 表示するニャー いってらー Diary:listを 探してくるニャー URLディスパッチャーニャー Viewニャー
Djangoの(とてもざっくりとした)全体像 5 Viewでの処理に必要なデータをModelがデータベースから取得する URLディスパッチャーニャー ListDiaryViewだニャー Viewニャー ぱす
Djangoの(とてもざっくりとした)全体像 5 Viewでの処理に必要なデータをModelがデータベースから取得する Viewニャー はいよ Diaryモデルから データをもってきたニャー Modelニャー
Djangoの(とてもざっくりとした)全体像 6 Viewが、Modelから取得したデータをTemplate(テンプレート)に渡し、HTMLページを生成する。 Viewニャー まかせた Modelニャーからもらったデータニャー これを使うニャー Templateニャー
Djangoの(とてもざっくりとした)全体像 6 Viewが、Modelから取得したデータをTemplate(テンプレート)に渡し、HTMLページを生成する。 もらったデータをもとに HTMLページを作るニャー Templateニャー
Djangoの(とてもざっくりとした)全体像 7 生成されたHTMLページをHTTPレスポンスとしてブラウザに返す。 登録した結果 一覧が表示されたニャー
Djangoの(とてもざっくりとした)全体像 ニャーたちのフォーメーション!! ブラウザから リクエストを送る ニャー Modelニャー Templateニャー Viewニャー URLディスパッチャーニャー Formニャー