📜  如何使用 SQLalchemy 获取列表中提供的键的所有行?

📅  最后修改于: 2022-05-13 01:55:38.130000             🧑  作者: Mango

如何使用 SQLalchemy 获取列表中提供的键的所有行?

在本文中,我们将使用 SQLAlchemy 获取列表中提供的所有带有键的行。

使用的数据库:

注意:对于这篇文章,我们将从学生表中获取“ name ”、“ class ”和“ dob ”键。

安装:

安装 SQLAlchemy 的语法:

pip install sqlalchemy pymysql

注意: pymysql 是我们需要为这篇文章安装的依赖项

逐步实施

第1步 :

第一步包括导入模块并连接到数据库。您可以通过以下代码做到这一点:

Python3
from sqlalchemy import create_engine
  
user , password , host , database = 'root' , '123' , 'localhost' , 'geeksforgeeks'
engine = create_engine(url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()


Python3
table_name = 'student'
keys = ['name','class','dob']


Python3
keys_joined = ",".join(keys)
query = f'SELECT {keys_joined} FROM {table_name}'


Python3
result = connection.execute(query)
for elem in result:
    print(elem)


Python3
from sqlalchemy import create_engine
  
user , password , host , database = 'root' , '123' , 'localhost' , 'geeksforgeeks'
engine = create_engine(url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()
  
table_name = 'student'
keys = ['name','class','dob']
  
keys_joined = ",".join(keys)
query = f'SELECT {keys_joined} FROM {table_name}'
  
result = connection.execute(query)
for elem in result:
    print(elem)


第2步 :

在第二步中,我们将定义表名和它们各自变量中的所有键。

Python3

table_name = 'student'
keys = ['name','class','dob']

第 3 步:

现在,首先在 SQL 中获取特定键,您需要在查询中指定它们。

SQL 查询的语法是:

SELECT key1 , key2 , ..... keyN FROM table_name;

因此,我们将在Python中形成一个查询。首先,我们将使用Python的“ join ”方法来连接所有键(用逗号分隔),然后使用“ f-string ”我们将按照上述语法形成一个查询。

所以我们的Python代码将是:

Python3

keys_joined = ",".join(keys)
query = f'SELECT {keys_joined} FROM {table_name}'

第4步 :

现在,最后,我们将执行查询并使用 for 循环打印出获取结果中的所有元素。

Python3

result = connection.execute(query)
for elem in result:
    print(elem)

例子:

在此示例中,我们将上述所有步骤组合成一个代码,然后使用列表中提供的键显示所有行。

Python3

from sqlalchemy import create_engine
  
user , password , host , database = 'root' , '123' , 'localhost' , 'geeksforgeeks'
engine = create_engine(url=f'mysql+pymysql://{user}:{password}@{host}/{database}?charset=utf8')
  
connection = engine.connect()
  
table_name = 'student'
keys = ['name','class','dob']
  
keys_joined = ",".join(keys)
query = f'SELECT {keys_joined} FROM {table_name}'
  
result = connection.execute(query)
for elem in result:
    print(elem)

输出: