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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
naoki-urabe
April 16, 2022
Programming
110
0
Share
django入門
naoki-urabe
April 16, 2022
More Decks by naoki-urabe
See All by naoki-urabe
無駄課金回避__lambdaでEC2定期シャットダウン.pdf
naokiurabe
0
250
DevOps勉強会資料
naokiurabe
0
150
django入門2
naokiurabe
0
80
Other Decks in Programming
See All in Programming
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.4k
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
2k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
2k
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
540
AIとRubyの静的型付け
ukin0k0
0
520
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
120
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
3.2k
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
270
Claspは野良GASの夢をみるか
takter00
0
160
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
17
5.5k
初めてのRubyKaigiはこう見えた
jellyfish700
0
410
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
680
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
760
The Invisible Side of Design
smashingmag
302
52k
Paper Plane
katiecoart
PRO
1
51k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
370
Writing Fast Ruby
sferik
630
63k
The Curious Case for Waylosing
cassininazir
1
370
Into the Great Unknown - MozCon
thekraken
41
2.5k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
300
Transcript
Django入門
Djangoとは? • pythonベースのwebフレームワーク • 中規模〜大規模のアプリケーション開発が得意 • Djangoのメリット − セキュリティに強い −
データベース構築が簡単
MTVモデル • DjangoはMTVモデルを採用している − MCVのVをTemplateとViewに明確に分けている • Model データを保持する • Template
表示する画面 • View リクエストオブジェクトを受取、レスポンスオ ブジェクトを生成し返す
Model • Django ORM(Object Relational Mapper)を提供 している • データベースのテーブル・カラムとモデルのクラスと フィールドを対応付け、レコード1件毎にオブジェク
トとして扱えるようにしている クラス フィールド データベース テーブル カラム
View • リクエストオブジェクトを受取、レスポンスオブジェク トを生成し返す • ビジネスロジックを実行し、テンプレートに表示する 変数を用意する func(1) func(2) Context
= { Name: test Age: 10 } Template
Template • DTL(Django Template Language)を提供している • Htmlに変数表示やロジックを埋め込むことができ る {{ variable
}} 変数表示 {% if is_active %} 条件分岐 Hello {% endif %} {% for item in items %} 反復 {{ item.value }} {% endfor %}
MVCのCは? • URLディスパッチャがControllerの役目 • リクエストとして送られたURLを識別し適切なview 関数へ渡す URLConf URLディスパッチャ / /manage_employ
ee /login リクエスト
Djangoの処理の流れ Url:http:1337/test URLディス パッチャ View Model データベース レスポンス 適切なView関数に リクエストを渡す
Url:http:1337/test Url:http:1337/test データベースから情報を取得 レスポンスを生成し返 す データベース操 作
実際に作ってみよう 従業員情報を出力するアプリを作ってみる https://github.com/naoki-urabe/django-app django-appというフォルダを作り、そこで作成していく
Dockerで環境構築
Docker-composeを利用する
環境変数分離 • 秘密鍵情報等は.envファイルに分けたほうが良い
環境変数分離 • 秘密鍵情報等は.envファイルに分けたほうが良い
Djangoプロジェクト作成 • プロジェクトの作成コマンドによってプロジェクトを 作成
docker-composeでコンテナ立ち上げ • Localhost:8000を開く • ロケットの画面が出れば成功
URL設定 • URLConfに該当 • プロジェクトのURL.pyにURLパターンを設定する • 上の例では /にアクセスした際、 manage_employee.urlを見に行く
アプリケーションを作成 • djangoではアプリケーションという小さいサービス を連携させ全体のアプリケーションを構築している • 上記コマンドを打つことでアプリケーションのフォル ダができる
Urls.py • URLConfに該当 • アプリケーションごとにUrls.pyを作成する • プロジェクトのUrl.pyを複雑化させないため
Model定義 • テーブル・カラムの定義を行う • データベースに保存される形式を定義している
migration • Model定義の新規作成・変更の場合はデータベー スに対し変更(migration)を行わなければならない • migrationの実行はmakemakegrationsコマンド migrateコマンド
Viewの設定 • リクエストを受取り、ビジネスロジックを実行し、レス ポンス生成して返す
Templateの設定 • Viewから渡された変数を表示する
表示画面 • 従業員名・年齢が表示されれば成功
ポイント • DjangoはMTVモデルを採用している − Model Django ORMマッパー − T Django
Template Engine − V リクエストを受取、レスポンスを返す − MCVのCに当たるのはURLディスパッチャ • 開発時 − 秘密鍵等は.envファイルに分割する − モデルを追加変更した際はmigrationする − URL.pyはアプリケーションごとに追加する