ホームページ >バックエンド開発 >Python チュートリアル >Python 軽量 Web フレームワーク: Bottle ライブラリ!

Python 軽量 Web フレームワーク: Bottle ライブラリ!

WBOY
WBOY転載
2023-04-13 14:10:061310ブラウズ

Python 軽量 Web フレームワーク: Bottle ライブラリ!

その移植性と同様に、Bottle ライブラリの使用も非常に簡単です。この記事を読む前に、読者はすでに Python について簡単に理解していると思います。では、何百行ものコードでサーバーの機能を完了できる不思議な操作とはどのようなものでしょうか?様子を見ましょう。

1. ボ​​トル ライブラリのインストール

1) pip を使用してインストールします

Python 軽量 Web フレームワーク: Bottle ライブラリ!

2) ボトル ファイルをダウンロードします

https://github.com/bottlepy/bottle/blob/master/bottle.py

2.「HelloWorld!」

Hello World から始めて、この簡単な例から Bottle の基本的なメカニズムについて学びましょう。

最初のコード:

Python 軽量 Web フレームワーク: Bottle ライブラリ!

まず、ボトル ライブラリから get メソッドと run メソッドをインポートします。

次に、Web サイトを構築する必要があります。最初に IP アドレスとポートを取得する必要があります。関数のこの部分は実行によって完了します。テスト段階では、127.0.0.1 (このマシンのアドレス) とポート 80 (ブラウザーのデフォルト ポート):

このコードを python HelloWorld.py

Python 軽量 Web フレームワーク: Bottle ライブラリ!

のように実行します。 Web サイト サーバーが実行中です。ブラウザを開いて 127.0.0.1(:80)

Python 軽量 Web フレームワーク: Bottle ライブラリ!

と入力してください。おなじみの 404 エラー メッセージは Not found: '/' です。これは当然のことです。Web サイトにはサーバーのほかに、Web ページという非常に重要なコンポーネントがあるからです。

ブラウザが IP アドレスにアクセスすると、その IP に get リクエストを送信し、Web ページ データが返されるのを待ちます。その後、ボトル ライブラリは get メソッドをカプセル化してこのプロセスを実装します。

コードは次のとおりです:

Python 軽量 Web フレームワーク: Bottle ライブラリ!

#def の上にある @ 記号をご存知かどうかはわかりません。 Pythonの文法でいうデコレータですが、意味は簡単に言うとget関数を使ってホームページを修正するという意味です。ここで、@get(‘/’) は、ブラウザーがリクエスト GET 127.0.0.1/ を送信したときに、ホームページを対応する関数に装飾します。任意の処理を実行し、最終的に get リクエストに対する応答を返すことができます。ここでは単純な HelloWorld ページが返されます。再度実行すると、次の効果が得られます:

Python 軽量 Web フレームワーク: Bottle ライブラリ!

ボトルにカプセル化されたテンプレート メソッドを使用して分離することもできます。 Web ページ データ。.tpl ファイルに記述された例は次のとおりです:

Python 軽量 Web フレームワーク: Bottle ライブラリ!

run 関数にはパラメータ リローダもあります。これを True に設定すると、 Web サーバーの自動リロードをオンにします。変更を加えるとサーバーが自動的にリロードされ、Web サイトのホット アップデートが可能になります。

3. 動的ルーティングとファイルのダウンロード

上で使用した get('/') は本質的に静的ルーティングであり、アドレスはサーバーが実行される前に決定されます。このようにしてください。

では、サーバー ランタイムの場合はどうなるでしょうか?たとえば、Web サイト サーバー上のファイルへのアクセスは静的な方法では実行できませんが、この場合は動的ルーティングを使用できます。

Bottle の動的ルーティングは、route メソッドによって実装されますが、get と同様に、デコレータを使用して関数を装飾し、ルーティング関数を実装します。

Python 軽量 Web フレームワーク: Bottle ライブラリ!

#ここでは、デコレータのパラメータ「name」に一意なものが表示されています。変更された関数のパラメータは、コロン以降のパラメータと同じ名前になり、関数内で name パラメータを処理変数として使用し、最終的に応答を返すことができます。

Python 軽量 Web フレームワーク: Bottle ライブラリ!

# 動的ルーティングは、ファイルのルーティングに便利です。サーバーには数百または数千のファイルが保存されている可能性があり、それぞれのファイルの静的アドレスに依存することは不可能です。

Python 軽量 Web フレームワーク: Bottle ライブラリ!

ここでは、新しい関数 static_file を確認できます。最初のパラメータはファイル名、2 番目のパラメータはルート ディレクトリ アドレス (つまり、ファイルの場所)、現在のファイル システムは:

--HelloWorld.py

--store1.txt

ブラウザにアクセスして
を取得します。

Python 軽量 Web フレームワーク: Bottle ライブラリ!

もちろん、ルート パラメータをフォルダーのアドレスに置き換えるだけで、ファイルをフォルダーに配置することもできます。

4. POST レスポンスとファイルのアップロード

より複雑な機能を実装したい場合は、GET メソッドだけでなく POST メソッドも使用する必要があります。ここでは、HTML 言語のフォームを使用して、POST リクエストに対するボトル ライブラリの応答を示します。

Python 軽量 Web フレームワーク: Bottle ライブラリ!

#まず、上記のように、ファイルをアップロードするためのウィンドウを実装します。

#ここのページはシンプルなフォーム送信インターフェイスです。ここでは詳しく紹介しませんが、開くページは次のとおりです。

Python 軽量 Web フレームワーク: Bottle ライブラリ!

次の POST 応答コードは次のとおりです。

Python 軽量 Web フレームワーク: Bottle ライブラリ!

POST メソッドとリクエストをボトル ライブラリからインポートします。

get メソッドと同様に、post を使用して応答関数を装飾し、関数本体で request を使用して Web サイト サーバーが受信した post リクエストの本文を取得します。 request.forms.get()メソッドはフォーム内のKeyに対応する文字列を取り出すことができ、request.files.get()メソッドはフォーム内のKeyに対応するファイルを取り出すことができ、saveメソッドはファイルのアップロードを実現するためにデータを保存するために使用されます。

次にテストを実行します。

Python 軽量 Web フレームワーク: Bottle ライブラリ!

アップロードをクリックした後、サーバーのルート ディレクトリを開きます (これは、 Python ファイル)、ファイルが正常にアップロードされたことを確認してください。

Python 軽量 Web フレームワーク: Bottle ライブラリ!

5. 概要

これらの機能を完了したら、ボトルをネットワークにデプロイする必要があります。結局のところ、ボトルがローカルでのみ実行される場合、Web サイトはそれは何をするのですか?

清華ネットは、各ネットワーク アクセス ポイントにパブリック IP を提供します。cmd で ipconfig を使用して IP アドレスを確認し、run の実行パラメータをパブリック IP に変更してから、IP アドレスと任意のデバイスのブラウザ (携帯電話を推奨しますが、コンピュータのブラウザは非常に遅い場合があります) のポート番号 (デフォルトは 80) を使用すると、アクセスできます。

ボトル ライブラリには、Cookie の読み取りと書き込み、プラグインのインストール、アンインストール、無効化など、多くの強力な機能もあります。ボトルは他のサーバーにデプロイすることもできるため、複数のサーバーの実装が非常に簡単になります。スレッド化. 、これらの関数は読者が探索するのを待っています。

以上がPython 軽量 Web フレームワーク: Bottle ライブラリ!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。