問題タブ [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.
python - null フィールドで選択するための Peewee 構文
私はこれをどこでも調査しましたが、答えが見つからないようです。これを複製していないことを願っています(SOに関する最初の質問であるため)。
通常は... WHERE foo = NULL; になるPeeweeを使用して選択クエリを作成しようとしています。SQLの世界で。
MySQL は次のようになります。
私の選択クエリは次のようになります。
しかし、うまくいきません!私は試してみましPeers.deleted == ""
たPeers.deleted == "NULL"
。MySQL 構文は で終わるはずですWHERE deleted is NULL;
が、Peewee では何もしていないようです。
誰でも助けることができますか?ドキュメントから何が欠けていますか?
Foo Bar ユーザーのコメントから更新:
and not Peers.deleted
機能しませんでしたが、詳細情報が表示されました。peewee はwhere
節を連鎖させたいようです。だから代わりに
Peers.select().where(Peers.user == 'foo' and Peers.deleted is None)
そのはず:
Peers.select().where(Peers.user == 'foo').where(Peers.deleted is None)
悲しいことに、削除された null 行を選択するための正しい構文はまだ得られません。
python - 2 つのデータベース バックエンドをサポートし、コードを DRY に保つための最も Pythonic な方法/トリックは何ですか?
MongoEngine と Peewee のいずれかを DB バックエンドとして使用する次のコード例があります。
コードを DRY に保ち、モデルを作成するための 2 つのメソッドを再定義しないようにするための適切なプラクティス / トリック / モジュールはありますか?
PHP の PDO と同じように、新しい抽象化クラス 'UserModel' を作成できますか?
python - python peewee docs: サンプルアプリ: 不明な構文/機能
peewee docsを読んでいると、驚くべき声明を見つけました。
うわー、誰かがそれが何をするのか説明してもらえますか? 私はそれ<<
が単なるlshift(左シフト)演算子であることを知っています(これはバイナリ表現を整数の左に移動します。同様の動作が右シフトに適用されます)が、これがリストを処理できることを知りませんでした(user.following()
is a list )。peewee の作成者によって書かれた演算子のオーバーロードだけですか、それとも私が知らない何らかの Python コア機能ですか?
python - フラスコピーウィーでアプリを作成する
ユーザーのログイン、登録、ログアウトのためにフラスコ-ピーウィーでアプリを作成しています。すべてのアプリは URL で適切にルーティングされます。エラーが発生するよりもデータを投稿しようとすると問題が発生します:-
サーバーで内部エラーが発生し、リクエストを完了できませんでした。サーバーが過負荷になっているか、アプリケーションにエラーがあります。TypeError: 'dict' object is not callable も返します。
view.pyで:-
models.py で:-
main.py:-
app.py :-
route.py と auth.py も定義されていますが、出力を表示できません。エラーが発生しています。
error-handling - フラスコピーウィーでアプリを作成する
ユーザー登録用のアプリを作成しようとしていますが、データベース tan に値を挿入しようとするとエラーが表示されます:- TypeError: object() はパラメーターを受け取りません。
ビュー.py
python - Python peeweeは複数のレコードを一度に複数のテーブルに挿入します
概要
リレーショナル MySQL InnoDB データベースがあります。現在、Python 2.6.6 の peewee ORM を使用して、データベースにデータを追加するコードを用意しています。問題は、すべての外部キーが原因で、データ ポイントごとSELECT
に 5 つ (最悪の場合) 5 つのステートメントを実行することになります。INSERT
ご想像のとおり、5,000,000 ほどのデータ ポイント (40 MiB 程度のデータ) を追加しようとすると、すべてのトランザクションが原因で非常に長い時間がかかります。
例
私がやろうとしていることを示すためのダミーの例を次に示します。
問題
この基本的な例では、入力ファイルの各行で 2 つのSELECT
ステートメントと最大2 つのステートメントが使用されていますINSERT
。非常に大きなファイルの場合、このすべてのデータをデータベースに入れるにはかなりの時間がかかります。
入力ファイルのチャンクを読み込み、1 つのINSERT
ステートメントを実行してすべてのデータをデータベースに大量にダンプする方法が必要です。私はすべての FK リレーションシップを知っているわけではないので、これらのSELECT
ステートメントをすべて実行する必要があります。ただし、FK はすべて自動インクリメントされるだけなので、手動で追跡できます。
これを peewee で行うのが理想的です。ただし、私は純粋な SQL ソリューションにもオープンです。メモリに挿入しようとしているすべてのデータを構築してから、一度にすべてダンプできると考えていました。このアプローチを使用すると、FK 関係についてデータベースに加えてメモリの内容もチェックする必要があります。
基本的に、大量のデータを取得してデータベースにダンプする「最速」の方法を探しています。どんな意見でも大歓迎です。
ソリューション
クライアントにとって、上記の実装よりも 2,000 倍以上高速に見えるソリューションを思いつくことができました。最終的に、すべてのデータを含む CSV ファイルを作成し、それをサーバーにコピーしてから、LOAD DATA INFILE
そのデータを一時テーブルに格納するために使用しました。これは技術的にはデータベースにデータを持っていませんが、正しくは、ユーザーはデータが完了するのを待たずにすばやくデータをダンプできます。次に、実際のデータ挿入を処理するストアド プロシージャを作成します。このソリューションは少し複雑ですが、うまく機能します。
python - フォームをフラスコに保存しますか?
form のコードがあり、フォームを介してデータを保存したい。カスタムフォームは:-
ビュー.py :-
AttributeError: 'Database' object has no attribute 'model' のエラーがあります。この問題を解決するのを手伝ってください。