タグ付けされた質問 「flask-sqlalchemy」

Flask-SQLALchemyは、SQLAlchemyサポートを提供するFlaskの拡張機能です。これは、SQLAlchemyによるデータベース操作をさらに簡単かつ簡単にするように設計されています。それはFlaskと同じ3条項のBSDライセンスを持っています。

8
Flask-SQLAlchemyアプリで生のSQLを実行する方法
SQLAlchemyで生のSQLをどのように実行しますか? 私はフラスコで実行され、SQLAlchemyを介してデータベースに接続するpython webアプリを持っています。 生のSQLを実行する方法が必要です。クエリには、インラインビューと共に複数のテーブル結合が含まれます。 私はもう試した: connection = db.session.connection() connection.execute( <sql here> ) しかし、ゲートウェイエラーが発生し続けます。

5
SQLAlchemyの行エントリを更新する方法は?
テーブルに3つの列usernameがあるpasswordとしno_of_loginsます。 ユーザーがログインしようとすると、次のようなクエリでエントリがチェックされます user = User.query.filter_by(username=form.username.data).first() パスワードが一致する場合、彼はさらに先へ進みます。私がやりたいのは、ユーザーがログインした回数を数えることです。したがって、彼が正常にログインしたときはいつでも、no_of_loginsフィールドをインクリメントしてユーザーテーブルに戻したいと思います。SqlAlchemyで更新クエリを実行する方法がわかりません。

3
SQLALCHEMY_TRACK_MODIFICATIONSを無効にできるかどうかはどうすればわかりますか?
Flask-SQLAlchemyを使用するアプリを実行するたびに、SQLALCHEMY_TRACK_MODIFICATIONSオプションが無効になるという次の警告が表示されます。 /home/david/.virtualenvs/flask-sqlalchemy/lib/python3.5/site-packages/flask_sqlalchemy/__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning. warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.') 私はこのオプションが何をするのかを見つけようとしましたが、Flask-SQLAlchemyのドキュメントは、このトラッキングを何が使用するかについて明確ではありません。 SQLALCHEMY_TRACK_MODIFICATIONS True(デフォルト)に設定すると、Flask-SQLAlchemyはオブジェクトの変更を追跡し、シグナルを発行します。これには追加のメモリが必要であり、不要な場合は無効にできます。 プロジェクトが必要SQLALCHEMY_TRACK_MODIFICATIONS = …

3
Flask-SQLAlchemyでIDを使用してレコードを削除する方法
私が持っているusers私のMySQLデータベースのテーブルを。このテーブルにはid、nameおよびageフィールドがあります。 どうすればレコードを削除できidますか? 今、私は次のコードを使用します: user = User.query.get(id) db.session.delete(user) db.session.commit() しかし、削除操作の前にクエリを実行したくありません。これを行う方法はありますか?知っています、は使えますがdb.engine.execute("delete from users where id=...")、delete()メソッドを使いたいのですが。

6
Flask SQLAlchemyクエリ、列名を指定
モデルを使用してクエリに必要な列を指定するにはどうすればよいですか(デフォルトではすべての列が選択されます)?sqlalchmeyセッションでこれを行う方法を知っていますが、session.query(self.col1)モデルでどのように行うのですか?できないよSomeModel.query()。方法はありますか?


2
Flask-SQLAlchemyインポート/コンテキストの問題
Flaskアプリを次のように構成したい: ./site.py ./apps/members/__init__.py ./apps/members/models.py apps.members フラスコの青写真です。 ここで、モデルクラスを作成するには、次のようなアプリを保持する必要があります。 # apps.members.models from flask import current_app from flaskext.sqlalchemy import SQLAlchemy db = SQLAlchemy(current_app) class Member(db.Model): # fields here pass しかし、そのモデルをBlueprintアプリにインポートしようとすると、恐ろしくなりRuntimeError: working outside of request contextます。ここでアプリを正しく保持するにはどうすればよいですか?相対インポートは機能する可能性がありますが、かなり醜く、独自のコンテキストの問題があります。例: from ...site import app # ValueError: Attempted relative import beyond toplevel package

5
SQLAlchemy ORMからpandas DataFrameへの変換
このトピックは、しばらくの間、ここまたは他の場所で扱われていません。SQLAlchemy <Query object>をpandas DataFrameに変換するソリューションはありますか? パンダには使用する機能がありますpandas.read_sqlが、これには生のSQLを使用する必要があります。私はそれを回避したい2つの理由があります:1)ORMを使用してすべてを既に持っています(それ自体に正当な理由)および2)クエリの一部としてpythonリストを使用しています(例:モデルクラスは.db.session.query(Item).filter(Item.symbol.in_(add_symbols)どこですか)Itemとadd_symbolsリストです)。これはSQLに相当しますSELECT ... from ... WHERE ... IN。 何か可能ですか?


