Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a rövid útmutatóban Streamlit gyorsan létrehozhat egy jelentést, így gyorsan gyűjthet felhasználói visszajelzéseket, hogy biztosan jó úton járjon. A Python illesztőprogramját mssql-python használva csatlakozhat az adatbázishoz, és beolvassa a jelentésbe betöltött adatokat.
Az mssql-python illesztőprogram nem igényel külső függőségeket a Windows rendszerű gépeken. Az illesztőprogram egyetlen pip telepítéssel mindent telepít, amire szüksége van, így az illesztőprogram legújabb verzióját használhatja az új szkriptekhez anélkül, hogy megszegi azokat a szkripteket, amelyek frissítésére és tesztelésére nincs ideje.
az mssql-python dokumentációja | mssql-python forráskód | Csomag (PyPi) | Uv
Előfeltételek
Python 3
Ha még nem rendelkezik Pythonnal, telepítse a Python futtatókörnyezetet és a Python-csomagindexet (PyPI) csomagkezelőtpython.org.
Inkább lemondana a saját környezetének használatáról? Nyissa meg devcontainerként a GitHub Codespaces használatával.
Visual Studio Code a következő bővítményekkel:
Python-bővítmény a Visual Studio Code-hoz
Ha még nem rendelkezik
uv-vel, telepítse auv-t az utasítások követésével https://docs.astral.sh/uv/getting-started/installation/ forrásból.Sql Serveren, Azure SQL Database-en vagy SQL Database-adatbázison a Fabricben a
AdventureWorks2025mintasémával és egy érvényes kapcsolati sztringgel.Egyszeri operációs rendszerspecifikus előfeltételek telepítése.
SQL-adatbázis létrehozása
Ehhez a gyorsindítási útmutatóhoz az AdventureWorks2025 Lightweight sémára van szükség a Microsoft SQL Serveren, a Fabric SQL-adatbázisban vagy az Azure SQL Database-ben.
A projekt létrehozása és a kód futtatása
- Új projekt létrehozása
- Függőségek hozzáadása
- A Visual Studio Code indítása
- Pyproject.toml frissítése
- Main.py frissítése
- A kapcsolati sztring mentése
- A szkript végrehajtása uv-futtatás használatával
Új projekt létrehozása
Nyisson meg egy parancssort a fejlesztői címtárban. Ha nem rendelkezik ilyennel, hozzon létre egy új , stb. nevű
pythonscriptskönyvtárat. Kerülje a mappákat a OneDrive-on, a szinkronizálás megzavarhatja a virtuális környezet kezelését.Hozzon létre egy új projektet a
uvsegítségével.uv init rapid-prototyping-qs cd rapid-prototyping-qs
Függőségek hozzáadása
Ugyanabban a könyvtárban telepítse a mssql-python, streamlités python-dotenv a csomagokat.
uv add mssql-python python-dotenv streamlit
Indítsa el a Visual Studio Code-ot
Ugyanabban a könyvtárban futtassa a következő parancsot.
code .
Pyproject.toml frissítése
A pyproject.toml a projekt metaadatait tartalmazza. Nyissa meg a fájlt a kedvenc szerkesztőjében.
Módosítsa a leírást részletesebbre.
description = "A quick example of rapid prototyping using the mssql-python driver and Streamlit."Mentse és zárja be a fájlt.
Main.py frissítése
Nyissa meg a nevű
main.pyfájlt. Ennek hasonlónak kell lennie ehhez a példához.def main(): print("Hello from rapid-protyping-qs!") if __name__ == "__main__": main()A fájl tetején adja hozzá a következő importálásokat a
def main()sor fölé.Jótanács
Ha a Visual Studio Code-nak problémái vannak a csomagok megoldásával, frissítenie kell az értelmezőt a virtuális környezet használatára.
from os import getenv from dotenv import load_dotenv from mssql_python import connect, Connection import pandas as pd import streamlit as stAz importok és a
def main()sor között adja hozzá a következő kódot.def page_load() -> None: st.set_page_config( page_title="View Data", page_icon=":bar_chart:", layout="wide", initial_sidebar_state="expanded" ) st.title("AdventureWorksLT Customer Order History") SQL_QUERY = """SELECT c.* FROM [SalesLT].[Customer] c inner join SalesLT.SalesOrderHeader soh on c.CustomerId = soh.CustomerId;""" df = load_data(SQL_QUERY) event = st.dataframe( df, width='stretch', hide_index=True, on_select="rerun", selection_mode="single-row" ) customer = event.selection.rows if len(customer) == 0: SQL_QUERY = """select soh.OrderDate, SUM(sod.OrderQty), SUM(sod.OrderQty * sod.UnitPrice) as spend, pc.Name as ProductCategory from SalesLT.SalesOrderDetail sod inner join SalesLt.SalesOrderHeader soh on sod. salesorderid = soh.salesorderid inner join SalesLt.Product p on sod.productid = p.productid inner join SalesLT.ProductCategory pc on p.ProductCategoryID = pc.ProductCategoryID GROUP BY soh.OrderDate, pc.Name ORDER BY soh.OrderDate, pc.Name;""" else: SQL_QUERY = f"""select soh.OrderDate, SUM(sod.OrderQty), SUM(sod.OrderQty * sod.UnitPrice) as spend, pc.Name as ProductCategory from SalesLT.SalesOrderDetail sod inner join SalesLt.SalesOrderHeader soh on sod. salesorderid = soh.salesorderid inner join SalesLt.Product p on sod.productid = p.productid inner join SalesLT.ProductCategory pc on p.ProductCategoryID = pc.ProductCategoryID where soh.CustomerID = {df.loc [customer, 'CustomerID'].values[0]} GROUP BY soh.OrderDate, pc.Name ORDER BY soh.OrderDate, pc.Name;""" st.write("Here's a summary of spend by product category over time:") st.bar_chart(load_data(SQL_QUERY).set_index('ProductCategory') ['spend'], use_container_width=True) if len(customer) > 0: st.write( f"Displaying orders for Customer ID: {df.loc[customer, 'CustomerID'].values[0]}") SQL_QUERY = f"""SELECT * FROM [SalesLT].[SalesOrderHeader] soh WHERE soh.CustomerID = {df.loc[customer, 'CustomerID'].values[0]};""" st.dataframe(load_data(SQL_QUERY), hide_index=True, width='stretch') SQL_QUERY = f"""SELECT sod.* FROM [SalesLT].[SalesOrderHeader] soh INNER JOIN SalesLT.SalesOrderDetail sod on soh.SalesOrderId = sod.SalesOrderId WHERE CustomerID = {df.loc[customer, 'CustomerID'].values[0]};""" st.dataframe(load_data(SQL_QUERY), hide_index=True, width='stretch')Adja hozzá ezt a kódot az importok és a
def page_load() -> None:kód közé._connection = None def get_connection() -> Connection: global _connection if not _connection: load_dotenv() _connection = connect(getenv("SQL_CONNECTION_STRING")) return _connection @st.cache_data def load_data(SQL_QUERY) -> pd.DataFrame: data = pd.read_sql_query(SQL_QUERY, get_connection()) return dataKeresse meg ezt a kódot.
def main(): print("Hello from rapid-protyping-qs!")Cserélje le erre a kódra.
def main() -> None: page_load() if _connection: _connection.close()Mentés és bezárás
main.py.
A kapcsolati sztring mentése
Nyissa meg a
.gitignorefájlt, és adjon hozzá kizárást a fájlokhoz.env. A fájlnak hasonlónak kell lennie ehhez a példához. Mindenképpen mentse és zárja be, ha elkészült.# Python-generated files __pycache__/ *.py[oc] build/ dist/ wheels/ *.egg-info # Virtual environments .venv # Connection strings and secrets .envAz aktuális könyvtárban hozzon létre egy új fájlt.
.envA
.envfájlban adjon hozzá egy bejegyzést a kapcsolati karakterlánchoz, a következő névvel:SQL_CONNECTION_STRING. Cserélje le az itt látható példát a valós kapcsolati karakterlánc értékére.SQL_CONNECTION_STRING="Server=<server_name>;Database={<database_name>};Encrypt=yes;TrustServerCertificate=no;Authentication=ActiveDirectoryInteractive"Jótanács
Az itt használt kapcsolati sztring nagyban függ attól, hogy milyen TÍPUSÚ SQL-adatbázishoz csatlakozik. Ha Azure SQL Database-hez vagy SQL-adatbázishoz csatlakozik a Fabricben, használja az ODBC kapcsolati sztringet a kapcsolati sztringek lapról. Előfordulhat, hogy a forgatókönyvtől függően módosítania kell a hitelesítési típust. A kapcsolati sztringekről és azok szintaxisáról további információt a kapcsolati sztring szintaxisának hivatkozásában talál.
Használja az "uv run" parancsot a szkript futtatásához
Jótanács
A Microsoft Entra-hitelesítés macOS rendszerben való használatához be kell jelentkeznie a Visual Studio Code Azure Repos bővítményével vagy az az login használatával.
A korábban megnyitott terminálablakban vagy egy új terminálablakban futtassa a következő parancsot.
uv run streamlit run main.pyA jelentés megnyílik egy új lapon a webböngészőben.
Próbálja ki a jelentést, hogy lássa, hogyan működik. Ha módosít valamit, mentse
main.pyés használja az újratöltés lehetőséget a böngészőablak jobb felső sarkában.A prototípus megosztásához másolja az összes fájlt, kivéve a
.venvmappát a másik gépre. A.venvmappa az első futtatáskor újra létre lesz hozva.
Következő lépés
Látogasson el az mssql-python illesztőprogram GitHub-adattárába további példákért, ötletek megosztásához, vagy problémák jelentéséhez.