問題タブ [basehttpserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
13029 参照

python - BaseHTTPServer.BaseHTTPRequestHandlerPythonでタイムアウトを実装する方法

私のPythonスクリプトでは、Webサーバーを実行しようとしています。

リクエストハンドラークラスがあります:

今、私は常にいくつかのデータがdo_GETでキャッチされるのを待ちます。たとえば60秒後にこのWebサーバーを閉じるタイムアウト操作を実装したいと思います。私はそれを実装することができません。このシナリオでWebサーバーの自動シャットダウン操作を実装する方法を教えてください。

ありがとうタラシン

0 投票する
3 に答える
11228 参照

python - Python BaseHTTPServerRequestHandler do_GET メソッドで画像コンテンツ タイプを提供するにはどうすればよいですか?

BaseHTTPServer を使用して Web コンテンツを提供しています。Content-types 'text/html' または 'text/css' または 'text/js' を提供でき、ブラウザ側でレンダリングされます。しかし、しようとすると

self.send_header('Content-type', 'image/png')

.png ファイルの場合、まったくレンダリングされません。

以下にサンプルを示します。

これはjavascriptに最適です

クライアント側でマークアップすると、画像コンテンツがレンダリングされないようです。壊れた画像として表示されます。

何か案は?

0 投票する
1 に答える
1662 参照

python - python basehttpserver: 404 レスポンスを変更できますか?

pythons basehttpserver ライブラリから送信された 404 応答ページを変更することはできますか?

0 投票する
1 に答える
2031 参照

python - BaseHTTPRequestHandler から HTTPServer のメンバーにアクセスするにはどうすればよいですか?

GUI、HTTP、および TCP サーバーの両方を含む小さなアプリケーションを作成しています。GUI は、HTTP および TCP サーバーからクライアントに返される応答を制御します。サーバーとして HTTPServer および SocketServer.TCPServer クラスを使用し、BaseHTTPRequestHandler と StreamRequestHandler の両方のサブクラスを使用しています。しかし、まずは HTTP 側に焦点を当てましょう。

HTTPServer がリクエストを受け取ると、GUI の状態を確認し、適切に応答する必要があります。GUI を指す HTTPServer にメンバー変数を追加しましたが、BaseHTTPRequestHandler サブクラスからこのフィールドにアクセスする良い方法がわかりません。これはどのように行うことができますか?

以下は私が現在持っているコードですが、Python は例外をスローしますMyHTTPHandler instance has no attribute 'server'

0 投票する
1 に答える
11533 参照

python - BaseHTTPRequestHandler の HTTP リクエストから Host フィールドを取得する

BaseHTTPRequestHandler クラスを使用してスクリプトを作成しています。メソッドでは、HTTP リクエストからフィールドdo_GET(self)のコンテンツを取得する必要があります。ここで提案されHostているようなものを正規表現することでそれを行うことができます: BaseHTTPServer でサイトドメインを決定しますが、それはちょっと醜いので、それを行うためのよりクリーンな方法があるかどうか疑問に思います。str(self.headers)

前もって感謝します。

0 投票する
1 に答える
48425 参照

python - BaseHTTPRequestHandler.do_POST()でHTTPメッセージ本文を抽出する方法は?

do_POST()メソッドではBaseHTTPRequestHandler、プロパティを介してPOSTリクエストのヘッダーにアクセスできますself.headers。しかし、メッセージの本文にアクセスするための同様のプロパティが見つかりません。次に、どうすればそれを実行できますか?

0 投票する
3 に答える
20671 参照

python - Python BaseHTTPServer、「壊れたパイプ」エラーをキャッチ/トラップするにはどうすればよいですか?

Pythonで短縮URLトランスレータエンジンを構築しましたが、大量の「壊れたパイプ」エラーが発生しました。BaseHTTPServerクラスを使用するときにそれを最適にトラップする方法に興味があります。これはコード全体ではありませんが、私がこれまでに行っていることのアイデアを提供します。

コード自体はうまく機能しますが、本番環境ではほとんどすぐにエラーが発生し始めます。

これらのエラーの大部分は、send_header()メソッドの呼び出しに問題があることに起因しているようです。ここで私が書いているのは次のとおりです。

したがって、コードのどこでこのIO例外をトラップしようとするのか興味があります...各self.send_header / self.end_headers / self.wfile.write呼び出しの周りにtry/except呼び出しを記述しますか?私が時々目にする他のエラーはこれですが、これをキャッチするためにどの例外を監視するべきかわかりません:

0 投票する
1 に答える
921 参照

python - BaseHTTPクラス「WebServer」で別のクラスの変数/関数を取得するにはどうすればよいですか

renegade.py (メインの前)

webserver.py

0 投票する
4 に答える
1017 参照

python - Python で Web アプリをモックする方法 (Django プロジェクトのテスト用)

Django の私のアプリは、別のアプリケーションの HTML からデータを破棄してインポートします。各解析機能をテストしましたが、他のアプリケーションを通過するクローラーもテストしたいと思います。この後、いくつかの統合テストを行いたいと思います。テストをできるだけ簡単に実行できるようにするために、ハードコーディングされた HTML を提供し、通過するすべてのパスを含む小さな Web アプリを作成して、インポートされた Web アプリケーションをモックしたいと考えています。

編集: また、私のモックには、いくつかの動的な動作が必要です。たとえば、失敗したログインと成功したログインの両方をテストするためです。そのため、静的ファイルのみを提供することはできません。

このような模擬アプリケーションをどのように作成しますか? サブクラス化しBaseHTTPServerますか?CG?いくつかのフレームワークを使用しますか (ツイルと同様に、Quixote を使用します)? それとも、Django を使用するのが合理的でしょうか? それが私が使用することを考えている解決策ですが、Django はそのような問題には複雑すぎるようです。OTOH、別のフレームワークは、そのようなほとんどの必要性に対して依存関係が重BaseHTTPServerすぎて、使用するには生すぎます。

2番目の編集:クラス、リクエストなどのモックには興味がありません。それは私が使用したいアプローチではなく、そのようなアプローチを使用する提案は私への答えではありません今まで私にそれを提案しました)。私の質問について考えるのが難しすぎる場合は、テストについて話したことを忘れてください.Pythonを使用して一般的にWebアプリケーションを大雑把にシミュレートするにはどうすればよいですか?

