問題タブ [beaker]

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 投票する
1 に答える
194 参照

python - ビーカー セッションの last_accessed 時間は常になしですが、_accessed_time は変化しています

beakers WSGI SessionMiddlewareブラウザとアプリケーション間のセッションを管理するために使用しています。それ以降のリクエストに対してセッションが最初にアクセスされたときを区別しようとしています。

docs から、WSGI 環境で使用できる 2 つの有用な値が表示されます ["beaker.session"].last_accessed["beaker.session"]["_accessed_time"]

ただし、リクエストが繰り返されると、["beaker.session"].last_accessedは常に を返しますがNone、 のタイムスタンプ値は["beaker.session"]["_accessed_time"]リクエストごとに増加していることがわかります。

各リクエストは a -セッションで["beaker.session"].save()の設定と使用のさまざまな組み合わせを試しましたが、喜びはありません: は常にです。auto=True.save() / .persist().last_accessedNone

セッションを使用して実際にデータを永続化するのではなく、の作成と通過を管理するためだけsession.idです。(「Cookie」のセッションタイプを使用しています)

0 投票する
2 に答える
517 参照

python - ピラミッドビーカーとuwsgiを使い始める

私はここでちょっと迷っています。ピラミッドビーカーを使用してPythonスクリプトを開始するにはどうすればよいですか。私はこのようにuwsgiを介してそれを呼び出すことを好みます:

しかし、curlを使用して呼び出すと、

script.pyはこんな感じ

ありがとう!

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

python - インスタンス変数に基づいてキャッシュ デコレータを条件付きで無効にする

クラスの特定のメソッドをキャッシュしたい - ただし、read_onlyクラスのインスタンスにフラグが設定されている場合のみ。

したがって、以下のオブジェクトでは、メソッドをキャッシュ可能にしたいのですが、 True のget()場合のみです。self.readonly

インスタンス化されたときではなく、クラスが定義されたときに設定されるため、デコレータを条件付きで使用することはできません。

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

python - Beaker との Bottle.py セッション

初めての質問者です。

私は現在、Bottle マイクロフレームワークを使用して Beaker を適切に使用する方法に苦労しています。問題のあるプログラムは次のとおりです。

お気づきかもしれませんが、私app_session = app.request.environ.get('beaker.session')はすべてのdefブロックで呼び出しを続けているので、次のようなエラーは返されませTypeError: 'NoneType' object does not support item assignmentん: --- Python は関数の外にある変数を認識しないようです (間違っていたら訂正してください)。

そして、ここに質問があります:

  1. app_session = app.request.environ.get('beaker.session')のインスタンスを 1 つだけにして、すべてのブロックで使用できるようにするにはどうすればよいですdefか (同じセッションをチェックして使用するため、実際には 1 つのインスタンスが必要です)。
  2. これが唯一の方法である場合 (醜いですが)、セッションを必要とするすべてのルートを組み合わせて、単一のインスタンスを達成できるようにする必要がありapp_sessionますか?

何かのようなもの:

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

python - Pyramid アプリケーションからのログイン情報をどのように保存すればよいですか? ビーカー?

私は PHP の世界から来て、Pyramid フレームワークの学習を始めたばかりです。現在、ユーザーデータを保存するための最良のオプションを見つけようとしています。

そのため、PHP で、Cookie を組み合わせて php 組み込みセッションを利用するモデルをコーディングしました。Cookie は、ユーザーがログイン時に [remember me] ボックスにチェックを入れることを選択した場合にのみ使用されました。そのため、ユーザーがログインしたとき、セッションにはログインを正当化するデータが含まれていました。セッションが期限切れになると、有効な Cookie のチェックが行われ、セッションが再作成され、Cookie が有効になるまで日付が延長されます。

そこで、ここ Pyramid で、私は似たようなことをしたいと思いますが、おそらくより簡単で優れたものです。現在、Beaker for Pyramid に興味があります: http://beaker.readthedocs.org/en/latest/

