Djangoの外でDjango ORMレイヤを使用しています。このプロジェクトは、社内で構築されたフレームワークを使用したWebアプリケーションです。Django ORMのみを使用する場合のデータベース接続管理
今、私はDjango ORMをスタンドアロンで実行するように設定するのに問題はありませんでしたが、私は接続管理についてちょっと心配しています。私は今ここでUsing only DB part of Djangoを読んでおり、Djangoは各要求の始めと終わりに特別な接続処理を行うのは事実です。 django/db/__init__.pyから:
# Register an event that closes the database connection
# when a Django request is finished.
def close_connection(**kwargs):
for conn in connections.all():
conn.close()
signals.request_finished.connect(close_connection)
# Register an event that resets connection.queries
# when a Django request is started.
def reset_queries(**kwargs):
for conn in connections.all():
conn.queries = []
signals.request_started.connect(reset_queries)
# Register an event that rolls back the connections
# when a Django request has an exception.
def _rollback_on_exception(**kwargs):
from django.db import transaction
for conn in connections:
try:
transaction.rollback_unless_managed(using=conn)
except DatabaseError:
pass
signals.got_request_exception.connect(_rollback_on_exception)
私は、この接続管理をスキップした場合に実行することができますどのような問題
? (私のフレームワークにそれらの信号を簡単に差し込む方法はありません)
接続管理の問題。あなたが貼り付けたコードの種類があなたのために処理されます。 –
@burhan私は、このコードをスキップすることは安全ですか? Django ORMをスタンドアロンとして使用している人がいて、おそらくこのコードをスキップしている人がいることは知っています。正しく動作しているのでしょうか? – pajton