0 投票する
1 に答える
2030 参照

javascript - baseHTTPserver は JavaScript ライブラリを使用できません

PythonベースのWebサーバーを構築しています(はい、Python は Web サーバーには適していませんが、これしか選択肢がありません。私の目的には、PHP などの別の優れた選択肢がありますが、私は python に制限されています)。

データの視覚化に ProtoVis を使用しています。(JavaScript ベースの可視化ツール)

次のコードは、コピーしてテスト ファイルに貼り付け、.html の名前を変更するだけで機能します (その横に protovis ライブラリが抽出されている場合)。

試してみたい場合は、こちらから入手してください https://github.com/mbostock/protovis/zipball/v3.3.1

ただし、baseHTTPserver で上記のコードを返すと、うまくいかないようです。調べたところ、「protovis/protovis.js」にあるライブラリが正しくインクルードされていないようです。

chart() 関数は上記の行を返します。

CentOS 6.2 で Python 2.6 を使用していますが、使用している JavaScript ライブラリを含めるために baseHTTPserver で何か特別なことをする必要がありますか? 同じコードが Apache + PHP で正常に機能し、単純にエコーしました。

何か案が?

======================== ソリューション =======================

Apache+PHP とは異なり、BaseHTTPServer は、そのフォルダーに入れたものを提供するだけではありません。マシューが説明したように、自分で行うか、別のサーバーから protovis.js を提供する必要があります (別のポートで実行されている SimpleHTTPServer の場合もあります)。– ヴァシリー・ファロノフ

以下の Matthew Adams の指示を参照してください。

この問題を解決するために私がしなければならなかったことは、JavaScript ファイルを処理する別のメソッドを do_GET() に追加することでした。

問題を解決します。

解決策をありがとう、本当に感謝しています