その移植性と同様に、Bottle ライブラリの使用も非常に簡単です。この記事を読む前に、読者はすでに Python について簡単に理解していると思います。では、何百行ものコードでサーバーの機能を完了できる不思議な操作とはどのようなものでしょうか?様子を見ましょう。
1) pip を使用してインストールします
2) ボトル ファイルをダウンロードします
https://github.com/bottlepy/bottle/blob/master/bottle.py
Hello World から始めて、この簡単な例から Bottle の基本的なメカニズムについて学びましょう。
最初のコード:
まず、ボトル ライブラリから get メソッドと run メソッドをインポートします。
次に、Web サイトを構築する必要があります。最初に IP アドレスとポートを取得する必要があります。関数のこの部分は実行によって完了します。テスト段階では、127.0.0.1 (このマシンのアドレス) とポート 80 (ブラウザーのデフォルト ポート):
このコードを python HelloWorld.py
のように実行します。 Web サイト サーバーが実行中です。ブラウザを開いて 127.0.0.1(:80)
と入力してください。おなじみの 404 エラー メッセージは Not found: '/' です。これは当然のことです。Web サイトにはサーバーのほかに、Web ページという非常に重要なコンポーネントがあるからです。
ブラウザが IP アドレスにアクセスすると、その IP に get リクエストを送信し、Web ページ データが返されるのを待ちます。その後、ボトル ライブラリは get メソッドをカプセル化してこのプロセスを実装します。
コードは次のとおりです:
#def の上にある @ 記号をご存知かどうかはわかりません。 Pythonの文法でいうデコレータですが、意味は簡単に言うとget関数を使ってホームページを修正するという意味です。ここで、@get(‘/’) は、ブラウザーがリクエスト GET 127.0.0.1/ を送信したときに、ホームページを対応する関数に装飾します。任意の処理を実行し、最終的に get リクエストに対する応答を返すことができます。ここでは単純な HelloWorld ページが返されます。再度実行すると、次の効果が得られます:
ボトルにカプセル化されたテンプレート メソッドを使用して分離することもできます。 Web ページ データ。.tpl ファイルに記述された例は次のとおりです:
run 関数にはパラメータ リローダもあります。これを True に設定すると、 Web サーバーの自動リロードをオンにします。変更を加えるとサーバーが自動的にリロードされ、Web サイトのホット アップデートが可能になります。
上で使用した get('/') は本質的に静的ルーティングであり、アドレスはサーバーが実行される前に決定されます。このようにしてください。
では、サーバー ランタイムの場合はどうなるでしょうか?たとえば、Web サイト サーバー上のファイルへのアクセスは静的な方法では実行できませんが、この場合は動的ルーティングを使用できます。
Bottle の動的ルーティングは、route メソッドによって実装されますが、get と同様に、デコレータを使用して関数を装飾し、ルーティング関数を実装します。
#ここでは、デコレータのパラメータ「name」に一意なものが表示されています。変更された関数のパラメータは、コロン以降のパラメータと同じ名前になり、関数内で name パラメータを処理変数として使用し、最終的に応答を返すことができます。
# 動的ルーティングは、ファイルのルーティングに便利です。サーバーには数百または数千のファイルが保存されている可能性があり、それぞれのファイルの静的アドレスに依存することは不可能です。
ここでは、新しい関数 static_file を確認できます。最初のパラメータはファイル名、2 番目のパラメータはルート ディレクトリ アドレス (つまり、ファイルの場所)、現在のファイル システムは:
--HelloWorld.py
--store1.txt
ブラウザにアクセスして
を取得します。
もちろん、ルート パラメータをフォルダーのアドレスに置き換えるだけで、ファイルをフォルダーに配置することもできます。
より複雑な機能を実装したい場合は、GET メソッドだけでなく POST メソッドも使用する必要があります。ここでは、HTML 言語のフォームを使用して、POST リクエストに対するボトル ライブラリの応答を示します。
#まず、上記のように、ファイルをアップロードするためのウィンドウを実装します。
#ここのページはシンプルなフォーム送信インターフェイスです。ここでは詳しく紹介しませんが、開くページは次のとおりです。
次の POST 応答コードは次のとおりです。
POST メソッドとリクエストをボトル ライブラリからインポートします。
get メソッドと同様に、post を使用して応答関数を装飾し、関数本体で request を使用して Web サイト サーバーが受信した post リクエストの本文を取得します。 request.forms.get()メソッドはフォーム内のKeyに対応する文字列を取り出すことができ、request.files.get()メソッドはフォーム内のKeyに対応するファイルを取り出すことができ、saveメソッドはファイルのアップロードを実現するためにデータを保存するために使用されます。
次にテストを実行します。
アップロードをクリックした後、サーバーのルート ディレクトリを開きます (これは、 Python ファイル)、ファイルが正常にアップロードされたことを確認してください。
これらの機能を完了したら、ボトルをネットワークにデプロイする必要があります。結局のところ、ボトルがローカルでのみ実行される場合、Web サイトはそれは何をするのですか?
清華ネットは、各ネットワーク アクセス ポイントにパブリック IP を提供します。cmd で ipconfig を使用して IP アドレスを確認し、run の実行パラメータをパブリック IP に変更してから、IP アドレスと任意のデバイスのブラウザ (携帯電話を推奨しますが、コンピュータのブラウザは非常に遅い場合があります) のポート番号 (デフォルトは 80) を使用すると、アクセスできます。
ボトル ライブラリには、Cookie の読み取りと書き込み、プラグインのインストール、アンインストール、無効化など、多くの強力な機能もあります。ボトルは他のサーバーにデプロイすることもできるため、複数のサーバーの実装が非常に簡単になります。スレッド化. 、これらの関数は読者が探索するのを待っています。
以上がPython 軽量 Web フレームワーク: Bottle ライブラリ!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。