52811
こんにちは。Python3とDjangoを使ってもっとも簡単にwebサービスを作りたいと思っています。

## Environment

  * Python3 (anaconda)
  * Mac

* * *

## サービスの内容

  1. beautifulsoupでスクレイピング
  2. いくつかデータを用意する（上のもの：例：math, science, hisotryそれぞれの点数）
  3. 使うデータを選択するinteracrtiveなボックスを用意する
  4. 選んだデータを縦にconcateし、大きなdataframeを用意するイメージ
  5. データを整形してscatterplotするだけ

* * *

そこで色々と調べた結果以下のものが必要なのかな?と思いました。

  * Python3 (これしか書けません)
  * Django （python用のウェブサイトのやつ？）
  * Heroku （簡単にネット上に公開できるらしい）
  * PostgreSQL （ちょっとだけ囓った）
  * Docker （サービスを始めるときに使うらしい）

今回は完全素人によるものなのでもっとも簡単でシンプルなルートでやりたいと思っています。  
なのでもう少し調べた結果

  * Docker
  * PostgreSQL

は要らない？のかなと思いました。理由は

  * Dockerは仮想環境？を用意するものなので必須ではない。
  * PostgreSQLは今回はスクレイピングして直接使えばいいから必須でない

本当は勉強のために上の２つも使いたいのですが一気には難しそうなので絞りました。

この流れであっているでしょうか？  
また、改善点などあれば教えていただきたいです。
CC BY-SA 4.0
2019-02-16T03:35:11.977
52807
2019-05-08T03:39:56.400
2019-05-08T03:39:56.400
3060
question
python3 docker django heroku postgresql
もっともシンプルなwebサービスを作りたい
主観的な答えしか集まらない質問ではありますが、ある程度方向性や具体性があるためコメントがわりに回答をしておきます。

# 現在の案について

どこか外部のサイトを取得して、その内容からPandasなどを利用して可視化するサイトを作ろうとしているように読み取りましたが、いくつか問題点があります。

  * データベースを使いキャッシュや定期的なクローリングなどをしない場合、ユーザーの操作があるたびにスクレイピングを行うため外部サイトに負荷を掛けてしまう（最悪、不正アクセス禁止法や威力業務妨害などに問われる場合があります）
  * anacondaは数学やデータ分析に向いた環境であるものの、Web開発には不向きである
  * 現在のレベル感が分かりませんが、いま作ろうとしているサービスは **最も簡単** にはならないように思います。Javascriptを利用してある程度インタラクティブな操作を提供しようとしているようですが、その辺りの認識が欠けているように読み取りました。

# おすすめすること

DjangoとHerokuを使うというのは良いと思うので、まずはDjangoやHerokuのチュートリアルを行い、WebサービスをHerokuにデプロイする練習をしてからもう一度やりたいことを考え直すのをおすすめします。
CC BY-SA 4.0
2019-02-16T07:32:18.837
52811
2019-02-16T07:32:18.837
29826
52807
answer