PythonでWebアプリケーション(1)


今回は,Pythonを使ってWebアプリケーションを作るためにあたって,基礎内容について話したいと思います.

実行環境

OS:MasOS High Sierra
MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports)
プロセッサ:3.5 GHz Intel Core i7
メモリ:16 GB 2133 MHz LPDDR3

Python 3.6.4
Chromeバージョン: 71.0.3578.98(Official Build) (64 ビット)

アプリケーションとは

アプリケーションは色々な種類があります.
例えば,ワープロや表計算ソフトの様な高性能なアプリケーションとメモリアプリケーションや計算機の様なシンプルなアプリケーションがあります.

また,アプリケーションは必ず入力と出力があります.
入力:人間が指示を与えるための仕組み
出力:指示に従ってソフトウェアが処理し,結果を繰り返す

次は,簡単なWebアプリケーションの構造について話したいと思います.
Webアプリケーションの言語は色々な種類(フロントエンド,バックエンド,データベース)があります.

フロントエンドとは,ユーザーと直接データのやり取りを行う要素のことで,Web制作ではWebブラウザ側(クライアント側)を指しています.
バックエンドとは,フロントエンドから送られてきた情報をもとに,データベースやAPIなどの情報と連携して,フロントエンドに情報を返す部分を指しています.(ユーザから見えない後ろの部分からバックエンド,もしくはサーバーエンドとも呼ばる.)

フロントエンド:HTML,CSS,JavaScript ..
バックエンド:Python,Ruby,JavaScript,PHP ..
データベース:MySQL,Postgresql ..

アプリケーションとユーザインターフェース(UI)

アプリケーションが共通して持つ特徴として人間が指示を与えるための仕組みがあると書きました.
この仕組みのことをユーザインターフェース(User Interfase)と呼びます.または,英単語の頭文字を取ってUI(ユーアイ)とも呼ばれます.
アプリケーションに表示されるボタンやメニューなどはUIの一種です.
ワープロのウインドウには,文字を打ち込む領域,文字の大きさや割り付けを変えるボタンなど,多くのUIが配置されています.

UIや,UIによる操作結果をどのように表示するかによってアプリケーションを分類することがあります.
コンピュータの画面(グラフィックス画面)を直接操作して表示するUIをグラフィカル・ユーザインターフェース(GUI)と呼びます.
GUIを使ったネイティブアプリケーションは,一般的にOSに密接なつながりを持っています.特にグラフィックス機能を活用してUIを表示するための手法は,OSによって異なります.このため,Windows用に作ったネイティブアプリケーションをMacやLinuxで動かすことはできません.多くの場合,アプリケーションを複数のOSで動かそうとすると,それぞれのOSで動く別のアプリケーションを作らなければならないのです.←個人的には面倒いと感じる!

しかし,Webアプリケーションの特徴はどこでも動くということです.Webブラウザとインターネットさえあれば,WindowsやMac,Linux,または携帯電話などいたることろで利用できます!

また,Webアプリケーションで実現できる機能は,ネイティブアプリケーションに比べて制限があると言われてきました.しかし近年,Ajaxのような技術によってWebアプリケーションの自由度はとても高まっています.どこでも動き,高機能なアプリケーションを作ることができるWebアプリケーションに,多くの開発者が注目しています.

HTML(HyperText Markup Language)

HTMLは,Webブラウザなどで表示するWebページを作るためで使われています.Webページに表示する文字の大きさや配置,画像の種類や位置などを決めるための規則です.

文法について簡単に紹介します.
タグを使って,文字や文書に目印をつけます.
<と>を使って文字列を囲んだものがタグと呼ばれます.
また,タグには「開始タグ」と「終了タグ」の2種類があります.
例えば,<title>Python</title>があります.囲まれた文字列を文書のタイトルとして扱います.<title>は開始タグ,</title>は終了タグ.

タグの構造

htmlSample.html
<html>
  <body>
  <h1>Pythonのリンク</h1>
      <a href="http://www.python.org/">python.org</a>
  </body>
</html>

htmlSmaple.htmlでは,タグが入れ子になっています.<html>タグが全体を囲っていて,その下にさらに<body>タグがあります.
ある要素が他の要素を囲むことによって,タグ同士が親子関係を持つこととなります.<h1>タグ,<a>タグは<body>タグの子供に当たります.

Webでユーザインターフェースを作る

HTMLには基本的なUIを作るための命令(タグ)が用意されています.メニューやボタンなど,一般的なアプリケーションでよく見かけるUIはほとんど揃っています.
アプリケーションにとってUIは重要な要素です.Webアプリケーションを作る場合は,HTMLを使ってUIを作ります.

HTMLにはフォーム(form)と呼ばれる仕組みが備わっています.Webアプリケーションで利用するUIはフォームを活用して作ります.簡単なフォームの例を見てみましょう.

formSample.html
<html>
<body>
  <form>
    <input type="text" name="name" /> 好きな言語 :
    <select name="language">
      <option>Python</option>
      <option>MySQL</option>
      <option>JavaScript</option>
    </select>
    <input type="submit" value="送信" /> <input type="reset" value="リセット" />
  </form>
</body>
</html>

このHTMLの中には,<input>タグや<select>タグが見えます.このタグが,Webページ上にUIの部品を表示するための命令になっています.
<select>タグはメニューを表示するための命令です.このタグは,子供として<option>タグを持っています.<option>タグで囲まれた文字列はメニューの項目となります.

UIの部品を表示しているタグには,nameというアトリビュートが付いています.このアトリビュートは.UIの部品を特定するために利用する重要なアトリビュートです.

<form>タグはUIの部品全体を囲む形で記述します.UI部品の親となるのが<form>タグです.Webアプリケーションで実際に利用する<form>タグには,アトリビュートを何種類か記述します.アトリビュートの種類や意味についてはのちほど解説します.ここでは,HTMLを使ってUIを表示するための方法について,概要を理解できれば大丈夫です.

今回の「PythonでWebアプリケーション(1)」は以上で終わります.
読んでいただいてありがとうございます.

次回予告:HTTPの概要,PythonでWebサーバを作る