フレームワークの研究を始めて、私はいくつかの深刻なプロジェクトを作成することができました、彼らの販売から利益を受け取りました...そして、私は彼らの維持と改良から収入を受け取り続けます。 この活動は、私の人生に対する態度に影響を与えました...そして、一般的に、すべてが正常です。
その背景は、ある日、友人が私に電話して、車の検問所で働くことの「苦労」(一般人、「税関」)について話し、車を登録するための「簡単な」プログラムを見つける/提供/書くことができるかどうか尋ねたということです税関のエリアで。 彼の混乱した話から、プロジェクトの基本的な要件のみを決定することができました。
- システムは少なくとも50の同時接続で分散する必要があります
- クライアントのユーザーバージョンは、どのコンピューターパークでも動作するはずです。
- クライアントアプリケーションの起動、最小限のインストール、およびその他のジェスチャーで問題が発生しないはずです。 もちろん、このプログラムはどこでも「輝く」ことはなく、日常的なタスクの自動化にのみ必要です。
- システムは、各車両の通関手続きのすべての段階を考慮し、特定の種類の制御のための方向の特定のロジックを持たなければなりません
- 異なるレポートを作成できる必要があります
私はすでに会話を止めたいと思っていましたが、「どれだけのお金が必要か-私たちは支払う」という魔法のフレーズがトリックを行い、「うーん、大丈夫」と言いました。私はオプションを探し始めました。
私のロジックはシンプルでした:
私の好きなプログラミング言語は何ですか?
- Python
どのハードウェアでも動作するクロスプラットフォームアプリケーションをすばやく作成する方法は?
- Webアプリケーションの形式でプロジェクトを作成します。 誰もがブラウザを持っています!
ポストで税関規則の制限を回避し、既存のローカルネットワークでのアプリケーションのインストールを最適化する方法は?
- プロジェクトは、サーバー部分とクライアント部分で構成する必要があります。 サーバー(ベース)がクライアント要求を処理する必要があります
- サーバー、まあ、または多少のまともなステーションが必要です
- ユーザーには、ブラウザを開いてローカルネットワーク上の指定されたアドレスに移動するだけの機会を与える必要があります。
ベースをどうするか?
- シンプルなベースが必要です。インストールや複雑なメンテナンスは必要ありません。
この重要なタスクは、一見すると簡単に解決できることが判明しました。 答えは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つの主要なコンポーネントを操作する必要があることを理解することが重要です。
- modelは、modelsディレクトリのdb.pyファイルです
- controllerは、controllersディレクトリのdefault.pyファイルです
- ビューはビュー/デフォルトのディレクトリにある通常のhtmlファイルです
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つを書き留めています)、その他のタイプの個人的な発達を刺激することに関する多くのトピックがあります。 私はそれが本当にうまくいくと言いたいです! 個人的な経験により検証済み。