Python初心者におすすめするアプリ開発でのWebフレームワーク





こんにちは!スギです。

「Pythonにてアプリを作ってたいけど、どうやって作ればいいのか分からない。。」

「そもそも何のWebフレームワークを使えばいいのか分からない。。」

というお悩みを持つ方が数多くいらっしゃいます。

筆者も実際にPythonでアプリを作る際に、アプリの作成方法やどのWebフレームワークを使えばいいのか、非常に悩みました。

今回はそういったお悩みの解決策となるよう、PythonのWebフレームワークを3つご紹介いたします。

独学に限界を感じたなら...
とりあえず独学でプログラミング学習を始めたけど、右も左も分からずあなたの時間が無駄に終わるどころか挫折するかもしれません。

あなたが時間を無駄にした分を回収したいなら【Python】2022年最新!おすすめのオンラインプログラミングスクールをご確認ください!

※期間限定で学習ロードマップを記載しています!

アプリ開発におけるWebフレームワークとは?

「そもそもWebフレームワークとは何なのか」について解説していきます。

一言でいえば、Webフレームワークとは開発に必要な機能が予め搭載された枠組みのことです。

アプリの開発を1から行うとなると、データベースやルーティングなど必要な作業が多く存在しますが、Webフレームワーク を使うことにより大変な作業をすることなく開発を進める事ができます。

まだ、アプリケーション開発をした事がないというプログラミング初学者の方にオススメとなっています。

こういったフレームワークはWeb以外にも様々なものが存在し、オンラインショップなどが挙げられます。

自分の欲しい商品があった場合、わざわざ取り扱っているお店に行かずとも携帯などで自分の欲しい商品名で検索をすれば購入をする事ができます。

また、仕事で疲れて自宅にて料理を作るのが面倒な時にはご飯を提供してくれるお店に行くことにより、時間をかけることなくご飯を食べることができます。

このように、フレームワークという概念は僕らの身の回りにあり、僕らが1からやる必要があったものが現代では手軽にできるようになりました。

とはいえ、Webフレームワークは便利である反面デメリットも少なからずあります。

 

それは、学習コストが増える事です。

言語ごと色々なWebフレームワークがありますが、それぞれ決められた変数で開発を行っていく必要があるため、学習する時間が多くなってしまいます。

プログラミング言語では基本的に変数につける名前は自由となっていますが、Webフレームワーク特有のコードの書き方で記述する必要があります。

Webフレームワークであるため、結果的にコードの量は減らす事ができますが、学習する事が増えるのを念頭に入れときましょう。

ただ、1から開発する方が時間がかかるのでWebフレームワークの学習をするべきです。

Webフレームワーク – Flask

Webフレームワークが何かお伝えしたところで、本題であるPythonのWebフレームワークをご紹介していきます。

一つ目はFlaskです。

Flaskはマイクロフレームワークと呼ばれ、開発で必要な機能が最小限に搭載された簡易的なWebフレームワークです。

大規模な開発には向いていませんが、アプリ開発を行ってみたい方とりあえずアプリ作ってみたい方にオススメのアプリケーションとなります。

Flaskの操作方法

では、Flaskを使ってみましょう。

まずはインストールを行います。

pip install Flask

インストールが完了後、ファイルを作成して下記のコードを入力してみてください。

from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def sample():
    sample = "Hello world"
    return sample
 
if __name__ == "__main__":
    app.run()

 

こちらは Hello world の文字列を出力させるコードとなります。

2行目にてapp変数にFlaskが使えるように代入を行い、@app.route(‘/’)と処理をどこで閲覧するのか定義しています。

最後にapp.run()とする事で処理したコードの動作を行います。

コードの記載が完了したら、以下のターミナルにて起動させます。

python3 ファイル名
 * Running on http://127.0.0.1:8000/ (Press CTRL+C to quit)

 

表示されたURLにアクセスすると、Hello world が表示されるかと思います。

このように、FlaskはPythonの基礎が理解できていれば、簡単にアプリ開発を行う事ができます。

Webフレームワーク – Bottle

二つ目はBottleです。

PythonのWebフレームワークの中では一番シンプルであり、Flaskより軽量なWebフレームワークになります。

「bottle.py」という1ファイルだけで構成されているので、サーバーへのデプロイなども非常に簡単です。

BottleはFlaskに比べて参考サイトなど記事は少ないものの、勉強する目的で使用する分には大変便利なWebフレームワークとなります。

Bottleの操作方法

早速、Bottleを使ってみましょう。

インストールはFlaskと同じやり方です。

pip install bottle

 

次にファイル作成し、コードの記載を行います。

from bottle import route, run

@route('/')
def hello():
    sample = "Hello world"
    return sample

run()

 

Flaskに比べてコードの量が少ない事がお分かりいただけるかと思います。

Bottleでは変数に宣言をせず、使用する事ができます。

ただ、閲覧場所を定義するrouteや動作させるrunなどインポートする必要があるので忘れずに行なってください。

コードが記載されたら、起動させます。

python3 ファイル名
Bottle v0.12.17 server starting up (using WSGIRefServer())...
Listening on http://localhost:8000/
Hit Ctrl-C to quit.

 

Flask同様、URLにアクセスし、Hello world が表示されます。

Webフレームワーク – Django

最後にDjangoのご紹介です。

DjangoはPythonのWebフレームワークの中で最も有名で使用されています。

その理由はアプリ開発において、必要な機能が網羅的に用意されている事が挙げられます。

上記のフレームワーク、FlaskやBottleは必要最小限の機能のみが搭載されているが故に、「もっとこういう機能が欲しい」となった場合に対応が難しくなります。

Djangoではそういった事態でも柔軟に対応ができるように、予め開発に必要な機能やモジュールが用意されているのです。

他にもDjangoが使われる理由としてセキュリティの安全性が挙げられます。

Djangoではユーザー認証システムによって、ユーザーのアカウントとパスワードを安全に管理する方法が提供されており、

これにより、自分以外の他の誰かがアプリケーション内に侵入される恐れがありません。

安全にアプリ開発を行う事ができます。

Djangoの操作方法

上記のようにインストールから起動をDjangoにて行うと膨大な量になってしまうので、筆者がオススメする学習サイトDjangoBrothersを参考に行なってみてください。

https://djangobrothers.com/

Pythonのタイプ別webフレームワーク

pythonは知られていないだけで数多くのwebフレームワークを利用することができます。

その中でもwebフレームワークに関して3つのタイプが存在するため、理解しておくと用途に合わせた使い方ができます。

・フルスタックフレームワーク

・マイクロフレームワーク

・非同期フレームワーク

タイプ別で一つ一つ解説していきます。

フルスタックフレームワーク

こちらのフレームワークは、アプリケーション開発において必要な全ての機能が備わっているフレームワークになります。

小規模なものから大規模なシステム構築まで、対応することができる汎用性を兼ね備えています。

フルスタックフレームワークの例として挙げられるのが以下のものです。

・Django

・web2Py

・Pylons

・CubicWeb

先ほど紹介したDjangoの需要がフルスタックフレームワークの中でも群を抜いている状態です。

マイクロフレームワーク

こちらのフレームワークは、最低限の機能が搭載されているフレームワークになります。

データベースであったり抽象化レイヤー、入力フォーム、特定ツールとの連携やライブラリなどの追加機能は持ち合わせていません。

小規模なシステム開発を希望している人であれば、軽量な動作を行うことができるのでおすすめです。

マイクロフレームワークの例として挙げられるのが以下のものです。

・Flask

・Bottle

・CherryPy

・Dash

マイクロフレームワークでよく利用されているのがFlaskかなと思いますが、Dashなんかも見かけることがあります。

非同期フレームワーク

こちらのフレームワークは、多数の同時接続処理を可能としたフレームワークになっています。

