Djangoを使ったWeb開発

記事
IT・テクノロジー

Djangoを使ったWeb開発

最近、Firebase 以外の選択肢に、Python のバックエンドとして Django を触り始めました。大きな理由の一つが、マシーンラーニング(機械学習)を利用したアプリを考えているからです。

マシーンラーニングのライブラリは Python で書かれたものが主流で、これらを利用するには、Python のプログラムの方が都合が良いことが多いからです。

Python のバックエンド

Python ベースのバックエンドは Django の他にも、Flask や CherryPy、Pyramid などいろいろありますが、Django は外部のモジュールを取り込まなくてもほぼ必要な機能が揃っているので、まずは Django の活用を最優先で現在取り組んでいます。

ライトウエイトの場合、Flask も良さそうです。

Python 利用のメリットは?

豊富なライブラリが一番の魅力です。特にデータ処理系のライブラリが豊富で便利です。今回、Python ベースのフレームワークを検討した理由が、

* 機械学習のライブラリ:Scikit-Learn
* データ処理ライブラリ:Numpy
* データ解析ライブラリ:Pandas
などです、このほか、Google の提供する Tensorflow などのディープラーニングのライブラリなども利用できるのは大きな魅力です。

これらを取り込んだ Web ベースのアプリを考える場合、Python を利用する大きな理由になります。

Django の学習コスト

基本的に Django はバックエンドのフレームワークで、独特の操作が必要になります。従って、基本操作は最初から覚える必要があります。といっても、チュートリアルなども充実しており、基本的な物は余り難しい物ではありません。

学習に必要な事は

* Python のプログラミング言語の基本は必要
* Django の基本操作
* SQL データベースの基本
の3点になります。ただし、SQL データベースは、Django のフレームワークでは直接 SQL を書かなくてもアクセス・管理する仕組みがあるので、最小限の知識でもなんとかなります。

SQL データベースも、MySQL や PostgreSQL なども利用できますが、SQLite がデフォルトでサポートしているので、簡単なサイトや学習の過程では、SQLite で十分対応可能です。

あとは、「モデル」と呼ばれる Python のクラス(class)を作成すると、そのオブジェクトを通して、SQL のテーブルにアクセスできる仕組みなので、データベースのアクセスのプログラムに SQL を直接書く必要が殆どないので、プログラミングは PHP などよりは楽にできます。

Django 利用の課題は?
Django で作成した Web サイトをデプロイ(公開)する場合は、Django をサポートしているホスティングサービスを選択する必要があります。基本的に、サーバーの OS にアクセスできるサービスが必要です。

最近では、仮想マシーンのサーバーを提供しているホスティングサービスが多いのでサービス自体は簡単に見つかるので大きな問題ではありません。

フロントエンドのフレームワークの活用は?
Django の場合サーバー側でレンダリングして、各ページを作成して提供できるので、Django だけでもサービスが実現できます。それはそれで便利ですが、従来利用してきた、フロントエンドのフレームワークを活用する事も可能です。

Django を利用して、REST API を作成して、フロントエンドが呼び出すという使い方も可能です。この方法ならば、フロントエンドの実装は使い慣れた React ウヤ Vue を利用して、バックエンドは機能の提供に集中するという実装も選択可能です。

当然ですが、全てのデータを Django 経由で SQL データベースにする必要もなく、必要であれば、Firebase を活用する事も可能です。そう考えると、Django は Web サービスの一つのツールと考えることができます。

まとめ
4 月になって、新年度という事で、今年度は新しい取り組みとして、Django を使った Web サービスにも手を広げていこうと考えています。

大きなポイントは、流行りのマシーンラーニング(機械学習)を取り込んだ Web アプリの実装です。マシーンラーニングをアプリに取り込むことで、より付加価値の高いアプリの開発が可能になります。

しかも、Python ではマシーンラーニングを使うためのライブラリが充実しているので、専門的なマシーンラーニングの知識がなくてもサービスに組み込むことが可能です。今年度は Firebase に加えて Django の活用にも手を広げて配信していきます。

お楽しみに!
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら