Upload
Download free for 30 days
Login
Submit search
Pythonで始めるWebアプリケーション開発
23 likes
19,204 views
Takahiro Kubo
PythonによるWebアプリケーション開発のチュートリアル資料
Software
Read more
1 of 24
Download
Downloaded 48 times
1
2
3
4
Most read
5
Most read
6
7
8
Most read
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
More Related Content
PDF
Kubernetes雑にまとめてみた 2020年8月版
VirtualTech Japan Inc.
PDF
マスタリングTCP/IP ニフクラ編
富士通クラウドテクノロジーズ株式会社
PPTX
IntuneとWSUSを使ってWindows Updateをやってみる。
shotayamamura1
PPTX
プロセスマイニングとソースコード解析を用いたマイクロサービス分割(ソフトウェアエンジニアリングシンポジウム2021 発表資料)
NTT DATA Technology & Innovation
PDF
【Unity】Scriptable object 入門と活用例
Unity Technologies Japan K.K.
PDF
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
PDF
シリコンバレーの「何が」凄いのか
Atsushi Nakada
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
Kubernetes雑にまとめてみた 2020年8月版
VirtualTech Japan Inc.
マスタリングTCP/IP ニフクラ編
富士通クラウドテクノロジーズ株式会社
IntuneとWSUSを使ってWindows Updateをやってみる。
shotayamamura1
プロセスマイニングとソースコード解析を用いたマイクロサービス分割(ソフトウェアエンジニアリングシンポジウム2021 発表資料)
NTT DATA Technology & Innovation
【Unity】Scriptable object 入門と活用例
Unity Technologies Japan K.K.
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
シリコンバレーの「何が」凄いのか
Atsushi Nakada
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
What's hot
(20)
PDF
ドメイン駆動設計の正しい歩き方
増田 亨
PDF
明日からはじめるネットワーク運用自動化
Taiji Tsuchiya
PDF
Docker Compose 徹底解説
Masahito Zembutsu
PDF
Cookpad TechConf 2016 - DWHに必要なこと
Minero Aoki
PDF
AWSでDockerを扱うためのベストプラクティス
Amazon Web Services Japan
PDF
他社製品と比較した際のAuth0のいいところ
Satoshi Takayanagi
PDF
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
PDF
NVIDIA 入門
Wataru Unno
PDF
ドメイン駆動設計をゲーム開発に活かす
増田 亨
PDF
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
PDF
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
NTT DATA Technology & Innovation
PPTX
脱 Excel設計書
rai
PPTX
イベント・ソーシングを知る
Shuhei Fujita
PDF
FIWARE勉強会 20190913
Nobuyuki Matsui
PDF
دور أنترنت الأشياء في تعزيز آليات الوعي المعلوماتي بمؤسسات المعلومات
Dr. Ahmed Farag
PDF
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
PDF
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
PDF
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
Recruit Technologies
PDF
大規模オンプレミス環境はGitOpsの夢を見るか(CI/CD Conference 2021 by CloudNative Days 発表資料)
NTT DATA Technology & Innovation
ドメイン駆動設計の正しい歩き方
増田 亨
明日からはじめるネットワーク運用自動化
Taiji Tsuchiya
Docker Compose 徹底解説
Masahito Zembutsu
Cookpad TechConf 2016 - DWHに必要なこと
Minero Aoki
AWSでDockerを扱うためのベストプラクティス
Amazon Web Services Japan
他社製品と比較した際のAuth0のいいところ
Satoshi Takayanagi
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
NVIDIA 入門
Wataru Unno
ドメイン駆動設計をゲーム開発に活かす
増田 亨
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
NTT DATA Technology & Innovation
脱 Excel設計書
rai
イベント・ソーシングを知る
Shuhei Fujita
FIWARE勉強会 20190913
Nobuyuki Matsui
دور أنترنت الأشياء في تعزيز آليات الوعي المعلوماتي بمؤسسات المعلومات
Dr. Ahmed Farag
ドメイン駆動設計 失敗したことと成功したこと
BIGLOBE Inc.
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
Recruit Technologies
大規模オンプレミス環境はGitOpsの夢を見るか(CI/CD Conference 2021 by CloudNative Days 発表資料)
NTT DATA Technology & Innovation
Similar to Pythonで始めるWebアプリケーション開発
(20)
PDF
マイクロソフトWeb開発の今と今後
Akira Inoue
PPTX
WebAppDev勉強会 #1 at cafe? IKAGAWA DO
Kohei Noda
PPTX
勉強会資料①
真亮 坂口
PDF
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
KEY
Web App Framework at SwapSkills vol28
光一 原田
PPT
20060419
小野 修司
PPT
20090328
小野 修司
PPTX
20120609
小野 修司
PDF
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Akira Inoue
PDF
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
PPTX
ICT ERA+ABC 2012東北講演
Monaca
PPT
20050917
小野 修司
PDF
アプリ開発の
maruyama097
PDF
Introduction to web development 1
hideaki honda
PDF
【読書会】プロになるためなるためのWeb技術入門
優之 田中
PDF
Rubyで作るtwitter風webアプリケーション
Naoto Hori
PDF
最新 ASP.NET Web 開発オーバービュー
Akira Inoue
PPTX
20190809
iPride Co., Ltd.
PPTX
Webアプリを公開するまで
SosukeYamada
PDF
Flask勉強会その1
Masato Kawamura
マイクロソフトWeb開発の今と今後
Akira Inoue
WebAppDev勉強会 #1 at cafe? IKAGAWA DO
Kohei Noda
勉強会資料①
真亮 坂口
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
Web App Framework at SwapSkills vol28
光一 原田
20060419
小野 修司
20090328
小野 修司
20120609
小野 修司
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Akira Inoue
Pythonによるwebアプリケーション入門 - Django編-
Hironori Sekine
ICT ERA+ABC 2012東北講演
Monaca
20050917
小野 修司
アプリ開発の
maruyama097
Introduction to web development 1
hideaki honda
【読書会】プロになるためなるためのWeb技術入門
優之 田中
Rubyで作るtwitter風webアプリケーション
Naoto Hori
最新 ASP.NET Web 開発オーバービュー
Akira Inoue
20190809
iPride Co., Ltd.
Webアプリを公開するまで
SosukeYamada
Flask勉強会その1
Masato Kawamura
More from Takahiro Kubo
(20)
PDF
自然言語処理による企業の気候変動対策分析
Takahiro Kubo
PDF
国際会計基準(IFRS)適用企業の財務評価方法
Takahiro Kubo
PDF
自然言語処理で新型コロナウィルスに立ち向かう
Takahiro Kubo
PDF
財務・非財務一体型の企業分析に向けて
Takahiro Kubo
PDF
自然言語処理で読み解く金融文書
Takahiro Kubo
PDF
arXivTimes Review: 2019年前半で印象に残った論文を振り返る
Takahiro Kubo
PPTX
ESG評価を支える自然言語処理基盤の構築
Takahiro Kubo
PDF
Expressing Visual Relationships via Language: 自然言語による画像編集を目指して
Takahiro Kubo
PDF
Reinforcement Learning Inside Business
Takahiro Kubo
PDF
あるべきESG投資の評価に向けた、自然言語処理の活用
Takahiro Kubo
PDF
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
Takahiro Kubo
PDF
Curiosity may drives your output routine.
Takahiro Kubo
PDF
モデルではなく、データセットを蒸留する
Takahiro Kubo
PDF
EMNLP2018 Overview
Takahiro Kubo
PPTX
2018年12月4日までに『呪術廻戦』を読む理由
Takahiro Kubo
PDF
Graph Attention Network
Takahiro Kubo
PDF
ACL2018の歩き方
Takahiro Kubo
PDF
機械学習で泣かないためのコード設計 2018
Takahiro Kubo
PDF
TISにおける、研究開発の方針とメソッド 2018
Takahiro Kubo
PDF
感情の出どころを探る、一歩進んだ感情解析
Takahiro Kubo
自然言語処理による企業の気候変動対策分析
Takahiro Kubo
国際会計基準(IFRS)適用企業の財務評価方法
Takahiro Kubo
自然言語処理で新型コロナウィルスに立ち向かう
Takahiro Kubo
財務・非財務一体型の企業分析に向けて
Takahiro Kubo
自然言語処理で読み解く金融文書
Takahiro Kubo
arXivTimes Review: 2019年前半で印象に残った論文を振り返る
Takahiro Kubo
ESG評価を支える自然言語処理基盤の構築
Takahiro Kubo
Expressing Visual Relationships via Language: 自然言語による画像編集を目指して
Takahiro Kubo
Reinforcement Learning Inside Business
Takahiro Kubo
あるべきESG投資の評価に向けた、自然言語処理の活用
Takahiro Kubo
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
Takahiro Kubo
Curiosity may drives your output routine.
Takahiro Kubo
モデルではなく、データセットを蒸留する
Takahiro Kubo
EMNLP2018 Overview
Takahiro Kubo
2018年12月4日までに『呪術廻戦』を読む理由
Takahiro Kubo
Graph Attention Network
Takahiro Kubo
ACL2018の歩き方
Takahiro Kubo
機械学習で泣かないためのコード設計 2018
Takahiro Kubo
TISにおける、研究開発の方針とメソッド 2018
Takahiro Kubo
感情の出どころを探る、一歩進んだ感情解析
Takahiro Kubo
Pythonで始めるWebアプリケーション開発
1.
Web Application Tutorial Pythonで始めるWebアプリケーション開発
2.
Agenda ● Webアプリケーションとは ○ Webアプリケーションのメリット・デメリット ○
多様化する機能と開発手法 ● Webアプリケーションの基本的な構成 ○ MVCの罠 ○ MVCの再考 ● セキュリティ ● PythonでのWebアプリケーション開発 ○ 開発演習
3.
Webアプリケーションとは
4.
Server Webアプリケーションとは Webアプリケーションは、ネットワーク(インターネット)経由で利用するアプリケーションです。 ● HTTPという通信方式を使って、クライアント(ブラウザ)とサーバー間でデータのやり取り を行います ● クライアント側の画面はHTMLという記述方式で実装します ●
サーバー側は、いろいろなプログラミング言語で実装することができます User Side Application Side HTTPリクエスト HTTPレスポンス Client
5.
Webアプリケーションのメリット・デメリット ● ブラウザがあれば使える ○ OS等に依存しない(クロスプラットフォーム) ○
インストール作業が不要 ○ インターネットに接続可能な全ユーザーに公開が可能 ● 情報の更新が容易 ○ プログラムの更新を容易に反映できる ○ コンテンツの更新も容易に可能 ● ネットワークにつながっていないと無力 ○ (HTML5のapplication cacheで部分的には対応可能) ● ブラウザごとに異なる仕様への対応 ○ 特にIE8以下(見捨てない場合、1.5倍以上の負担増は覚悟したほうがいい) ● 攻撃されるリスク ○ 誰でもアクセスできるので、攻撃にさらされるリスクも増える
6.
多様化する機能と開発手法 Webアプリケーションの機能や開発手法は、未だ黎明期かと思えるくらい年々色々なものが 登場します。 その意味では、最も進化の激しい分野のうちの一つと言えると思います。 機能 開発手法 とにかく変化のスピードが激し い。
7.
Webアプリケーションの基本的な構成
8.
Webアプリケーションの基本的な構成 Webアプリケーションの構築に当たっては、MVCという構成が良く使われます(この構成は、 Webアプリケーションに限らずモバイルなども含めGUIアプリケーションの開発でよく採用さ れる設計手法です)。 具体的には、アプリケーションの各機能を画面描画(View)、データ処理(Model)、それらの繋 ぎ(Controller)、という3つの役割に分類します。 これで各機能の独立性が高まり、テストなどが行いやすくなります。 View User Side Application Side Controller Model
Data store
9.
MVCの罠 そうか!すべての処理はMかVかCのどれかになるんだ!
10.
MVCの罠
11.
MVCの罠 ● データベースにアクセスするための共通処理 ○ Model? ●
複数のMを組み合わせるような処理 ○ Model?それともController側で組み合わせる? ● 複数のCで共通して使う処理(ログイン済みか否かの判定など) ○ ベースとなるControllerを作って継承する? MVCはアプリケーションにおけるミニマムな役割を定義したにすぎません。 必要に応じ追加の「役割」を考え、定義する必要があります。
12.
MVCの再考 ※以下は一つの考え方で、必ずしも常に正しいとは限りません。 Model->Entity・Process・Serviceに分ける ● Entity: データベースへのI/Fとなる部分 ○
いわゆるCRUD処理を行うための機能と、データの項目定義を提供する ● Process: 処理の中核となる、いわゆるビジネスロジック ○ 複数のEntityを組み合わせた処理の制御などを行う。本来の意味でのModelとい う名前を付けるのもあり。 ● Service: 汎用的な共通処理 ○ データベースアクセスやフォーマット変換など、ビジネスロジックに関与しない汎用 的な共通処理。 ○ (Processも含めてすべてサービスとみなす見方もある)
13.
MVCの再考 ※以下は一つの考え方で、必ずしも常に正しいとは限りません。 Controller: クライアントから、サーバー側の処理を呼び出すためのAPIとして定義 ● 実装をなるべく薄くし、Model等に委譲する ●
クライアント側が利用しやすい単位で機能を公開するイメージ ControllerをテストするにはHTTPリクエストを飛ばす必要があるので、面倒+テスト実行 時にリソースを食う場合がある。 そのため、処理はなるべく後ろ側に委譲し、独立してテストできるようにしておくのがよ い。
14.
セキュリティ
15.
Webアプリケーションにおけるセキュリティ Webアプリケーションは、インターネットに公開されている分攻撃されるリスクも高いです。 そのため、セキュリティは万全を期しておく必要があります。 Server本体(OS etc)の脆弱性 Webサーバーの脆弱性 プロトコルの脆弱性 Webアプリケーションの脆弱性
16.
Webアプリケーションにおけるセキュリティ 脆弱性のあるアプリケーションは、利用してもらっているユーザーを危険にさらすだけでな く、他アプリケーションへの攻撃の土台として使われるなど、多くの被害をもたらします。 一旦被害を出すと社会的な責任の失墜にもつながり、実際の被害以上に大きな影響が発 生することもあります。 セキュアなWebアプリケーションの開発については、IPAがガイドを出しているので、目を通し ておくこと。
17.
Webアプリケーションにおけるセキュリティ 脆弱性は日々発見され、攻撃手法もまた日々進化しています。
18.
PythonでのWebアプリケーション開発
19.
PythonでのWebアプリケーション開発 今回はPythonを利用したWebアプリケーションの開発を行います。 Webアプリケーションを一から開発するのは大変なので、多くの場合開発をサポートするフ レームワークを利用します。 軽量 しっかり その他 他と異なり、Node.jsのよう なNon
blockingサーバー
20.
PythonでのWebアプリケーション開発 今回はDjangoを使用します。 ● Python製のフルスタックフレームワークで、これ一つでページの表示、DBアクセスなど の機能が全部入りになっている(そのためあちこちからモジュールを取ってこなくてよい) ● MVCが意識された構成となっており、自然とMVCの構成を学べる ●
メジャーなフレームワークであり、経験しておくことが損にならない ● 各種クラウドプラットフォーム(GAE/Heroku etc)へデプロイすることが容易
21.
開発演習 Djangoを利用し、日報管理用のアプリケーションを作成してください。 今までいろんなシステムで日報を書かされて、時にはなんだこのxxはと思ったかもしれませ ん。 今度は、自分の手で理想とする日報システムを作成しましょう。 日報管理用のアプリケーションの開発
22.
開発演習 ・ユーザー管理機能(Login/Logout) ・日報一覧の表示(検索機能含む) ・日報の登録・編集・削除 一覧はログインできるユーザー全員が参照 可能。 ただし、登録・編集・削除できるのは自分の 分のみ。 Basic Extra ・コメント機能 ・リッチテキスト/Markdown書式対応 ・カレンダー表示 コメント機能は優先で実装すること。 それ以外は、思いついた追加機能はどんど ん入れてOK。 来年度の新人に使ってもらうかも? なお、テストコードをきちんと書き、セキュリティに留意すること
23.
Have a good
web application!
24.
解答例
Download