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
Flaskを利用したWebアプリ開発に必要な知識と開発の進め方について
Search
Takagi Yuto
March 15, 2025
Technology
0
47
Flaskを利用したWebアプリ開発に必要な知識と開発の進め方について
Flaskでのアプリ開発におけるviewsやtemplates等のディレクトリ構成とそれらの役割や、Webアプリへのアクセスにおける種類と脆弱性, 開発フローをまとめました。
Takagi Yuto
March 15, 2025
Tweet
Share
More Decks by Takagi Yuto
See All by Takagi Yuto
プログラミング学習プラットフォーム | ビジネス要件報告案1
yut0takagi
0
39
交差点交通最適化ソリューション | データサイエンス実験B
yut0takagi
0
28
センシングデータ解析8班 走行データ分析
yut0takagi
0
29
自己紹介 | 1on1forEngineer
yut0takagi
0
18
Other Decks in Technology
See All in Technology
CSSの最新トレンド Ver.2025
tonkotsuboy_com
11
4.5k
OpenTelemetry Collector internals
ymotongpoo
5
510
基調講演: 生成AIを活用したアプリケーションの開発手法とは?
asei
1
120
API の仕様から紐解く「MCP 入門」 ~MCP の「コンテキスト」って何だ?~
cdataj
0
130
MCPを利用して自然言語で3Dプリントしてみよう!
hamadakoji
0
1.5k
Amazon Q Developer for GitHubとAmplify Hosting でサクッとデジタル名刺を作ってみた
kmiya84377
0
1.1k
What's new in OpenShift 4.19
redhatlivestreaming
1
180
今からでも間に合う! 生成AI「RAG」再入門 / Re-introduction to RAG in Generative AI
hideakiaoyagi
1
150
データ戦略部門 紹介資料
sansan33
PRO
1
3.2k
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
2
130
マルチテナント+マルチプロダクト SaaS への AI Agent の組み込み方
kworkdev
PRO
2
280
脅威をモデリングしてMCPのセキュリティ対策を考えよう
flatt_security
4
1.4k
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
269
20k
The Cost Of JavaScript in 2023
addyosmani
50
8.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
KATA
mclloyd
29
14k
A designer walks into a library…
pauljervisheath
206
24k
Unsuck your backbone
ammeep
671
58k
Documentation Writing (for coders)
carmenintech
71
4.9k
How STYLIGHT went responsive
nonsquared
100
5.6k
Side Projects
sachag
454
42k
Why Our Code Smells
bkeepers
PRO
337
57k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
Flaskアプリの概要
アジェンダ 1. ディレクトリ構成 2. Webアプリの仕組みについて 3. 開発の流れ
ディレクトリ構成
ディレクトリ構成について 【基本的なディレクトリ構成】 wsgi.py application_ver2 ├── __init__.py ├── __pycache__ ├── config
├── forms ├── models ├── static ├── templates └── views 【開発で触れるディレクトリ】 1. Templates 2. Views 3. Forms 4. models
Viewsについて 【役割】 URLと表⽰されるHTMLを紐づける役割 【書き⽅について】(例: https://localhost:5000/homeの場合)
Templatesについて 【役割】 HTMLファイルを格納する役割 【レイアウトの使⽤について】 1. 共通部分とメイン部分で分けて定義する。 2. 共通部分については、基本的に触れない 3. 共通部分はLayoutに格納
4. 学⽣,塾関連,学校関連,全体共通で分別して格納
Formsについて 【役割】 サイトで⼊⼒箇所がある場合に、その形式をPythonのclassで定義する。 【書き⽅について】(例: ログインフォームの場合) 1. ⼊⼒箇所は、emailとpasswordの2つ 2. EmailはStingField(⽂字列)でDataRequired(⼊⼒必須),Emailとして認識します 3.
PasswordはPasswordField(⼊⼒すると**に変化)で、⼊⼒必須と認識します。
Modelsについて 【役割】 ユーザデータ(ログイン要件以外)や組織データをデータベースとしてどのように保存するかをクラスで定義する。 【書き⽅について】 ※Modelsを変更すると、データベース形式が崩れるので、影響範囲が⼤きいです。 そのため、変更は基本的に⾏わないでください。 各機能で新規に定義する場合には、連絡ください。
Webアプリの仕組み
Webアプリの仕組みについて サーバー リクエスト レスポンス こんなデータがほしい︕ (/homeにアクセス等) どうぞ︕(HTMLファイル等)
リクエストの種類について サーバー リクエスト(GET) ホームページにアクセスしたい リクエスト(POST) ログイン認証をしたい (アクセスと同時にユーザーデータを送信する)
開発の流れ
開発の流れ 1. Viewsで関数を定義し、HTMLファイルと接続する 基本的に、各機能におけるドメインは、あらかじめ決めて設定してあります。 2. Views関数内の処理を記述する GETとPOSTで別々に記述する TRY,EXCEPT等の例外処理をすべてに適⽤することで、セキュリティ脆弱性に関わるエラーを防⽌ 3. HTMLファイルを記述し、css等が反映されているか確認する
Block contentsとendblock内に記述する