問題タブ [webob]
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.
python - ピラミッド - レスポンスの app_iter 内でスレッドローカルが機能しない
次のサンプル コードを使用します。
現在のリクエストを取得します: None。それで、threadlocal
内部では動作しませんapp_iter
か?threadlocal
ビューから離れたいくつかのレイヤーにアクセスする必要がある実際のコードがあり、request
変数を渡すのは面倒です。
python - WebOb を使用してファイルアップロード POST HTTP 要求を作成するにはどうすればよいですか?
私は Ian Bicking の WebOb を使用して、Python Web アプリケーション テストを作成する際に非常に効果的です。を呼び出しwebob.Request.blank('/path...')
、結果のリクエスト オブジェクトのget_response(app)
メソッドを使用して Web アプリケーションを呼び出します。返された応答オブジェクトで、HTTP 応答のステータス コード、コンテンツ タイプ、本文などを確認できます。POST リクエストの作成も非常に簡単です。
しかし、ここでちょっとしたパズルに出くわしました。ファイルのアップロードを予期する Web アプリケーションでビューをテストする必要がありますが、WebOb がその特定の種類の POST をどのように表しているのかよくわかりません。内部に 1 つ以上のファイル アップロード フィールドを含む WebOb リクエストを作成する方法を知っている人はいますか?
python - GAE Python 2.7、_io モジュールなし?
WebOb は io をインポートし、io は SDK によってブロックされている _io をインポートするため、Python 2.7 ランタイムで WebOb 1.1 をインポートできません。_io をホワイトリストに登録する方法はありますか? 明らかにブラックリストに載せるべきではありません。
python - Pasteアプリ内からneo4j.GraphDatabaseを作成すると、セグメンテーション違反が発生するのはなぜですか?
次のコードにより、Javaがセグメンテーション違反になります。
再現するには、まずそのコードをファイル(app.pyなど)に保存してから、を実行しますpython app.py
。次に、ブラウザでhttp:// localhost:8080を試してください。Javaクラッシュハンドラが表示されます。
Javaスタックトレースの先頭は次のようになります。
これはPythonで、Javaの下でneo4j.GraphDatabase
JPypeがneo4jを探しに行くきっかけになっていると思います。EmbeddedGraphDatabase
インタラクティブなPythonセッションでこのコードを実行しても、セグメンテーション違反は発生しません。
おそらくそれは、その例では貼り付けを完全に避けているためです。おそらくこれは、Pasteがneo4jの邪魔になるスレッドを使用することと関係がありますか?私はneo4jフォーラムでやや類似した問題に気づきました:http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-CPython-Pylons-and-threading-td942435.html
...しかし、それはシャットダウン時にのみ発生します。
python - wsgiで大きなファイルのアップロードをどのように制限しますか?
wsgi アプリでファイルのアップロードを安全に処理する最善の方法を理解しようとしています。多くのソリューションでは、cgi モジュールの FieldStorage を使用してフォーム データを解析する必要があるようです。FieldStorage について私が理解していることから、一時ファイルにデータをストリーミングすることにより、舞台裏で少し「魔法」を実行します。
私が 100% はっきりしていないのは、指定された量 (たとえば 10MB) を超えるファイルを含むリクエストを制限する方法です。誰かが数GBのサイズのファイルをアップロードした場合、サーバーのディスク容量を食い尽くす前にリクエストをブロックしたいのは明らかですよね?
wsgi アプリケーションでファイルのアップロードを制限する最良の方法は何ですか?
python - MultiDict をネストされた辞書に変換する方法
POST を Webob MultiDictからネストされた辞書に変換したいと考えています。例えば
したがって、次の POST から:
multidict に;
ネストされた辞書へ
何か案は?
編集
Willが投稿したformencodeパッケージvariable_decode
からメソッドを抽出することになりました。必要な唯一の変更は、リストを明示的にすることです。
これは多くの理由で優れています。
wsgi - webob を使用してデータのチャンクを送信する
webob を使用して簡単なサーバー クライアント プログラムを作成しようとしました。1. クライアントは「Transfer-Encoding」、「chunked」を使用してデータを送信します。 2. 受信したデータはサーバー側で出力されます。
Server.py はデータを正しく受け取りました。ただし、webob から一連のエラー メッセージが表示されました。
ただし、何が起こったのか、または webob を使用してこのような単純なプログラム (チャンクを送信する) を作成するための簡単なガイドラインを教えてください。ありがとう!
コードとエラーは次のとおりです。
サーバー.py
client.py
エラー
python - webob.Response でバイナリデータを返す
webob.Response でバイナリを返そうとしていますが、エラーが発生します
トレースバックを与える
python - リモートユーザーのホスト名+AppEngine Python
に似ている:
remote_addr-リモートユーザーのIPアドレス。
代わりに、リモートユーザーのホスト名を取得する方法はありますか?似たようなものが、
公式ドキュメントのように、リクエストクラスには、リモートユーザーのホスト名を取得するオプションがないようです。
一部のユーザーがインターネットゲートウェイを共有している可能性があるため、ホスト名+ IPの組み合わせでマシンを一意に識別しようとしています。したがって、同じIPアドレスを持つ可能性があり、IPアドレスが十分に一意ではなくなります。
これについて何かアドバイスはありますか?または、少なくとも、匿名のIDを持つマシンを一意に識別する別の方法を誰かが提案できますか?
python - テスト目的で cgi.FieldStorage を作成するには?
webob ベースのアプリケーションでファイルのアップロードを処理するユーティリティを作成しています。そのための単体テストをいくつか書きたいと思います。
私の質問は - webob がアップロードされたファイルに使用するので、簡単な方法で (リクエスト全体をエミュレートすることなく) インスタンスcgi.FieldStorage
を作成したいと思います。FieldStorage
私がそれを行うために必要な最小限のコードは何ですか(「Lorem ipsum」コンテンツを含むテキストファイルのアップロードをエミュレートすることは問題ありません)。それとも、それを嘲笑する方が良い考えですか?