Skip to main content

sqlalchemy

MSSQL

拼接URL

from functools import lru_cache

DATABASE_URL_TEMPLATE = (
"mssql+pyodbc://{username}:{password}@{server_name}/{database_name}?driver=ODBC Driver 17 for SQL Server"
# 其他常用param
# ?charset=utf8
)

@lru_cache
def get_db_url(database_name: str, charset: str = None) -> str:
"""
@Description {description}

- param database_name :{str} 数据库名称
- param charset :{str} utf8|

@returns `{str}` 数据库的连接url

"""
config = get_settings()

res = DATABASE_URL_TEMPLATE.format(
username=config.db_user_name,
password=config.db_pass_word,
server_name=f"{config.db_host}:{config.db_port}",
database_name=database_name,
)

if charset:
res = res + f"{charset}"

return res

获取实例

from sqlalchemy import create_engine

connection_url = get_db_url("表名")

engine = create_engine(connection_url,echo=False)

基础使用

with engine.connect() as connection:
sql = "select username from users"
result = connection.execute(sql)
for row in result:
print("username:", row['username'])