Movatterモバイル変換


[0]ホーム

URL:


Takahiro Kubo, profile picture
Uploaded byTakahiro Kubo
19,214 views

Pythonで始めるWebアプリケーション開発

PythonによるWebアプリケーション開発のチュートリアル資料

Embed presentation

Downloaded 48 times
Web Application TutorialPythonで始めるWebアプリケーション開発
Agenda● Webアプリケーションとは○ Webアプリケーションのメリット・デメリット○ 多様化する機能と開発手法● Webアプリケーションの基本的な構成○ MVCの罠○ MVCの再考● セキュリティ● PythonでのWebアプリケーション開発○ 開発演習
Webアプリケーションとは
ServerWebアプリケーションとはWebアプリケーションは、ネットワーク(インターネット)経由で利用するアプリケーションです。● HTTPという通信方式を使って、クライアント(ブラウザ)とサーバー間でデータのやり取りを行います● クライアント側の画面はHTMLという記述方式で実装します● サーバー側は、いろいろなプログラミング言語で実装することができますUser Side Application SideHTTPリクエストHTTPレスポンスClient
Webアプリケーションのメリット・デメリット● ブラウザがあれば使える○ OS等に依存しない(クロスプラットフォーム)○ インストール作業が不要○ インターネットに接続可能な全ユーザーに公開が可能● 情報の更新が容易○ プログラムの更新を容易に反映できる○ コンテンツの更新も容易に可能● ネットワークにつながっていないと無力○ (HTML5のapplication cacheで部分的には対応可能)● ブラウザごとに異なる仕様への対応○ 特にIE8以下(見捨てない場合、1.5倍以上の負担増は覚悟したほうがいい)● 攻撃されるリスク○ 誰でもアクセスできるので、攻撃にさらされるリスクも増える
多様化する機能と開発手法Webアプリケーションの機能や開発手法は、未だ黎明期かと思えるくらい年々色々なものが登場します。その意味では、最も進化の激しい分野のうちの一つと言えると思います。機能 開発手法とにかく変化のスピードが激しい。
Webアプリケーションの基本的な構成
Webアプリケーションの基本的な構成Webアプリケーションの構築に当たっては、MVCという構成が良く使われます(この構成は、Webアプリケーションに限らずモバイルなども含めGUIアプリケーションの開発でよく採用される設計手法です)。具体的には、アプリケーションの各機能を画面描画(View)、データ処理(Model)、それらの繋ぎ(Controller)、という3つの役割に分類します。これで各機能の独立性が高まり、テストなどが行いやすくなります。ViewUser SideApplication SideControllerModel Data store
MVCの罠そうか!すべての処理はMかVかCのどれかになるんだ!
MVCの罠
MVCの罠● データベースにアクセスするための共通処理○ Model?● 複数のMを組み合わせるような処理○ Model?それともController側で組み合わせる?● 複数のCで共通して使う処理(ログイン済みか否かの判定など)○ ベースとなるControllerを作って継承する?MVCはアプリケーションにおけるミニマムな役割を定義したにすぎません。必要に応じ追加の「役割」を考え、定義する必要があります。
MVCの再考※以下は一つの考え方で、必ずしも常に正しいとは限りません。Model->Entity・Process・Serviceに分ける● Entity: データベースへのI/Fとなる部分○ いわゆるCRUD処理を行うための機能と、データの項目定義を提供する● Process: 処理の中核となる、いわゆるビジネスロジック○ 複数のEntityを組み合わせた処理の制御などを行う。本来の意味でのModelという名前を付けるのもあり。● Service: 汎用的な共通処理○ データベースアクセスやフォーマット変換など、ビジネスロジックに関与しない汎用的な共通処理。○ (Processも含めてすべてサービスとみなす見方もある)
MVCの再考※以下は一つの考え方で、必ずしも常に正しいとは限りません。Controller: クライアントから、サーバー側の処理を呼び出すためのAPIとして定義● 実装をなるべく薄くし、Model等に委譲する● クライアント側が利用しやすい単位で機能を公開するイメージControllerをテストするにはHTTPリクエストを飛ばす必要があるので、面倒+テスト実行時にリソースを食う場合がある。そのため、処理はなるべく後ろ側に委譲し、独立してテストできるようにしておくのがよい。
セキュリティ
WebアプリケーションにおけるセキュリティWebアプリケーションは、インターネットに公開されている分攻撃されるリスクも高いです。そのため、セキュリティは万全を期しておく必要があります。Server本体(OS etc)の脆弱性Webサーバーの脆弱性プロトコルの脆弱性Webアプリケーションの脆弱性
Webアプリケーションにおけるセキュリティ脆弱性のあるアプリケーションは、利用してもらっているユーザーを危険にさらすだけでなく、他アプリケーションへの攻撃の土台として使われるなど、多くの被害をもたらします。一旦被害を出すと社会的な責任の失墜にもつながり、実際の被害以上に大きな影響が発生することもあります。セキュアなWebアプリケーションの開発については、IPAがガイドを出しているので、目を通しておくこと。
Webアプリケーションにおけるセキュリティ脆弱性は日々発見され、攻撃手法もまた日々進化しています。
PythonでのWebアプリケーション開発
PythonでのWebアプリケーション開発今回はPythonを利用したWebアプリケーションの開発を行います。Webアプリケーションを一から開発するのは大変なので、多くの場合開発をサポートするフレームワークを利用します。軽量 しっかり その他他と異なり、Node.jsのようなNon blockingサーバー
PythonでのWebアプリケーション開発今回はDjangoを使用します。● Python製のフルスタックフレームワークで、これ一つでページの表示、DBアクセスなどの機能が全部入りになっている(そのためあちこちからモジュールを取ってこなくてよい)● MVCが意識された構成となっており、自然とMVCの構成を学べる● メジャーなフレームワークであり、経験しておくことが損にならない● 各種クラウドプラットフォーム(GAE/Heroku etc)へデプロイすることが容易
開発演習Djangoを利用し、日報管理用のアプリケーションを作成してください。今までいろんなシステムで日報を書かされて、時にはなんだこのxxはと思ったかもしれません。今度は、自分の手で理想とする日報システムを作成しましょう。日報管理用のアプリケーションの開発
開発演習・ユーザー管理機能(Login/Logout)・日報一覧の表示(検索機能含む)・日報の登録・編集・削除一覧はログインできるユーザー全員が参照可能。ただし、登録・編集・削除できるのは自分の分のみ。Basic Extra・コメント機能・リッチテキスト/Markdown書式対応・カレンダー表示コメント機能は優先で実装すること。それ以外は、思いついた追加機能はどんどん入れてOK。来年度の新人に使ってもらうかも?なお、テストコードをきちんと書き、セキュリティに留意すること
Have a good web application!
解答例

