Web2pyフレームワーク

私は次のローバーバイクの発明者ではありませんが、Python WEB2PYフレームワークについてお話ししたいだけです。 なんらかの理由で、この素晴らしいツールに関するHabréの記事はありません。 面白い場合は、habrakatの下でweb2pyとその説明を使用した小さな歴史があります。



フレームワークの研究を始めて、私はいくつかの深刻なプロジェクトを作成することができました、彼らの販売から利益を受け取りました...そして、私は彼らの維持と改良から収入を受け取り続けます。 この活動は、私の人生に対する態度に影響を与えました...そして、一般的に、すべてが正常です。







その背景は、ある日、友人が私に電話して、車の検問所で働くことの「苦労」(一般人、「税関」)について話し、車を登録するための「簡単な」プログラムを見つける/提供/書くことができるかどうか尋ねたということです税関のエリアで。 彼の混乱した話から、プロジェクトの基本的な要件のみを決定することができました。





私はすでに会話を止めたいと思っていましたが、「どれだけのお金が必要か-私たちは支払う」という魔法のフレーズがトリックを行い、「うーん、大丈夫」と言いました。私はオプションを探し始めました。



私のロジックはシンプルでした:

私の好きなプログラミング言語は何ですか?




どのハードウェアでも動作するクロスプラットフォームアプリケーションをすばやく作成する方法は?




ポストで税関規則の制限を回避し、既存のローカルネットワークでのアプリケーションのインストールを最適化する方法は?




ベースをどうするか?






この重要なタスクは、一見すると簡単に解決できることが判明しました。 答えはweb2pyです。 当時、私はこのフレームワークについて何も知りませんでした。 しかし、欲望と頑固さがあれば、何も不可能ではありません! さらに、大量使用のアプリケーションを作成する際の強さをテストしたかったのです。



プロジェクトのWebサイトで、最新バージョンをダウンロードし、アーカイブを解凍します。ほとんどすべての準備ができました! ルートディレクトリには、 win2のweb2py.exe 、osxのweb2py.appがあり、次のようにプロジェクトを実行することもできます: python web2py.py 起動時に、サーバーのパスワード、IP、およびポート(デフォルトでは8000)を指定する必要があります。 起動後、ブラウザを開いてサーバーのIP:ポートに移動できます。



既製のウェルカムテストプロジェクトが開始されます。





ADMINISTRATIVE INTERFACEボタンを使用して、サイトを管理できる管理パネルに移動します。





サイトは、APPLICATIONSディレクトリに互いに別々に保存されます。 新しいサイトを作成すると、サイト名を持つ新しいディレクトリが自動的に作成され、必要なディレクトリ構造が形成されます。 新しいサイトの名前がINITの場合、起動時に自動的に起動されます: http : //192.168.0.2 : 8000 他のサイトを開きたい場合は、たとえばhttp://192.168.0.2:8000/welcomeのようにその名前を指定するだけです。



web2pyの仕組みを理解するのはとても簡単です。 動作させるには、3つの主要なコンポーネントを操作する必要があることを理解することが重要です。





db.pyで、データベースへの接続が決定され、たとえば次のように必要なテーブルが作成されます。

db=DAL('sqlite://storage.db') #   db.define_table('image', #     image Field('name'), #   Field('file','upload')) #   
      
      







default.pyコントローラーで、次のようなpython関数を作成します。

 def index(): form = SQLFORM(db.image) #      image if form.process().accepted: #,   ,  response.flash = 'image uploaded' #  return dict(form = form) # ,    
      
      







ブラウザーで関数実行の結果を表示するには、次のように、ビュー/デフォルトディレクトリに関数名を使用してhtmlドキュメントを作成する必要があります。

 {{extend 'layout.html'}} #    <h1>Image upload form</h1> {{form}} # 
      
      







これらの簡単な操作の結果は次のとおりです。



ファイルを選択して、データベースに保存します。 私はそれを簡単にすることはできないと思います!



sqlite3データベースは「そのまま」動作します;さらに、PostgreSQL、MySQL、MSSQL、FireBird、Oracle、IBM DB2、Informix、Ingres、Google App Engineに接続できます。



コードを書く過程で、深刻な問題はありませんでした。 フレームワークのWebサイトには、詳細なドキュメントと例のセクションがあります ! すべて英語です。 フレームワークには独自のグーグルグループweb2py-usersもあります(ところで、応答のレベルと速度は時々驚くべきものです!)。 ドキュメントを深く有意義に読むことで結果が得られ、約1か月後には、正常に機能するシステムが既に実装されていました。 もちろん、実装は大声で言われます。 ディレクトリをUSBフラッシュドライブに転送しました。USBフラッシュドライブはサーバーに配置して、バッチファイルを実行する必要がありました。 サーバーとして、人々自身が何らかのPCステーションを購入しました。 幸いなことに、人々は理解をつかみ、IPアドレスを検索/設定/変更する方法、サービスを開始する方法、およびブラウザでポートのアドレスに移動する方法を知っていました。 そして、私はそれが最も難しい仕事だと思いました。



これで、システムが2年以上機能していると自信を持って言えます。 サーバーに適した人はいません(ほこりを吹き飛ばす以外は)、エラーはありません。平均して、同時接続の数は約50で、メンテナンスは不要です。誰もが満足しています。 したがって、私は自分のスキルを「ポンピング」し、Pythonで多くのことを学びました。 英語でのコミュニケーションと通信の経験を積んだ。 最後にお金を稼ぎました。 成功への自信と知識への絶え間ない渇望がなければ、これは起こり得なかったでしょう。 このプロジェクトの後、私は別の注文を受け取りました。



PS

Habréでの最初の開始トピックがweb2pyに特化したことを嬉しく思います!



PPS

このトピックで、私たちの多くをもう一度トレーニングコースに送りたいと思います。 Habréには、英語を学ぶ必要性、コースオンラインコース(3つ目のコースを合格し、さらに2つを書き留めています)、その他のタイプの個人的な発達を刺激することに関する多くのトピックがあります。 私はそれが本当にうまくいくと言いたいです! 個人的な経験により検証済み。



All Articles