이 빠른 시작 가이드에서는 uv을(를) 사용하여 샘플 데이터로 만들고 로드한 데이터베이스에 연결하는 Python 스크립트의 프로젝트 종속성과 환경을 관리합니다. Python용 드라이버를 사용하여 mssql-python 데이터베이스에 연결하고 데이터 읽기 및 쓰기와 같은 기본 작업을 수행합니다.
드라이버에는 mssql-python Windows 컴퓨터에 대한 외부 종속성이 필요하지 않습니다. 드라이버는 단일 pip 설치로 필요한 모든 것을 설치하므로 업그레이드 및 테스트할 시간이 없는 다른 스크립트를 중단하지 않고도 새 스크립트에 최신 버전의 드라이버를 사용할 수 있습니다.
mssql-python 설명서 | mssql-python 소스 코드 | 패키지(PyPi) | uv
필수 조건
Python 3
Python이 아직 없는 경우 python.orgPython 런타임 및 PyPI(Python 패키지 인덱스) 패키지 관리자를 설치합니다.
사용자 고유의 환경을 사용하지 않으시겠습니까? GitHub Codespaces를 사용하여 devcontainer로 엽니다.
uv가 아직 설치되어 있지 않은 경우uv의 지침에 따라 https://docs.astral.sh/uv/getting-started/installation/을(를) 설치하십시오.SQL Server, Azure SQL Database 또는 Fabric
AdventureWorks2025의 SQL 데이터베이스에 있는 데이터베이스로, 샘플 스키마와 유효한 연결 문자열이 포함되어 있습니다.일회성 운영 체제 관련 필수 구성 요소를 설치합니다.
SQL 데이터베이스 만들기
이 빠른 시작에서는 Microsoft SQL Server의 AdventureWorks2025 경량 스키마, 패브릭의 SQL 데이터베이스 또는 Azure SQL Database가 필요합니다.
프로젝트 만들기 및 코드 실행
- 새 프로젝트 만들기
- 종속성 추가
- Visual Studio Code 시작
- pyproject.toml 업데이트
- main.py를 업데이트합니다
- 연결 문자열 저장
- uv run을 사용하여 스크립트 실행
새 프로젝트 만들기
개발 디렉터리에서 명령 프롬프트를 엽니다. 디렉터리가 없으면,
python,scripts등으로 새 디렉터리를 만드세요. OneDrive에는 폴더를 생성하지 마십시오. 동기화가 가상 환경 관리에 영향을 미칠 수 있습니다.를 사용하여 새 프로젝트를 만듭니다
uv.uv init mssql-python-repeatable-qs cd mssql-python-repeatable-qs
종속성 추가
동일한 디렉터리에 mssql-python, python-dotenv, 및 rich 패키지를 설치합니다.
uv add mssql-python python-dotenv rich
Visual Studio Code 시작
동일한 디렉터리에서 다음 명령을 실행합니다.
code .
pyproject.toml 업데이트
pyproject.toml에는 프로젝트에 대한 메타데이터가 포함됩니다. 즐겨 찾는 편집기에서 파일을 엽니다.
파일의 내용을 검토합니다. 이 예제와 유사해야 합니다. Python 버전과 종속성을 확인하고, 최소 버전을 정의하기 위해
mssql-python는>=을 사용합니다. 정확한 버전을 선호하는 경우, 버전 번호 앞의>=를==로 변경하십시오. 그런 다음 각 패키지의 확인된 버전이 uv.lock에 저장됩니다. lockfile을 사용하면 프로젝트에서 작업하는 개발자가 일관된 패키지 버전을 사용하고 있습니다. 또한 최종 사용자에게 패키지를 배포할 때 정확히 동일한 패키지 버전 집합이 사용되도록 합니다. 파일을 편집하면 안 됩니다uv.lock.[project] name = "mssql-python-repeatable-qs" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.11" dependencies = [ "mssql-python>=0.10.0", "python-dotenv>=1.1.1", "rich>=14.1.0", ]설명을 더 자세히 설명하도록 업데이트합니다.
description = "Connects to a SQL database using mssql-python"파일을 저장 후 닫습니다.
main.py를 수정하십시오.
라는
main.py파일을 엽니다. 이 예제와 유사해야 합니다.def main(): print("Hello from mssql-python-repeatable-qs!") if __name__ == "__main__": main()파일 맨 위에서
def main()줄 위에 다음 가져오기를 추가합니다.팁 (조언)
Visual Studio Code에서 패키지를 해결하는 데 문제가 있는 경우 가상 환경을 사용하도록 인터프리터를 업데이트해야 합니다.
from os import getenv from dotenv import load_dotenv from mssql_python import connect, Connection, Cursor from rich.console import Console from rich.progress import Progress, SpinnerColumn, TextColumn from rich.table import Table from argparse import ArgumentParser from time import sleep가져오기와 줄
def main()사이에 다음 코드를 추가합니다.def get_results(sleep_time: int = 0) -> None: with Progress( SpinnerColumn(), TextColumn("[progress.description]{task.description}"), transient=True, ) as progress: task = progress.add_task( description="Connecting to SQL...") cursor = query_sql() # Simulate a slow connection for demo purposes sleep(sleep_time) progress.update(task, description="Formatting results...") table = Table(title="Orders by Customer") # https://rich.readthedocs.io/en/stable/appendix/colors.html table.add_column("Customer ID", style="bright_blue", justify="center") table.add_column("Company Name", style="bright_white", justify="left") table.add_column("Order Count", style="bold green", justify="right") records = cursor.fetchall() for r in records: table.add_row(f"{r.CustomerID}", f"{r.CompanyName}", f"{r.OrderCount}") if cursor: cursor.close() # Simulate a slow connection for demo purposes sleep(sleep_time) progress.stop() Console().print(table)가져오기 사이에
def get_results(sleep_time: int = 0) -> None:코드를 삽입합니다._connection = None def get_connection() -> Connection: global _connection if not _connection: load_dotenv() _connection = connect(getenv("SQL_CONNECTION_STRING")) # type: ignore return _connection def query_sql() -> Cursor: SQL_QUERY = """ SELECT TOP 5 c.CustomerID, c.CompanyName, COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC; """ conn = get_connection() cursor = conn.cursor() cursor.execute(SQL_QUERY) return cursor이 코드를 찾습니다.
def main(): print("Hello from test!")이 코드로 대체합니다.
def main() -> None: parser = ArgumentParser() parser.add_argument("--sleep-time", type=int, default=0, help="Time to sleep in seconds to simulate slow connection") args = parser.parse_args() if args.sleep_time > 0: get_results(args.sleep_time) else: get_results() if _connection: _connection.close()저장하고 닫습니다
main.py.
연결 문자열 저장
.gitignore파일을 열고.env파일에 대한 제외를 추가합니다. 파일은 이 예제와 유사해야 합니다. 완료되면 저장하고 닫아야 합니다.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .env현재 디렉터리에서 새 파일을 만듭니다
.env.파일 내에서
.env파일에 연결 문자열 이름이SQL_CONNECTION_STRING인 항목을 추가합니다. 여기서 예제를 실제 연결 문자열 값으로 바꿉다.SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"팁 (조언)
여기서 사용되는 연결 문자열은 연결하려는 SQL 데이터베이스의 유형에 따라 크게 달라집니다. Azure SQL Database 또는 Fabric의 SQL 데이터베이스에 연결하는 경우 연결 문자열 탭에서 ODBC 연결 문자열을 사용합니다. 시나리오에 따라 인증 유형을 조정해야 할 수도 있습니다. 연결 문자열 및 해당 구문에 대한 자세한 내용은 연결 문자열 구문 참조를 참조하세요.
uv run을 사용하여 스크립트 실행
팁 (조언)
macOS에서 Microsoft Entra Authentication을 사용하려면 Visual Studio Code의 Azure Repos 확장을 통해 또는 az login를 통해 실행 하여 로그인해야 합니다.
이전의 터미널 창이나 동일한 디렉터리에 열려 있는 새 터미널 창에서 다음 명령을 실행합니다.
uv run main.py이번에는 두 상태 업데이트를 볼 수 있도록 좀 더 느리게 다시 실행해 보겠습니다.
uv run main.py --sleep-time 5스크립트가 완료될 때 예상되는 출력은 다음과 같습니다.
Orders by Customer ┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓ ┃ Customer ID ┃ Company Name ┃ Order Count ┃ ┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩ │ 29485 │ Professional Sales and Service │ 1 │ │ 29531 │ Remarkable Bike Store │ 1 │ │ 29546 │ Bulk Discount Store │ 1 │ │ 29568 │ Coalition Bike Company │ 1 │ │ 29584 │ Futuristic Bikes │ 1 │ └─────────────┴────────────────────────────────┴─────────────┘스크립트를 다른 컴퓨터에 배포하려면 폴더를
.venv제외한 모든 파일을 다른 컴퓨터에 복사합니다. 가상 환경은 첫 번째 실행으로 다시 만들어집니다.
다음 단계
더 많은 예제를 mssql-python 보려면 드라이버 GitHub 리포지토리를 방문하여 아이디어를 기여하거나 문제를 보고하세요.