イチからPythonでweb開発するために必要な10のステップをご紹介!

イチからPythonでweb開発するために必要な10のステップをご紹介!

近頃有名なプログラミング言語として、その地位を確固たるものにしたPythonですが、その理由は「学習コストが低い」という点と「機械学習(つまりAI)」に適しているからという理由です。

しかし、Pythonはwebアプリ開発にも適しており、DjangoやFlaskといったPythonのwebフレームワークを使うことで、誰でもwebアプリケーションを作ることができます。

そこで、ここではPythonでwebアプリケーションを作れるまでのステップを10個に分けてご紹介します。

このページを最後まで読めば、どうやったら初心者からPythonで1からwebアプリの開発ができるのかが分かりますよ!

 

Pythonでwebアプリ開発ができるようになるまで

Pythonでwebアプリ開発ができるようになるまで

ではPythonを使ってwebアプリ開発ができるようになるまでのステップを見ていきましょう。

 

そもそもwebアプリが何なのかを知る

「webアプリを作るぞ!」とフレッシュな考えを持っている方は結構多いですが、では「そもそもwebアプリって何?」という定義は、実はよく分かっていないという方も多いのではないでしょうか?

これだとwebアプリを作ることはできません。なぜならwebアプリの定義がないから。

 

まずはWikipediaを見てみましょう。Wikipediaにはこう書かれています。

ウェブアプリケーション(Web application)は、ウェブ(World Wide Web)技術を基盤としたアプリケーションソフトウェアである。代表的なウェブアプリケーションでは、WebブラウザがHTTPを利用してHTMLを取得・表示、それをDOMを介してJavaScriptが操作し、必要に応じてWebサーバと通信をおこなってデータを更新する。このようにウェブ(World Wide Web)を基盤として作られる応用ソフトウェアをウェブアプリケーション(Webアプリ)と総称する。

 

つまり、webアプリとはwebの技術を使ったアプリケーションのことです。web技術は私たちは普段から、webブラウザを通して使用しています。webブラウザがhttpから始まるURLリクエストを送り、HTMLをレスポンスとして取得します。webサーバを介してデータベースから情報を取得したり、JavaScriptでHTMLを操作したりすることで、ユーザーとやり取りできるシステムがwebアプリケーションです。

 

webアプリ開発の基本を知る

webアプリの本質が何なのかを理解していないと、webアプリをうまく作ることはできません。

ほぼ全てのアプリケーションに言えることですが、webアプリは「ユーザーからの入力に対して結果を出力する」ことの連続です。

Youtubeで例えると、検索ボックスに文字を入力して検索するのが「入力」。その検索条件に合致した動画を表示するのが「出力」です。

入力と出力の間でデータベースにデータを保存したり、別のwebアプリと連携したりといったシステムもありますが、基本的にはwebアプリの本質はユーザーの入力と結果を出力するという点です。

 

webの仕組みを知る

実際にPythonを覚えてwebアプリケーションを開発する前に、web(world wide web)の仕組みについて理解しておくと、開発中に「今自分は何をやっているのか」が分かるので、迷子にならずに済みます(私はこの手順をすっ飛ばして迷子になりました)。

簡単に説明すると、webとはhtmlをリンク(ハイパーリンクという)で繋ぎあった全体像のことです。たくさんのhtmlが同じくたくさんのリンクで繋がっているので、その様子が蜘蛛の巣(ウェブ)に似ていることからwebと呼ばれるようになりました。

webの仕組みはここで説明するより実際に本を一冊購入してじっくり学ぶことをおすすめします。おすすめの本は「ネットワークはなぜつながるのか」です。少し古めの本ですが、TCP/IPプロトコルや光ファイバーなどの技術を分かりやすく教えてくれます。

 

webアプリ開発の要であるhtmlとcssとJavaScriptを覚える

webアプリを開発する場合、絶対に避けては通れないのがhtmlとcssとJavaScriptです。

htmlはwebページの骨子を構成するマークアップ言語です。また、cssはhtmlで作ったページを装飾するための言語です。

JavaScriptはwebブラウザ側からページに動きを持たせるために使うプログラミング言語です。先ほどのWikipediaからの引用にもありましたが、JavaScriptでhtmlを操作することでwebページを動かすことができます。なので、webページの基本はhtmlです。

htmlやcss、JavaScriptの基礎を覚えるならpaizaラーニングProgateをおすすめします。paizaラーニングは動画で、Progateはスライド形式でプログラミングの基礎を教えてくれます。

 

Pythonの基礎を覚える

webアプリを作るためには何らかのプログラミング言語を覚える必要があります。よく使われるのはPHPやRubyですが、Pythonでもwebアプリ開発は可能です。

一応全ての言語の基礎くらいは一通りやってみた著者ですが、覚えやすいプログラミング言語は

  1. Python
  2. Ruby
  3. PHP

だと思っています。PHPは人気ではあるんですが、ちょっと言語の仕様が独特だなと感じる点が多いです。

PythonとRubyは結構似ていますが、より分かりやすいのはPythonです。とにかく文法がシンプルで、コード量が少なく済む上に直感的に記述できるのが特徴的です。

なので、初めてwebアプリを作る言語がPythonなのはありです。

Pythonの基礎もpaizaラーニングProgateで覚えられます。html + css + JavaScript + Pythonで覚えると良いでしょう。

 

Pythonのwebフレームワークを知る

Pythonの基礎を一通り覚えたら、次にはPythonのwebフレームワークの使い方を覚えましょう。

webフレームワークとは、webアプリケーションを作る上でよく使う機能や役に立つプログラムを一つにぎゅっとまとめたシステムのことです。

webフレームワークを使わずともwebアプリ開発は可能ですが、「webフレームワークを使った方が開発の生産性が上がります」。ソフトウェアが機能が豊富になってくればなってくるほど複雑になりますが、webフレームワークを使うことである程度複雑さが軽減されます。

学習コストは上がりますが、フレームワークは実業務でも使われているので、使えるようになっておいて損はありません。

Pythonのwebフレームワークはいくつかありますが、有名なのは「Django」と「bottle」です。

 

Django

「ジャンゴ」と読みます。Web開発の面倒な部分の大部分を処理してくれるので、「車輪の再開発」をすることなく、webアプリ作成に集中できるようになっています。

例えば、ユーザー認証、(画像や動画などの)コンテンツ管理、サイト・マップ、RSSフィードといった機能を最初から持っているので、わざわざ自分で作る必要がありません。

他のwebフレームワークと比べてGoogleトレンドで最も検索されており、かつ日本語で紹介しているサイト数も多く、書籍も販売されているので、一番学びやすいフレームワークであると言えそうです。

 

bottle

「ボトル」と読みます。Djangoが「必要そうな機能をあらかじめ入れておいてくれる」のに対し、bottleは「とにかくシンプルで、必要な機能はあとで自分で入れてね」というスタンスのwebフレームワークです。

その分Djangoよりも軽量で、必要な機能を自分で選別できるというメリットがあります(その分少し中級者向けなイメージです)。

シンプルなwebアプリケーションを作りたい場合はbottleを選択する場合が多い印象です。

GoogleトレンドではDjangoに続いて2番目に検索されており、日本語の書籍もあるので、比較的習得しやすいwebフレームワークです。

 

開発するのに便利なサービスの使い方を知る

Pythonを覚えて、Pythonのフレームワークを覚えるだけでもwebアプリの開発はできますが、もし余裕があればさらに効率的にアプリ開発できるサービスの使い方を覚えるとなお良いかと思います。

特にバージョン管理システムや高機能なエディタはどの現場でも標準で使われているので、むしろ「知ってないと厳しい」レベルです。

ここでは一部のみご紹介します。

 

Git

バージョン管理システムのデファクトスタンダードで、古いシステムでない限りほぼ間違いなく使われているシステムです。

バージョン管理システムとはアプリのバージョンを管理してくれるシステムの総称で、ソースコードの変更履歴を保存しておいたり、ブランチ(枝)を分けて複数のアプリのバージョンを作るといったことが可能です。

現代のwebアプリ開発では必須レベルの知識なので、触り程度でも覚えておくと良いでしょう。

 

Visual Studio Code

Visual Studio Code(VSCode)はMicrosoftが開発・提供している高機能エディタです。

Stack OverflowというITエンジニアのためのQ&Aサイトが調査した結果、Visual Studio Codeは2019年の「最も人気な開発環境」に選ばれています。

https://insights.stackoverflow.com/survey/2019#development-environments-and-tools

私もVSCodeはよく使いますが、使い勝手良し、ビジュアル良し、あらゆる言語の拡張機能が揃っているという点で本当に重宝しています。

無料のエディタを探しているなら、何も考えずにVSCode入れておくのもありだと思います。

 

開発したwebアプリケーションを公開する方法を知る

作ったアプリを多くの人に使ってもらいたいのであれば、アプリを公開する方法を知る必要があります。

ただし、webアプリの公開方法によっては有料になってしまう場合もあるので注意が必要です。

私がおすすめするwebアプリ公開サービスはHerokuです。

HerokuはPaaS(Platform as a Service)の中の一つです。PaaSは基本的にはOS、データベース、プログラミング言語を動かすための環境が整っているレンタルサーバのようなものです。これらの機能が全て揃っているので、Herokuという土台の上に自分で作ったwebアプリを配置するだけでサービスを公開できます。

基本的にこういったホスティングサービスは有料ですが、Herokuはお試し無料で使えるプランがあるので、学習目的で使うのに適しています(本格的に運用することもできますが、サーバー性能的にwebアプリの挙動が遅くなったりします)。

他にもwebアプリを公開できるサービスはありますが、無料でかつ日本語文献も多いので、初めてwebサービスを公開するならHerokuが最もおすすめです。

 

webアプリケーション開発の道は険しいが楽しい

webアプリケーション開発の道は険しいが楽しい

ここまでwebアプリ開発のロードマップをご紹介しましたが「道が険しい…」と感じる方が多いかと思います。

企業が作るようなwebアプリケーションは複数人でこういったステップを踏んで作成されています。なので1人でやるのは非常に大変です。

しかし、企業と違い個人でアプリを作るのは非常に自由で楽しいものです。お金のこととかあまり考えなくて良いので気楽にできるメリットがあります。

それに、作ったwebアプリをどのような形で使うかによって、紹介したステップを一部省略することもできます。例えば個人で使いたいだけなのであればバージョン管理システムやHerokuといったホスティングサービスを使うことはありませんし、小規模なアプリならフレームワークを覚える必要はないかもしれません。

自分が作りたいwebアプリを作るのは、創造性に富んだ楽しい「ものづくり」です。ぜひ挑戦してみてくださいね。