問題タブ [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.
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_accessed
None
セッションを使用して実際にデータを永続化するのではなく、の作成と通過を管理するためだけsession.id
です。(「Cookie」のセッションタイプを使用しています)
python - ピラミッドビーカーとuwsgiを使い始める
私はここでちょっと迷っています。ピラミッドビーカーを使用してPythonスクリプトを開始するにはどうすればよいですか。私はこのようにuwsgiを介してそれを呼び出すことを好みます:
しかし、curlを使用して呼び出すと、
script.pyはこんな感じ
ありがとう!
python - インスタンス変数に基づいてキャッシュ デコレータを条件付きで無効にする
クラスの特定のメソッドをキャッシュしたい - ただし、read_only
クラスのインスタンスにフラグが設定されている場合のみ。
したがって、以下のオブジェクトでは、メソッドをキャッシュ可能にしたいのですが、 True のget()
場合のみです。self.readonly
インスタンス化されたときではなく、クラスが定義されたときに設定されるため、デコレータを条件付きで使用することはできません。
python - Beaker との Bottle.py セッション
初めての質問者です。
私は現在、Bottle マイクロフレームワークを使用して Beaker を適切に使用する方法に苦労しています。問題のあるプログラムは次のとおりです。
お気づきかもしれませんが、私app_session = app.request.environ.get('beaker.session')
はすべてのdef
ブロックで呼び出しを続けているので、次のようなエラーは返されませTypeError: 'NoneType' object does not support item assignment
ん: --- Python は関数の外にある変数を認識しないようです (間違っていたら訂正してください)。
そして、ここに質問があります:
app_session = app.request.environ.get('beaker.session')
のインスタンスを 1 つだけにして、すべてのブロックで使用できるようにするにはどうすればよいですdef
か (同じセッションをチェックして使用するため、実際には 1 つのインスタンスが必要です)。- これが唯一の方法である場合 (醜いですが)、セッションを必要とするすべてのルートを組み合わせて、単一のインスタンスを達成できるようにする必要があり
app_session
ますか?
何かのようなもの:
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 設定はどのように見えるべきですか?
python - ビーカーを使用してPyramidのデータベースにセッションデータを保存する
PyramidでWebアプリケーションを構築していますが、ユーザーログインが必要です。データベースバックエンドは、SQLAalchemyを介して接続されたMySQLDBです。
Pyramidには、セッションでのビーカーの使用に関する概要がありますが、ファイルを使用してビーカーを構成する方法のみを示しています。セッションデータをデータベースに保存する方法を見つけることができませんでした(それは可能であると思います)。それ以来、さまざまなデータが保存されていた場所は1つだけでした。
python - ビーカーをインストールせずに使用するにはどうすればよいですか?
BeakerはPython標準ライブラリの一部ではないので、Python標準ライブラリ自体ではなく、アプリケーションに依存関係がないようにします。これを実現するために、ビーカーをダウンロードして、アプリケーションのサブパッケージとして抽出します。
次に、これを使用します。
そして、このエラーを取得します
問題はbeaker.middlewareの11行目にあります。
ビーカーパッケージがインストールされていないため、インタープリターはビーカーパッケージを認識できません。実際には、その行を次のように変更することで修正できます。
しかし、そうすることで、私は多くの変更を加える必要があります。
それで、ビーカーをインストールせずに、そしてあまり多くの変更を行わずに使用する方法はありますか?
PS:以下は私のディレクトリ構造です
編集:受け入れられた答えは正しいですが、私の場合、私は1レベルのトップディレクトリでスクリプトを実行します。したがって、以下のソリューションはより堅牢であるように思われます。
python - ビーカーによるキャッシング
Web サイトのデータをスクレイピングするプログラムがあります。最後に取得してから数分しか経っていない場合、そのデータをロードする代わりにキャッシュできるようにしたいと考えています。私はビーカーを見ましたが、私はキャッシュに非常に慣れていないので、これが必要かどうかわかりません。また、Cachemanager とは何か、「cache.set」と「cache.get」の両方を使用する代わりに「cache.get」のみを使用する理由もよくわかりません。テストに使用したスクリプトを含めました。
私はこれを正しい方法で行っていますか?
security - pyramid_beaker が使用するセッション ID Cookie の値をユーザーが設定できないようにするにはどうすればよいですか?
私は、pyramid_beaker を使用するピラミッド アプリケーションを持っています。これが私の構成です:
そして、ここにログインフォームビューがあります:
これで、ユーザーがログインしようとすると、ビューがフォームをレンダリングし、Cookiesession_id
が生成されます。ユーザーが有効なフォームを送信すると、ユーザーを認証するために Cookie の値が受け入れられます。
ユーザーがフォームを送信する前に Cookie の値を変更することを妨げるものは何もありません。この動作は、この質問によると明らかにセキュリティ上の欠陥です。
では、ログインが成功したときに、Cookie から取得する代わりに、サーバーが新しい session_id 値を生成するために、pyramid_beaker を使用する方法は?
bottle - ボトルを使用してすべてのマコ テンプレートにグローバル変数を設定しますか?
セッションミドルウェアとしてビーカー付きのボトルを使用しています。レンダリング時にセッション オブジェクトを指定せずに、すべての mako テンプレートに含めたいと思います。
これの代わりに:
これを行うだけです:
これは可能ですか?もしそうなら、どのように?