非同期フレームワーウにおいては、同時接続を行うことができるマイクロフレームワークとして少しずつでですが人気が上昇しています。

効率的な処理を行いたいシステム開発があれば、非同期フレームワークがオススメです。

非同期フレームワークの例として挙げられるのが以下のものです。

・Tornado

・Sanic

・Growler

・Aiohttp

比較的利用されているのはTornadoのように思えます。

また、これらのどのタイプのフレームワークを利用するかによって、システムの特徴やメリットに直接的・間接的に関わってきます。

そのため、それぞれのタイプ別フレームワークのメリット・デメリット等を把握し、開発したいと考えるシステム・アプリケーションに最適なものを選ぶことが重要です。

まとめ

いかがでしたでしょうか?

今回はPythonのWebフレームワークである、

・Flask

・Bottle

・Django

をご紹介していきました。

また、タイプ別のフレームワークの特徴とメリットについても解説しました。

もし、Pythonの基礎学習がある程度理解して次のステップに進もうと思われている方などいましたら、今回ご紹介したWebフレームワークを参考にして開発を行なってみてください。

最後まで一読して頂き、ありがとうございました!

プログラミング学習で作りたいものがない場合

独学・未経験から始める人も少なくないので、プログラミング学習の継続や学習を続けたスキルアップにはそれなりのハードルが設けられています。

また、プログラミング学習においても、学習者によってはすでに学習対象とするプログラミング言語や狙っている分野が存在するかもしれません。

そのため、費用を抑えて効率的にピンポイント学習で取り組みたいと考える人も少なくありません。

また、プログラミング学習において目的を持って取り組むことは大切ですが、『何を作ればいいかわからない。。』といったスタートの切り方で悩む人もいると思います。

そういったプログラミング学習の指標となる取り組み方について詳細に記載したまとめ記事がありますので、そちらも参照して頂けると幸いです。

プログラミングを学ぶ上で作りたいものがない人へ提案させてください

2019.11.21

Pythonに特化した学習を進めたい人へ

筆者自身は、Pythonista(Python専門エンジニア)としてプログラミング言語Pythonを利用していますが、これには取り組む理由があります。

プログラミングの世界では、IT業界に深く関わる技術的トレンドがあります。

日夜新しい製品・サービスが開発されていく中で、需要のあるプログラミング言語を扱わなければなりません。

トレンドに合わせた学習がプログラミングにおいても重要となるため、使われることのないプログラミング言語を学習しても意味がありません。

こういった点から、トレンド・年収面・需要・将来性などを含め、プログラミング言語Pythonは学習対象としておすすめとなります。

オンラインPython学習サービス – 『PyQ™(パイキュー)』

「PyQ™」は、プログラミング初心者にも優しく、また実務的なプログラミングを段階的に学べることを目指し、開発されたオンラインPython学習サービスです。

Pythonにおける書籍の監修やPythonプロフェッショナルによるサポートもあり、内容は充実しています。

技術書1冊分(3000円相当)の価格で、1ヶ月まるまるプログラミング言語Pythonを学習することができます。

特に、、、

・プログラミングをはじめて学びたい未経験者

・本、動画、他のオンライン学習システムで学習することに挫折したプログラミング初心者

・エンジニアを目指している方(特にPythonエンジニア)

かなり充実したコンテンツと環境構築不要なため、今すぐにでも学び始めたい・学び直したい、Pythonエンジニアを目指したい人におすすめです。

オンラインPython学習サービス「PyQ™(パイキュー)」
※技術書1冊分の価格から始めて実務レベルのPythonが習得できます

【おすすめ】Python学習サイトPyQが初心者に選ばれる理由

2020.03.07



ABOUTこの記事をかいた人

sugi

大学卒業後、IT企業に就職を果たす。システム開発・人工知能に触れながら大手企業と業務をこなす。2年半後脱サラし、フリーランス活動経験を経て 2019年2月から起業し、今に至る。 自社サービス及び製品を開発、ブログ収入、クラウドソーシングなど、多方面で売り上げを立てている。