3
大文字と小文字を区別しないFlask-SQLAlchemyクエリ
Flask-SQLAlchemyを使用してユーザーのデータベースからクエリを実行しています。ただし、 user = models.User.query.filter_by(username="ganye").first() 戻ります <User u'ganye'> している user = models.User.query.filter_by(username="GANYE").first() 戻り値 None 大文字と小文字を区別しない方法でデータベースにクエリを実行する方法があるかどうか疑問に思っているので、2番目の例でも返されます <User u'ganye'>

6
フラスコ-sqlalchemyまたはsqlalchemy
私はフラスコとsqlalchemyの両方を初めて使用し、フラスコアプリで作業を開始するだけで、今のところsqlalchemyを使用しています。Flask-sqlalchemyとsqlalchemyを使用することから得られる大きなメリットがあるかどうか疑問に思っていました。http://packages.python.org/Flask-SQLAlchemy/index.htmlで十分な動機を見つけることができなかったか、値を理解できなかったのかもしれません。あなたの説明をお願いします。

1
declarative_base()とdb.Modelの違いは何ですか?
Flask-SQLAlchemyプラグインのクイックスタートチュートリアルでは、db.Modelクラスを継承するテーブルモデルを作成するようにユーザーに指示しています。 app = Flask(__main__) db = SQLAlchemy(app) class Users(db.Model): __tablename__ = 'users' ... ただし、SQLAlchemyチュートリアルとbottle-SQLAlchemy READMEはどちらも、テーブルモデルがBaseからインスタンス化されたものを継承することを示唆していますdeclarative_base()。 Base = declarative_base() class Users(Base): __tablename__ = 'users' ... これら2つのアプローチの違いは何ですか?

3
Gunicornで実行されているFlask-SQLAlchemyアプリのDB pool_sizeの選択
Gunicornで実行中のFlask-SQLAlchmeyアプリをPostgreSQLデータベースに接続していて、そのpool_size値が何であるか、また予想されるデータベース接続の数を見つけるのに苦労しています。 これは、物事がどのように機能するかについての私の理解です: Python 3.7のプロセスはメモリを共有しない 各Gunicornワーカーは独自のプロセスです したがって、各Gunicornワーカーは、データベース接続プールの独自のコピーを取得し、他のワーカーと共有されません。 Pythonのスレッドはメモリを共有します したがって、Gunicornワーカー内のすべてのスレッドは、データベース接続プールを共有します これまでのところ正しいですか?それが正しい場合、Gunicornで実行されている同期Flaskアプリの場合: データベース接続の最大数=(ワーカー数)*(ワーカーあたりのスレッド数)? そして、ワーカー内で、ワーカーよりもプールからの接続を多く使用しますか? pool_sizeスレッド数よりも大きくする必要がある理由はありますか?だから、で起動したgunicornアプリの場合は2 でgunicorn --workers=5 --threads=2 main:appなければpool_sizeなりませんか?また、ワーカーを使用し、スレッドを使用していないpool_size場合、1より大きい値を使用する理由はありますか?

2
db initの実行中にレコードをテーブルに追加する
私のアプリケーションでは、フラスコ、sqlalchemy、sqlite、およびpythonを使用しています。データベースを作成するためにdb initを実行するとき、デフォルトの値のセットをデータベースに追加する必要があります。レコードをテーブルに追加するためにこれら2つのことを試しました。1つの方法は「イベント」を使用することです。 from sqlalchemy.event import listen from sqlalchemy import event, DDL @event.listens_for(studentStatus.__table__, 'after_create') def insert_initial_values(*args, **kwargs): db.session.add(studentStatus(status_name='Waiting on admission')) db.session.add(studentStatus(status_name='Waiting on student')) db.session.add(studentStatus(status_name='Interaction Initiated')) db.session.commit() 私が走るとき python manage_db.py db init, python manage_db.py db migrate, python manage_db.py db upgrade 問題はありませんでしたが、レコードが作成されていません。 私が試した別の方法は、私が含めたmodels.pyです record_for_student_status = studentStatus(status_name="Waiting on student") db.session.add(record_for_student_status) db.session.commit() print(record_for_student_status) クラスモデルコード: class …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.