Recommended

PDF
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
PPTX
Amazon SageMakerでカスタムコンテナを使った学習
PDF
Natural Language Processing with Graph Databases and Neo4j
PDF
Controllerのbefore_actionにおける インスタンス変数セットについて
PDF
O/Rマッパーによるトラブルを未然に防ぐ
 
PDF
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
PPTX
がっつりMongoDB事例紹介
PDF
Red Hat OpenShift Container Storage
PDF
DevOps with Database on AWS
PPTX
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
PDF
PHPからgoへの移行で分かったこと
PDF
できる!並列・並行プログラミング
PDF
C#実装から見るDDD(ドメイン駆動設計)
PDF
Neo4j Bloom for Project Teams: Browser-Based and Multi-User Enabled
 
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
PPTX
WiredTigerを詳しく説明
PPTX
イベント・ソーシングを知る
PDF
JSON SchemaとPHP
PDF
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
PPTX
入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る
PPTX
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
PDF
グラフデータベースは如何に自然言語を理解するか?
PDF
イミュータブルデータモデル(入門編)
PDF
これからSpringを使う開発者が知っておくべきこと
PDF
はじめてのDynamoDBスキーマ設計
PDF
Massive service basic
PPTX
ビッグデータ処理データベースの全体像と使い分け
2018年version
PDF
マイクロソフトWeb開発の今と今後
PPTX
勉強会資料①

More Related Content

PDF
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
PPTX
Amazon SageMakerでカスタムコンテナを使った学習
PDF
Natural Language Processing with Graph Databases and Neo4j
PDF
Controllerのbefore_actionにおける インスタンス変数セットについて
PDF
O/Rマッパーによるトラブルを未然に防ぐ
 
PDF
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
PPTX
がっつりMongoDB事例紹介
PDF
Red Hat OpenShift Container Storage
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Amazon SageMakerでカスタムコンテナを使った学習
Natural Language Processing with Graph Databases and Neo4j
Controllerのbefore_actionにおける インスタンス変数セットについて
O/Rマッパーによるトラブルを未然に防ぐ
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
がっつりMongoDB事例紹介
Red Hat OpenShift Container Storage

What's hot

