質問: Pythonのプログラムを使って、ウェブアプリを作りたいと考えています。 ニュース記事を渡すと、それが政治カテゴリなのか、経済カテゴリなのか、スポーツカテゴリなのかを判定するプログラムをPythonでつくりました。このプログラムを利用して、美しいUIをもったウェブアプリを制作したいと思っています。ウェブアプリのイメージとしては、真ん中に大きなテキストボックスがあり、そこにニュース記事(文字列)を入力すると、政治カテゴリである確率は◯%、経済カテゴリである確率は◯%、ニュースカテゴリである確率は◯%というのを表示します。 今のところ、私は下記2つのうちどちらかの方針でできるのではないかと思っています。私は、HTMLとCSSを使った簡単なウェブサイトをつくったことしかない初心者ですので、間違ったことを言っているかもしれません。 ・PythonのWebアプリケーションフレームワーク「Django」をつかってウェブアプリをつくる ・HTMLからPHPを呼び出せるのと同じように、HTMLからPythonを呼び出せる(?)。フレームワーク等をつかわなくてもウェブアプリがつくれる。 この2つの方針のうちどちらかでウェブアプリが実現できるのでしょうか? 他に効率の良い選択肢などあれば、そちらもご教示いただければ助かります。
回答: > > ・PythonのWebアプリケーションフレームワーク「Django」をつかってウェブアプリをつくる > > > はい、これで作れます。Djangoに限らず様々なフレームワークがあります。 > > ・HTMLからPHPを呼び出せるのと同じように、HTMLからPythonを呼び出せる(?)。 > > > これは、HTMLにPythonコードを埋め込むような物をイメージされていると思います。 PythonでHTMLを生成する際には通常「テンプレートエンジン」という物を使います。 必要な場合は、自分の使っているフレームワークに付属している物を使ったり、好みの物をインストールしたりします。 ただPHPと違い、テンプレートにPythonコードを入れるのは最低限にするのが一般的です。 > > フレームワーク等をつかわなくてもウェブアプリがつくれる。 > > > はい、作れます。 フレームワークというのは、テンプレートエンジンや、O/Rマッパー(データベースの操作を、オブジェクトの読み書きを通じてプログラミング言語に馴染んだ形で行なえるようにした物)などの、Webアプリケーションに必要なライブラリ、ツール、規約を集めた物です。 これらの部品を自分で取捨選択出来れば、フレームワークは必要ありません。 質問の例ですと、シンプルな応答だけで(セッション管理やデータの保存、複雑なHTMLの生成などが無い)成り立っていますので、フレームワークを使う事で楽になる部分もあまり無さそうではあります。 また、最初はフレームワーク無しで作る事で勉強になる面もあるかも知れませんし、まずはCGIやWSGIベースで小さく始めてもよいですね。 参考: Pythonで学ぶWebアプリ開発のABC みんなのPython Webアプリ編 HTML版(無料) > > 他に効率の良い選択肢などあれば > > > Google App Engine(GAE)を使えばサーバのメンテなどから開放されます。 ただ、「Standard Environment」はPython3に対応していないので、2の知識が必要になる事があります。 「Flexible Environment」ではPython3が使えますが、これは今まで「GAE」として知られて来た物とは違います。初心者には少し難しいと思いますし、サーバを立ち上げっぱなしになるので最低料金もそれなりに掛ります。 参考: Python を Web 上で使うには