質問: ### 前提・実現したいこと Webアプリケーションで実現したいことは、 1, バーコードリーダを用いて、バーコードを読み取り、Webページから送信 2, 送信された番号をデータベースに蓄積 3, その番号に紐づく商品名をデータベースから読み出す 4, 読み出された商品名をwebサイトで表示 という流れです。 現状ではgithubで公開されている『Pythonエンジニア養成読本』掲載の書籍管理アプリのシステムを参考に、バーコードに関するWebアプリケーションを開発しようとしています。開発環境は、Bottle,SQLAlchemy, bottle-sqlalchemy,WTFormsです。 Pythonエンジニア養成読本の書籍管理アプリコード Pythonエンジニア養成読本 ### 質問 上記の本を読み、コードを動かしたものの、 Webアプリケーションフレームワークに関しては全くの初心者で応用が効かず、 PythonWebアプリケーションフレームワークBottleのチュートリアルを探しています。 以下、英語の公式チュートリアルと日本語のそれらしきものを見つけたのですが、これらを一通り行うことがBottleをはじめる上での最短経路でしょうか。アドバイスいただけましたら幸いです。上記の実装方法に関しても十分に理解できている訳ではないのですが、まずは手を動かすことが重要でしょうか。 公式Tutorial 日本語チュートリアル
回答: 応用が利かないのは、恐らく概念が理解出来ていないからではないでしょうか。 私はそうでした。 現代のWebアプリケーションフレームワークは基本的にMVCというデザインパターンで作られています。 Model View Controllerですね。 最初のうちは、Modelはデータだと思っていても問題ないと思います。 ViewはModelにあるデータをHTMLに埋め込んでユーザーに見せる画面を作るところです。 Controllerは、ModelとViewを取り持ったり、アクセスしてきたユーザーを案内する役割を持ってます。 このURLにアクセスしてきたらこのViewをユーザーに渡そう。みたいな。 Viewは関数なので、ユーザーからのリクエストを受けて、それに応じてModelからデータを引っ張り、加工してユーザーへレスポンス。のように動かします。 MVCやらMVTやら、PushやらPullやら色々びみょうなちがいがあるのですが、BottleなんかはたしかPull-MVCですね。 上述したようにViewがModelからデータを引っ張る(Pull)のでそう呼ばれます。 参考サイトを読めばノリはわかると思います。 貴方が勉強するといいのは、きっとMVCの考え方と、実際に使うBottleの様々な機能が、MVCのどの部分に当てはまるかを考えることだと思います。 そうすれば応用で好きなものが作れるようになると思います。