質問: Pythonのブラウザを利用したシステム構築について Pythonの初心者です。Pythonの基礎とスクレイピングやEXCELの操作など基本は一通り学習しました。 webアプリケーションについては全く分かっていません。 仕事の効率化という観点でPythonを学んでいます。スクレイピングやブラウザの自動操作,EXCELの操作などによって業務を効率化できると考えています。 仕事の中に点検作業があるのですが、簡単なWEBアプリケーションを作って業務効率化できないかと考えています。 1.現場に行く。点検記録をスマホでインターネットの自分が作ったwebサイトに入力 2.現場から帰った後、webサイトに入力している点検の数値をPythonのスクレイピング機能によって、自動で読み取り、EXCELシートに転記して点検結果を自動作成 という機能を考えています。 ここで、点検記録を入力して表示できるようなWEBサイト(本当に簡単なもの)を作ろうと思って、Pythonのウェブアプリケーションについても少し勉強してみようと思いました。 入門書を買って、localhost:8080というサーバを立ち上げて練習をしてみたのですが、実際このサーバって仮のサーバであって、例えば現場でスマホを立ち上げてこのサーバにアクセスしようとしてもローカルネットワーク内にないので繋がらないですよね?? 自分はサーバとかのことよく理解していないのですが、きっとサーバを契約してそこにPythonでコード書いてwebサイトを作る必要がありますよね。 この場合、今している勉強って・・・練習としては意味あるけど、多分実用性はないよなって思いました。 この場合は、サーバに契約する必要がありますよね??教えて下さい。 あと、サーバに契約して、Pythonで簡単なサイト(入力欄がいくつかあって、それがweb上に表示されればいいです)作れるのでしょうか? それとも、flaskとかdjangoどちらかを勉強した方が簡単で効率的でしょうか?教えて下さい。 因みに、今私が勉強している参考書は「実践力を身に着ける Pythonの教科書」のP214からの部分です。
回答: > > 仕事の中に点検作業があるのですが、簡単なWEBアプリケーションを作って業務効率化できないかと考えています。 > > > 質問を読んだ限りWebアプリケーションよりスマホのアプリケーションを作った方が良い気がしました。 もちろんWebアプリケーションでも可能です。 自分のWebサイトをスクレイピングする必要は無いと思います。 大抵の場合DBに入力するでしょうから、そのDBに直接接続して値を取ってきた方が早いです。 そもそも、Webに入力された時点でExcelを特定の場所に吐き出したり、メール添付で送ったりすればその手順も省けるので仕様検討が必要です。 > > localhost:8080というサーバを立ち上げて練習をしてみたのですが、 > > > localhostの時点で外部から(公開設定していなければ)見ることはできません。 勉強時点で使っているのは、たいていの場合Django/Flask共に開発用サーバです。 開発サーバは本番運用に使用してはいけないものなので、別の物を考える必要があります。 > > きっとサーバを契約してそこにPythonでコード書いてwebサイトを作る必要がありますよね。 > > > 自宅サーバという手もありますので、「サーバが必要」という意味で「はい」です。 自宅サーバならレンタルサーバより安く運用できる可能性がありますが、すべて(HWもSWも)自分で設定する必要があります。 借りる場合はレンタルサーバー、VPS、クラウドサービスなど色々選べますので調べてみてください。 > > この場合、今している勉強って・・・練習としては意味あるけど、多分実用性はないよなって思いました。 > > > 開発サーバで作るのが「多分実用性はない」とおっしゃっているなら間違いです。少なくとも私はそう思います。 殆どの人は開発サーバで作成しますし、開発サーバで開発しないと効率がすごく落ちます。 本番環境だけで開発できないことも無いですが、凄く手間がかかる割にメリットは少ないです。 開発環境を作成して開発する、本番環境だけで開発するそれぞれにメリット/デメリットがありますが、開発環境を使った方が一般的には良いと思います。 もちろん、開発環境が準備できず本番環境で開発する場合もありますが、今回はPythonを使ったWeb開発ですのであてはまらないと思います。 > > この場合は、サーバに契約する必要がありますよね??教えて下さい。 > > > Pythonが動作するサーバを契約すれば動作します。 契約する場合は、Django/Flaskを動作させている人がいたり公式ドキュメントがあるかを確認した方が良いと思います。 > > あと、サーバに契約して、Pythonで簡単なサイト(入力欄がいくつかあって、それがweb上に表示されればいいです)作れるのでしょうか? > > > 開発環境で動作したものは、大抵サーバでも同じように動作します。 開発環境で想定したとおりのものが作成できれば作成可能です。 > > それとも、flaskとかdjangoどちらかを勉強した方が簡単で効率的でしょうか?教えて下さい。 > > > 私の考えではFlask/Djangoを勉強した方が最終的に早いです。 個人的にはFlask押しです。 Flaskは学習時間が比較的短い時点から作り始めることができます。 ただし、Djangoを学んでしまえば全部入りなのであとあと迷わなくて済むかもしれません。