問題タブ [flask-peewee]

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

python - 正しいパスワードで Flask ログインがエラーになる (peewee を使用)

私は現在、flask-peewee拡張機能に含まれているサンプルアプリの一部を取得して調整することにより、アプリを構築しようとしています (コードはこちら)。登録してログイン画面を表示できるようになりました。間違ったログイン資格情報を入力すると、ログイン資格情報が正しくないというメッセージが表示されます (予想どおり)。しかし、正しいログイン資格情報を入力すると、答えが見つからない巨大なトレースバックが表示されます。

通常、メソッドまたはテンプレートを調べて、何が問題なのかを確認します。ただし、この場合、ほとんどすべて (メソッドとテンプレート) は peewee によって処理されます。

以下に、最初にトレースバックを貼り付け、続いて (コメントで要求されているように) 現在持っているいくつかのファイルを貼り付けます。何が間違っている可能性があるかについての情報は大歓迎です!

トレースバック:

私が今持っているファイルは次のとおりです。

  • main.py
  • app.py
  • auth.py
  • config.py
  • models.py

以下にすべての内容を貼り付けますが、わかりやすくするために一部を省略しています。

main.py

app.py

auth.py

config.py

models.py

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

python - peewee 管理者をフラスコ セキュリティで動作させる

私は peewee と Flask セキュリティの両方が好きで、どちらもうまく連携しますが、peewee の管理機能を動作させることができません。これを行う方法についてはよくわかりませんが、両方を一緒に使用したいと思っています。私は多くのことを試しましたが、何もうまくいかないようです。

私の現在のコードは次のようになります。

Peewee Admin にログインしようとすると、次のエラーが表示されます: `AttributeError: 'User' object has no attribute 'check_password'

編集:

完全なデバッグ:

これが AttributeError を発生させる理由が本当にわかりません。パスワードが登録され、BaseUser クラスがインポートされます (check_password に必要)。私は何を間違っていますか?

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

python - フラスコのブループリント内から認証デコレーターを使用する方法

ブループリントで次の基本認証デコレーターを使用したいと考えています。

そして青写真では:

ただし、モジュールが構成にアプリを使用するflask_peewee.authため、アプリ インスタンスを必要とする db インスタンスも必要とするモジュールに依存しています。Database()

以前は、これらすべてを 1 つのファイルでインスタンス化することでアプリケーションがよりシンプルになったときに、これを機能させていましたapp.pyが、今はもう少し整理したいと考えています。

db.Model定義と上記のrequires_authデコレータを別のファイル (db_models.pyモジュールなど)に移動し、requires_authデコレータを個々のブループリント定義にインポートすることは可能ですか? appオブジェクトを作成するためにオブジェクトにアクセスする必要がある場合、どうすればよいdbですか?


編集: アプリを次のように再編成しました: http://charlesleifer.com/blog/structuring-flask-apps-a-how-to-for-those-coming-from-django/requires_auth関数を入れました私のauth.pyモジュールはインポートして使用できますview.pyが、設計図の 1 つにインポートしようとすると失敗します。認証モジュールがアプリ モジュールをインポートし、ブループリントがアプリ モジュールを拡張しているため、循環インポートを取得しているためだと思います。何か案は?

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

python - Peewee で optgroup を使用して select を生成する

Peewee ORMを使用したフラスコアプリケーションに次のモデルがあります。

各コースが optgroup であり、各アクティビティが Jinja の opgroup 内のオプションである複数選択フィールドを生成したいと考えています。

次のようなものがあるとします。

  • コースⅠ
    • 活動Ⅰ
    • 活動Ⅱ
    • 活動Ⅲ
  • コースⅡ
    • 活動Ⅳ
    • 活動Ⅴ

つまり、アクティビティ I、II、および III の ForeignKeyField はコース I を指し、コース II の ForeignKeyField はアクティビティ IV および V を指します。

Flask アプリケーションに次のビューがあります。

私はこのようなものを取得したい:

これは、Jinja の optgroup 部分なしで簡単に取得できます。

しかし、optgroup で Course.name フィールドを取得する方法がわかりません。次に、ForeignKeyField を持つアクティビティが、この optgroup 内のオプションでこのコースを指しています。私が思いつく唯一の解決策は、すべてのコースを for ループで実行し、その for ループ内に別の for ループを作成して、すべてのアクティビティを実行し、 activity.Course.name フィールドが course.name と一致する場合に新しいオプションを生成することです。 、しかし、各コースのすべてのアクティビティをループする必要があるため、これは非常に非効率的です.

この選択ボックスを生成する簡単で効率的な方法はありますか?

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

python - FlaskでカスタムSELECTクエリを取得するには?

Flask-Peeweeでこのカスタム クエリをフェッチしたい

次のコード コードを試してみましたが、うまくいきませんでした。「長い」オブジェクトに属性「fetchall」がありません。

どんな助けでも大歓迎です。

編集>

connect_db 関数は次のとおりです。

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

python - 取引に関する週次情報を取得する

私は Flask と Peewee を ORM として作成したシンプルな Web サイトを持っており、オフィスの全員が飲む飲み物に注釈を付け、週に 1 回程度、誰が何を、どれだけ、いつ飲むかを確認します。次のような注文という名前の単純なテーブルがあります。

注文 - ID、製品、ユーザー、金額、価格、日付

そして、私がやりたいことは、誰かが特定の日付から当日までに何が起こったのか (たとえば、14-02 から今日の 21-02 まで) を調べることができる簡単なページを用意することです。peewee でそのようなクエリを作成するにはどうすればよいですか?

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

peewee - 文字列リテラル パラメータを peewee fn 呼び出しに渡す方法

peewee の fn コンストラクトを使用して文字列リテラル パラメーターを SQL 関数に渡すときに問題が発生しました。次のように定義されたオブジェクトがあります。

select で mySQL の timestampdiff 関数を使用して、最後のログインからの日数を取得しようとしています。クエリは次のようになります。

使用しようとしているpython peeweeコードは次のとおりです。

しかし、このコードを実行すると、エラーが発生します。

ProgrammingError: (1064, u"SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。''day', t1. lastLogin, now()) AS daysSinceLastLogin FROM userAS t1 ' 行 1")

このメッセージから判断すると、peewee が生成している SQL では、'day' パラメーターを囲む引用符が保持されているようです。また、mySQL はパラメーターを引用符で囲むことを好みません。私は明らかにpythonコードの引用符を外すことができないので、誰かが私が間違っていることを教えてもらえますか?

更新: SQL() peewee コマンドを使用して DAY パラメータを追加することで、クエリが意図したとおりに機能するようになりました。

しかし、なぜこの状況で SQL() を使用しなければならなかったのかわかりません。何か不足していますか、それともこれが正しい答えですか?