簡體   English   中英

select_from(table_name)中的table_name是什么類型?

[英]What is the type of table_name in select_from(table_name)?

我試圖通過遍歷SQL Server以查看其中包含多少數據來從包含許多表的SQL Server中獲取行數。 但是,我不確定select_from()函數中將使用什么內容。 正如我目前為表名提供Unicode一樣,它提出了

NoInspectionAvailable: No inspection system is available for object of type <type 'unicode'>

我使用的代碼是

from sqlalchemy import create_engine
import urllib
from sqlalchemy import inspect
import sqlalchemy
from sqlalchemy import select, func, Integer, Table, Column, MetaData
from sqlalchemy.orm import sessionmaker

connection_string = "DRIVER={SQL Server}; *hidden*"
connection_string = urllib.quote_plus(connection_string) 
connection_string = "mssql+pyodbc:///?odbc_connect=%s" % connection_string

engine = sqlalchemy.create_engine(connection_string)
Session = sessionmaker()
Session.configure(bind=engine) 
session = Session()
connection = engine.connect()
inspector = inspect(engine)

for table_name in inspector.get_table_names():
           print session.query(func.count('*')).select_from(table_name).scalar()

通常,它是一個類名稱,它引用描述數據庫表的類。

在sqlalchemy文檔http://docs.sqlalchemy.org/en/latest/orm/tutorial.html中 ,他們讓您使用聲明性基類創建基類,然后為要查詢的每個表創建子類。 然后,您可以將該類名不加引用地傳遞給select_from函數。

Flask框架提供了一個內置的基類,可以立即使用,名為db.Model,而Django有一個名為models.Model的基類。

或者,您也可以傳遞查詢。 我通常將Flask框架用於python,因此通常會這樣發起查詢:

my_qry = db.session.query(Cust).filter(Cust, Cust.cust == 'lolz')
results = my_qry.all()

附帶一提,如果您決定查看.NET,則它們也有不錯的ORM。 就個人而言,我更喜歡實體框架,但是Linq to SQL也在那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM