Webアプリケーション開発言語としてのPython
こんにちは。Pythonエンジニア育成推進協会の吉政でございます。
海外で「Why use Python for Web Development?」という面白いコラムがありましたので、独自の見解を交えて意訳してご紹介しますね。原文をご覧になりたい方は、タイトルで検索をされると見れると思います。
さて、Pythonといえばデータ分析や機械学習などが主に脚光を浴びておりますが、実際にはPython利用者の約半数はWebアプリケーション開発をPythonの利用目的の1つとして挙げています。
Pythonは1991年に発表されました。Pythonはシンプルで読みやすいコードになるように設計されているため、プログラミングの初学者にもとっつきやすく、利用者を増やし続けています。
「Simple is better than complex.(シンプルな方が複雑であるよりも良い。)」や「Beautiful is better than ugly.(美しい方が醜いよりも良い。)」といったPythonに関する文章を見かけたことはありませんか? これは、Pythonの哲学を表現した「The Zen of Python」にある19の心得のうちの2つです。
Pythonはこのようにシンプルで美しい一方で、とてもパワフルな言語でもあります。Windows、Linux、macPSといった主要なオペレーティングシステム上でスムーズに動作し、世界規模の企業であるマイクロソフト、Google、Facebook、インスタグラムなどでも、サービスの開発にPythonを利用しています。
Pythonは過去の様々なアンケートにて、「最も人気のあるプログラミング言語」に選ばれています。Pythonを使えば、科学的なアプリケーションでも、グラフィックを使ったシステムアプリケーションでも、ゲーム、コマンドラインユーティリティ、Webアプリケーションでも、様々なものを開発することができます。
Webアプリケーションの開発では通常、Webアプリケーションフレームワークを利用します。WebアプリケーションフレームワークはWebアプリケーションを効率良く開発するためのツールBOXです。人気のあるPython製のWebフレームワークとしては、フルスタック(多機能)なDjango、Pyramid、Zope、ミニマムなFlask、Bottle、FastAPIなどがあります。
この中で特に人気のあるDjangoとFlaskについて、もう少し紹介します。
Django(ジャンゴ)
フルスタック(必要な機能を最初から全て備えている)フレームワークです。Djangoをインストールするだけで、ユーザー認証システム(ログイン機能)、URLルーティング(画面遷移のルール)、テンプレートエンジン(HTMLを書き出すツール)、ORM(データベースの種類を気にせずにデータを扱えるようにする機能)などの機能をフル活用できるようになります。これだけでも充分ですが、さらに追加のツールが必要であれば、Djangoには4000以上の追加パッケージが用意されていますので、必要に応じてダウンドーロすることができます。最初から管理者用のページがあり、ブラウザの画面からテーブルのデータを操作することができるのも特徴的です。
Djangoには2005年に登場してからの長い歴史がありますので、詳細な公式ドキュメントの他にも、便利な練習用のチュートリアルやハウツー情報がインターネット上に数多く用意されています。
Djangoを使って開発されたWebアプリケーションには、インスタグラムがあります。
Flask(フラスコ/フラスク)
Djangoよりも後に登場し、Djangoのライバルになったマイクロフレームワークです。Flaskの哲学は、Djangoのそれとは大きく異なっています。Flaskには2つの主要コンポーネントしかありません。HTMLテンプレートを作成するためのJinja 2テンプレートエンジンと、HTTPルーティングをサポートするツールであるWerkzeugです。Djangoのように認証やORMの機能は付属していませんので、必要であれば自分で実装するか、拡張機能をインストールします。
最初から全ての機能があるわけではないので、ファイル構成も開発者の自由になります。驚くべきことに、たった1つのPythonファイルだけでWebアプリケーションを作り上げることもできてしまいます。
DjangoとFlaskにはそれぞれメリットがあり、どちらを使ってもWebアプリケーションを構築することができます。しかし、もし迷った時には、次の有名な言葉を参考にしてみてはいかがでしょうか。
「Pirates use Flask, The Navy uses Django.」
あるいは、他のフレームワークにもそれぞれ素晴らしいところがありますので、そちらに目を向けてみても良いかもしれませんね。
(執筆協力:野田貴子)
- 資格取得
年間登壇約20回、連載数15本以上、顧問先14社を持つマーケッター。著書「ITエンジニア向け企画力と企画書の教科書」大手企業の職級査定審査員
日本を代表する大手企業を中心にマーケティング支援を実施。日本のIT業界の発展のためには教育が重要であると考え、LinuxやXML、PHP、Ruby on Rails、Python、IPv6の検定試験を立ち上げ、運営組織の代表を歴任する。
吉政忠志(ヨシマサタダシ) 一般社団法人Pythonエンジニア育成推進協会 代表理事
対応エリア | 全国 |
---|---|
所在地 | 江東区 |