Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ニャーDjango
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
alice
May 10, 2023
0
300
ニャー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.2k
ノンプロ研 Power Query講座受講メモ②
alice37308108
0
210
ノンプロ研 Power Query講座受講メモ①
alice37308108
0
820
はじめてのRPA
alice37308108
0
2.2k
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
40
2.3k
The Spectacular Lies of Maps
axbom
PRO
1
580
A better future with KSS
kneath
240
18k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
The Curious Case for Waylosing
cassininazir
0
260
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
150
Joys of Absence: A Defence of Solitary Play
codingconduct
1
300
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
600
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ニャー