PDF
DevOps with Database on AWS
PPTX
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
PDF
PHPからgoへの移行で分かったこと
PDF
できる!並列・並行プログラミング
PDF
C#実装から見るDDD(ドメイン駆動設計)
PDF
Neo4j Bloom for Project Teams: Browser-Based and Multi-User Enabled
 
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
PPTX
WiredTigerを詳しく説明
PPTX
イベント・ソーシングを知る
PDF
JSON SchemaとPHP
PDF
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
PPTX
入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る
PPTX
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
PDF
グラフデータベースは如何に自然言語を理解するか?
PDF
イミュータブルデータモデル(入門編)
PDF
これからSpringを使う開発者が知っておくべきこと
PDF
はじめてのDynamoDBスキーマ設計
PDF
Massive service basic
PPTX
ビッグデータ処理データベースの全体像と使い分け
2018年version
DevOps with Database on AWS
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
PHPからgoへの移行で分かったこと
できる!並列・並行プログラミング
C#実装から見るDDD(ドメイン駆動設計)
Neo4j Bloom for Project Teams: Browser-Based and Multi-User Enabled
 
ドメイン駆動設計 ( DDD ) をやってみよう
WiredTigerを詳しく説明
イベント・ソーシングを知る
JSON SchemaとPHP
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
グラフデータベースは如何に自然言語を理解するか?
イミュータブルデータモデル(入門編)
これからSpringを使う開発者が知っておくべきこと
はじめてのDynamoDBスキーマ設計
Massive service basic
ビッグデータ処理データベースの全体像と使い分け
2018年version

Similar to Pythonで始めるWebアプリケーション開発

PDF
マイクロソフトWeb開発の今と今後
PPTX
勉強会資料①
PDF
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
KEY
Web App Framework at SwapSkills vol28
PPT
20060419
PPT
20090328
PPTX
20120609
PDF
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
PDF
Pythonによるwebアプリケーション入門 - Django編-
PPTX
ICT ERA+ABC 2012東北講演
 
PPT
20050917
PDF
アプリ開発の
PDF
Introduction to web development 1
PDF
【読書会】プロになるためなるためのWeb技術入門
PDF
Rubyで作るtwitter風webアプリケーション
PDF
最新 ASP.NET Web 開発オーバービュー
PPTX
20190809
PPTX
Webアプリを公開するまで
PDF
Flask勉強会その1
PDF
jQuery と MVC で実践する標準志向 Web 開発
マイクロソフトWeb開発の今と今後
勉強会資料①
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
Web App Framework at SwapSkills vol28
20060419
20090328
20120609
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Pythonによるwebアプリケーション入門 - Django編-
ICT ERA+ABC 2012東北講演
 
20050917
アプリ開発の
Introduction to web development 1
【読書会】プロになるためなるためのWeb技術入門
Rubyで作るtwitter風webアプリケーション
最新 ASP.NET Web 開発オーバービュー
20190809
Webアプリを公開するまで
Flask勉強会その1
jQuery と MVC で実践する標準志向 Web 開発

More from Takahiro Kubo

PDF
自然言語処理による企業の気候変動対策分析
PDF
国際会計基準(IFRS)適用企業の財務評価方法
PDF
自然言語処理で新型コロナウィルスに立ち向かう
PDF
財務・非財務一体型の企業分析に向けて
PDF
自然言語処理で読み解く金融文書
PDF
arXivTimes Review: 2019年前半で印象に残った論文を振り返る
PPTX
ESG評価を支える自然言語処理基盤の構築
PDF
Expressing Visual Relationships via Language: 自然言語による画像編集を目指して
PDF
Reinforcement Learning Inside Business
PDF
あるべきESG投資の評価に向けた、自然言語処理の活用
PDF
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
PDF
Curiosity may drives your output routine.
PDF
モデルではなく、データセットを蒸留する
PDF
EMNLP2018 Overview
PPTX
2018年12月4日までに『呪術廻戦』を読む理由
PDF
Graph Attention Network
PDF
ACL2018の歩き方
PDF
機械学習で泣かないためのコード設計 2018
PDF
TISにおける、研究開発の方針とメソッド 2018
PDF
感情の出どころを探る、一歩進んだ感情解析
自然言語処理による企業の気候変動対策分析
国際会計基準(IFRS)適用企業の財務評価方法
自然言語処理で新型コロナウィルスに立ち向かう
財務・非財務一体型の企業分析に向けて
自然言語処理で読み解く金融文書
arXivTimes Review: 2019年前半で印象に残った論文を振り返る
ESG評価を支える自然言語処理基盤の構築
Expressing Visual Relationships via Language: 自然言語による画像編集を目指して
Reinforcement Learning Inside Business
あるべきESG投資の評価に向けた、自然言語処理の活用
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
Curiosity may drives your output routine.
モデルではなく、データセットを蒸留する
EMNLP2018 Overview
2018年12月4日までに『呪術廻戦』を読む理由
Graph Attention Network
ACL2018の歩き方
機械学習で泣かないためのコード設計 2018
TISにおける、研究開発の方針とメソッド 2018
感情の出どころを探る、一歩進んだ感情解析

Pythonで始めるWebアプリケーション開発


[8]ページ先頭

©2009-2025 Movatter.jp