Edited at

PythonのFlaskで学ぶWebアプリケーション制作講座 第0章 〜はじめに〜


この資料について

サークルのWebアプリケーション製作講座用に書いている資料です。

対象読者は何らかのプログラミング言語を少し触ったことはあるけど、Pythonははじめてという方を対象にしています(ちなみにサークルでは最初にC言語をします)

Githubのほうで公開していましたが,Qiitaに移してみることにしました.


本講座について

Pythonの文法の解説からはじめ、 本の貸出システムを題材にして実用的な内容まで学ぶことで、Webアプリケーションの作成(特にプログラミング)ができるようになることを目的として行う。


Webアプリケーションとは何かと本講座で扱う範囲

Webアプリケーションの例としてはwikiやブログ、掲示板、通販サイト、Googleカレンダー等々がある。

これらの例を見てわかるようにWebアプリケーションは一般にブラウザを用いて「Webサイトを見る」ことによって利用することができる。

プログラミング的な視点でもう少し整理するとWebアプリケーションはサーバサイドのアプリケーションとクライアントサイドのアプリケーションという風にわかれ、そのあいだの通信にネットワークをつかう。

また、通信は多くの場合HTTPあるいはHTTPSプロトコルに基づいて行われる。

Webアプリケーションは下記の要素で構成される。


  • クライアントサイドアプリケーション

  • サーバサイドアプリケーション

  • インフラ(サーバ、各種ミドルウェア)

クライアントサイドアプリケーションとはブラウザを開いた時に見える見た目の部分を制御するアプリケーションだ。

一般的にユーザの手元にダウンロードされて実行される。

一方、手元にはダウンロードされず、サーバ上で実行されるアプリケーションがサーバサイドアプリケーションだ。これは以下に述べるデータベースサーバ(DBサーバ)と呼ばれる、データを保存しておくプログラムからデータを取り出し、それに則ってクライアントに提供されるデータの一部を整形して出力するという役割を担う。

最後にあまり馴染みがないのはインフラかもしれない。

これはサーバサイドアプリケーション以外のアプリケーションを動かす上で重要なサーバ上で動くプログラムで、

HTTPプロトコルを処理するのに特化したWebサーバと呼ばれるアプリケーション、

大量のデータを効率よく安全に検索・保存することに特化したDBサーバとなどのアプリケーションなどが当たり、

よくある処理を専門的に効率よく動かすためのものである。

また、OS・ネットワークなどもこの範疇に入る。

本講座では上記の3つのうちとくにサーバサイドアプリケーションを中心に扱う。

なお、本講座では下記は扱わない。


  • 詳細なサーバ構築

  • サーバの運用・障害対応

  • クライアントサイドアプリケーション(Webデザイン)
    *


目次


基礎編


  1. 環境の導入と基本事項

  2. データ構造と制御構造

  3. プログラムの再利用・ルーティング

  4. テンプレートとhtml

  5. データの永続化とSQL

  6. セッション

  7. ハッシュ化とソルト


応用編


  1. ORマッパー

  2. PyCharmとDockerを使った開発

  3. Key-Value Store(KVS)の利用


WebAPI編


  1. HTTPプロトコル

  2. JSONを扱う

  3. RESTfullAPI