私のジレンマは、どの永続化方法を使用する必要があるかということです。セッションのためだけに Beaker を使用する場合は、memcached またはメモリのみの構成を使用したいと考えています。永続性を追加したい場合は、サーバーをセッションファイルで混乱させたくないので、sqlalchemyを介してmysqlデータベースを使用したいと思います。または、最初に暗号化された Cookie を使用することもできます。したがって、Cookie を使用して追加で行う必要がある大量の作業を排除することもでき、サーバーにセッションを保存する必要もなくなります。

あなたは私に何を持っていくように提案しますか?

このサイトは主流のものではなく、高レベルのクライアント向けのツールであるため、remember me オプションが本当に必要だとは思いません。デフォルトで有効にしたいので、そのまま使用する必要があります。ビーカー Cookie ベースのセッションとは?

その場合、私のピラミッドの ​​development.ini 設定はどのように見えるべきですか?

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

python - ビーカーを使用してPyramidのデータベースにセッションデータを保存する

PyramidでWebアプリケーションを構築していますが、ユーザーログインが必要です。データベースバックエンドは、SQLAalchemyを介して接続されたMySQLDBです。

Pyramidには、セッションでのビーカーの使用に関する概要がありますが、ファイルを使用してビーカーを構成する方法のみを示しています。セッションデータをデータベースに保存する方法を見つけることができませんでした(それは可能であると思います)。それ以来、さまざまなデータが保存されていた場所は1つだけでした。

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

python - ビーカーをインストールせずに使用するにはどうすればよいですか?

BeakerはPython標準ライブラリの一部ではないので、Python標準ライブラリ自体ではなく、アプリケーションに依存関係がないようにします。これを実現するために、ビーカーをダウンロードして、アプリケーションのサブパッケージとして抽出します。

次に、これを使用します。

そして、このエラーを取得します

問題はbeaker.middlewareの11行目にあります。

ビーカーパッケージがインストールされていないため、インタープリターはビーカーパッケージを認識できません。実際には、その行を次のように変更することで修正できます。

しかし、そうすることで、私は多くの変更を加える必要があります。

それで、ビーカーをインストールせずに、そしてあまり多くの変更を行わずに使用する方法はありますか?

PS:以下は私のディレクトリ構造です

編集:受け入れられた答えは正しいですが、私の場合、私は1レベルのトップディレクトリでスクリプトを実行します。したがって、以下のソリューションはより堅牢であるように思われます。

または多分これ:Pythonで現在実行されているファイルのパスを取得するにはどうすればよいですか?:)

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

python - ビーカーによるキャッシング

Web サイトのデータをスクレイピングするプログラムがあります。最後に取得してから数分しか経っていない場合、そのデータをロードする代わりにキャッシュできるようにしたいと考えています。私はビーカーを見ましたが、私はキャッシュに非常に慣れていないので、これが必要かどうかわかりません。また、Cachemanager とは何か、「cache.set」と「cache.get」の両方を使用する代わりに「cache.get」のみを使用する理由もよくわかりません。テストに使用したスクリプトを含めました。

私はこれを正しい方法で行っていますか?

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

security - pyramid_beaker が使用するセッション ID Cookie の値をユーザーが設定できないようにするにはどうすればよいですか?

私は、pyramid_beaker を使用するピラミッド アプリケーションを持っています。これが私の構成です:

そして、ここにログインフォームビューがあります:

これで、ユーザーがログインしようとすると、ビューがフォームをレンダリングし、Cookiesession_idが生成されます。ユーザーが有効なフォームを送信すると、ユーザーを認証するために Cookie の値が受け入れられます。

ユーザーがフォームを送信する前に Cookie の値を変更することを妨げるものは何もありません。この動作は、この質問によると明らかにセキュリティ上の欠陥です。

では、ログインが成功したときに、Cookie から取得する代わりに、サーバーが新しい session_id 値を生成するために、pyramid_beaker を使用する方法は?

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

bottle - ボトルを使用してすべてのマコ テンプレートにグローバル変数を設定しますか?

セッションミドルウェアとしてビーカー付きのボトルを使用しています。レンダリング時にセッション オブジェクトを指定せずに、すべての mako テンプレートに含めたいと思います。

これの代わりに:

これを行うだけです:

これは可能ですか?もしそうなら、どのように?