SQLAlchemy tarafından db’ye gönderilen hata ayıklama (görüntüleme) SQL komutu

| | | |

Bir kişi tablosunu saran, Person adında bir ORM sınıfım var:

DB vb. ile bağlantıyı kurduktan sonra, şu ifadeyi çalıştırıyorum:

people = session.query(Person).all() 

Kişi tablosu (henüz) herhangi bir veri içermiyor, bu yüzden yazdırdığımda people değişkeni, boş bir liste alıyorum.

ORM sınıfım People içinde başvurulan tabloyu people_foo (mevcut değil).

Ardından betiği yeniden çalıştırıyorum. Var olmayan bir tabloya erişmeye çalışırken herhangi bir istisna atılmamasına şaşırdım.

Bu nedenle şu 2 sorum var:

  1. SQLAlchemy'yi nasıl kurabilirim? db hatalarını betiğe geri yayıyor mu?
  2. db motoruna gönderilen SQL'i nasıl görebilirim (yani yazdırabilirim)?

İşe yararsa PostgreSQL kullanıyorum.

[Düzenle]

Bir paket yazıyorum. __main__.py komut dosyamda şu kod var (burada kısaltılmıştır):

### __main__.py import ortak # imports günlük kaydı ve günlük kurulum işlevlerini tanımlar etc logger = logging.getLogger(__name__) def main(): ayrıştırıcı = OptionParser(usage="%prog [options] <commands>", version="%prog 1.0") komutları = OptionGroup(ayrıştırıcı, "komutlar") parser.add_option( "-l", "--logfile", hedef="logfile", metavar="FILE", help="DOSYA'ya giriş yapın. ayarlanmazsa, günlük kaydı yapılmaz") parser.add_option( " --level", dest="loglevel", metavar="LOG LEVEL", help="Debug level. ayarlanmazsa, level varsayılan olarak düşük olur" ) # Belirtilmemişse, options.loglevel: loglevel = 1 else: loglevel = options.loglevel değilse options.logfile: logfilename = "datafeed.log" other: logfilename = options.logfile common.setup_logger(False, logfilename, loglevel) # ve benzeri ... #### dbfuncs. py import logging # __main__.py logging.getLogger("sqlalchemy.engine").se dosyasındaki günlükçüye nasıl "bağlanacağından" emin değil tLevel(logging.INFO) motor = create_engine("postgres://postgres:[email protected]:port/dbname", echo=True) 

[Düzenle2]

Common modülü, logger'ı doğru bir şekilde ayarlar ve logger'ı ortak içe aktaran diğer modüllerimde kullanabilirim.

Ancak dbfuncs modülünde, ben şu hatayı/uyarıyı alıyorum:

"sqlalchemy.engine.base.Engine

kaydedicisi için hiçbir işleyici bulunamadı

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method