"Heb je je ooit afgevraagd hoe je toegang krijgt tot Microsoft SharePoint in je Python scripts?
Deze handleiding gaat daarover: kunt u dat op een eenvoudige manier doen met behulp van een instrument dat Connect Bridge heet."
Oorspronkelijk geplaatst op: 10 juli 2019
Laatst bijgewerkt: 14 oktober 2026
TL;DR
- Wat het doet: maakt het mogelijk dat een Python-script SharePoint-lijsten en documentbibliotheken kan lezen en schrijven met behulp van gewone SQL, via ODBC en de
pyodbcmodule. - Hoe: Een commerciële tool, Connect Bridge (gratis proefversie beschikbaar), fungeert als tussenlaag tussen Python en SharePoint en presenteert de SharePoint-API alsof het een database is.
- Wat je nodig hebt: een Windows-computer, Python 3,
pyodbc, Connect Bridge met een geconfigureerde SharePoint-account, en de ODBC-verbindingsstring die hierdoor wordt gegenereerd. - Wat je krijgt: een kernscript van ongeveer 15 regels, plus voorbeelden van SQL-query’s en opgeslagen procedures voor het maken van lijsten, het invoegen van records en het uploaden en downloaden van documenten.
- Beperkingen: Alleen voor Windows (getest door de auteur); commerciële licentie.
- Geschikt voor: teams die in SQL denken en niet direct de SharePoint-API willen leren.
Inhoudsopgave
Inleiding
Dit artikel beschrijft hoe je Python aansluiten op SharePoint, dat wil zeggen: hoe je vanuit Python-scripts toegang kunt krijgen tot gegevens van Microsoft SharePoint-systemen (2013, 2016, 2019 of Online). De gegevensoverdracht vindt plaats via de ODBC-laag.
Opmerking bij de update: De voorbeelden in dit artikel zijn oorspronkelijk in de periode 2019–2022 gemaakt en getest met Python 3.7 en pyodbc module versie 4.0.26. In oktober 2026 hebben we het script vereenvoudigd en de foutafhandeling herschreven voor Python 3.14 en pyodbc 5.3.0. Mocht iets in jouw omgeving anders werken, laat het ons dan weten in de reacties.
Het is belangrijk op te merken dat we in dit artikel gebruik maken van een commercieel product genaamd Connect Bridge. Dit is in feite wat de Python / SharePoint integratie mogelijk maakt, door de datacommunicatie mogelijk te maken op een manier dat u er zeker van bent dat u de SharePoint kant niet verknoeit (en, geloof me, dit is ZEER belangrijk). U kunt gratis proberen voor Connect Bridge, zodat je dit allemaal zelf kunt uitproberen.
Wat is deze "Connect Bridge"?
Ik ben blij dat je het vraagt! Connect Bridge is een door Connecting Software ontwikkeld integratieplatform dat het mogelijk maakt om software te verbinden via ODBC drivers, JDBC drivers of Web Services. Het algemene overzicht van de architectuur van de tool is op deze client-server scenario diagram.
(opens in a new tab)Connect Bridge architectuur van het integratieplatform
Zoals u kunt zien op het architectuurdiagram, kan de tool niet alleen worden gebruikt om toegang te krijgen tot Microsoft SharePoint gegevens vanuit uw Python script, maar u kunt ook gegevens ophalen uit/zetten in Microsoft Exchange en Microsoft Dynamics CRM, naast vele andere.
Het doel van ons werk was een Python-script te maken waarmee we via Connect Bridge met SharePoint kunnen praten.
Wij gebruiken SharePoint, maar het is mogelijk om soortgelijke logica te gebruiken om aan te sluiten op Microsoft Exchange of naar een CRM zoals Salesforce of Dynamics.
Aan de slag...
Laten we nu beginnen met deze tutorial! Ons doel is om een eenvoudig Python script te maken dat toegang krijgt tot een SharePoint instantie. We nemen aan dat de SharePoint instance al bestaat (zorg ervoor dat je je login gegevens bij de hand hebt). Dit zijn eenvoudige stappen die je moet volgen:
1. Vraag een gratis proefversie en installeer Connect Bridge
2. Installeer Python voor Windows versie 3.14+. Houd er rekening mee dat we, om het schrijven, uitvoeren en debuggen van mijn script te vergemakkelijken, gebruik hebben gemaakt van Liclipse 12.0.1 met de pydev-plug-in, maar dit is natuurlijk optioneel. Elke editor is geschikt, zoals VS Code of PyCharm.
3. Installeer pyodbc module 5.3.0+
4. Start Connect Bridge Management Studio en
4.1. Voeg een account toe voor SharePoint (Accounts - Account toevoegen). Hier heb je de referenties nodig die we eerder noemden.
4.2. Open de Nieuwe vraag optie en dan de Verbinding Browser. Zoek de SharePoint Aansluiting en open het tot je de DefaultConnection. Klik er met de rechtermuisknop op en kies Verbindingsteken ophalen. Kopieer dan de ODBC verbindings string. Je zal het nodig hebben om het door te geven aan het script.
4.3. Gebruik de New Query optie om een query uit te testen die toegang geeft tot wat u nodig heeft in SharePoint. We zullen hier een voorbeeld query geven, maar dit is de plaats waar je moet invullen wat je zoekt in SharePoint. Als je eenmaal hebt geklikt op Nieuwe vraag, open de Verbinding Browser. Zoek de SharePoint Aansluiting en open het tot je de Tabellen optie. Je zult zien dat het schema een “tabel” genaamd Site_Pages bevat, dus we kunnen onze query als volgt samenstellen
SELECT UniqueId, ContentType, Created, Modified, ContentVersion FROM Site_Pages LIMIT 10;
om de eerste 10 regels van SharePoint's Pagina's lijst. Het is belangrijk op te merken dat, hoewel het lijkt alsof we rechtstreeks een database gebruiken, dat niet het geval is.
Connect Bridge maakt verbinding met de API en presenteert deze vervolgens alsof het een database is. Zodra je je query hebt, kopieer je deze, want je hebt deze ook nodig om door te geven aan het script.
Hands on scripting!
Het kernbestand en tegelijkertijd het enige bestand in onze oplossing is CBQuery.py. De volledige broncode staat hieronder. Concentreer je op de regels 70-92 die de kern van de oplossing weergeven. Een volledige beschrijving van hoe dit script werkt staat hieronder.
#!/usr/bin/env python3
#-codering: utf-8
"""
CBQuery -- gegevens opvragen uit en gegevens schrijven naar SharePoint
Voert SQL-query's uit via het Connect Bridge ODBC-stuurprogramma.
@author: Ana Neto
@created: 2019-07-04
@updated: 2026-10-14
"""
import sys
from argparse import ArgumentParser
from contextlib import closing
import pyodbc
def main():
parser = ArgumentParser(description=__doc__)
parser.add_argument("connstr", help="ODBC-verbindingsstring uit Connect Bridge Management Studio")
parser.add_argument("query", help="Uit te voeren SQL-query of EXEC-instructie")
args = parser.parse_args()
try:
# Sluit de verbinding af wanneer klaar
with closing(pyodbc.connect(args.connstr)) as conn:
cursor = conn.cursor()
cursor.execute(args.query)
if cursor.description is None:
# Er zijn geen resultaatrijen geretourneerd
conn.commit()
print("OK")
else:
for row in cursor:
print(row)
conn.commit()
return 0
except KeyboardInterrupt:
return 130
except pyodbc.Error as err:
print(f"ODBC-fout: {err}", file=sys.stderr)
return 2
if __name__ == "__main__":
sys.exit(main())Hier is wat ons script aan het doen is:
- De
argparseblock leest de twee commandoregelargumenten in,connstr(de ODBC-verbindingsstring) enzoekopdracht. - De variabele `connstr` bevat de ODBC-verbindingsstring die we doorgeven aan de `pyodbc`-module om een ODBC-verbinding tot stand te brengen (opgeslagen in de
connvariabele). De verbinding wordt omgeven doorcontextlib.closing, dus het wordt altijd gesloten wanneer het blok eindigt, zelfs als er een fout optreedt. - Als volgende stap openen we een databasecursor met behulp van de verbinding die is opgeslagen in `conn`
- We voeren de SQL-query uit (dit is de query die is doorgegeven via de opdrachtregelparameter met de naam query)
- Als de instructie rijen retourneert, doorlopen we de cursor en lezen we de resultaten rij voor rij, waarbij we elke ruwe rij weergeven. Dit was onze keuze voor deze demo, maar houd er rekening mee dat dit elke vorm van uitvoer kan zijn… we zouden het kunnen opmaken als XML, JSON, CSV… of elk ander formaat voor gegevensuitwisseling. We zouden het ruwe gegevensrij-object ook gewoon in verdere code kunnen gebruiken om aangepaste taken uit te voeren.
- Als de query geen rijen retourneert (INSERT, EXEC), geeft het script “OK” weer.
- In beide gevallen wordt de transactie expliciet vastgelegd, zodat wijzigingen die zijn aangebracht door INSERT-instructies en opgeslagen procedures worden opgeslagen.
- ODBC-fouten worden naar stderr afgedrukt en het script wordt afgesloten met code 2. Met Ctrl+C wordt het script afgesloten met code 130, en bij succes met 0.
Het CBQuery.py script uitvoeren
CBQuery.py accepteert twee positionele opdrachtregelargumenten: connstr en query.
We moeten deze kopiëren vanuit Connect Bridge Management Studio, zoals hierboven uitgelegd (punt 4 van de Aan de slag sectie).
Voer het script vervolgens als volgt uit:
python CBQuery.py "" "SELECT UniqueId, ContentType FROM Site_Pages LIMIT 10;"
Laten we nu eens aannemen dat we een contactenlijst willen aanmaken in SharePoint en een contactpersoon aan die lijst willen toevoegen.
In principe moeten we hetzelfde proces volgen, maar de query aanpassen zodat er gebruik wordt gemaakt van een “opgeslagen procedure”. Ook deze “opgeslagen procedure” zal in feite via de API toegang krijgen tot SharePoint, maar de gegevens worden in de door u opgegeven SharePoint opgeslagen. Dit is de query die we moeten uitvoeren:
EXEC SP_CREATE_TABLE 'MyContacts', 'Deze tabel is aangemaakt met behulp van Connect Bridge', true, 'Contacts';
De parameters zijn, in volgorde: de naam van de nieuwe lijst (Mijn contacten); een beschrijving; een booleaanse vlag (echt); en het SharePoint-lijstsjabloon waarop het gebaseerd moet zijn (Contacten).
De query maakt een nieuwe SharePoint lijst aan (MyContacts), met een beschrijving die zal verschijnen in de snelstartbalk van de SharePoint pagina.
Nu moeten we de volgende query uitvoeren om de ODBC-schemareflectie van het Connect Bridge-schema bij te werken naar het SharePoint-schema. Zo wordt onze nieuwe “tabel” zichtbaar voor de ODBC-client. (Deze procedure vereist geen parameters.)
EXEC SP_UPDATE_SCHEMA;
Op dit punt kunnen we een contact in onze contactlijst invoegen.
INSERT INTO MyContacts (Voornaam, Achternaam) VALUES ('Ana', 'Neto');
U zou nu ons item en onze nieuwe SharePoint lijst moeten kunnen zien in de SharePoint UI.
We kunnen het item dat we net hebben aangemaakt selecteren door de volgende query uit te voeren.
SELECT Voornaam,Achternaam FROM MyContacts
Voor het uploaden van een gedeeld document maken we gebruik van de bestaande SharePoint-lijst “Documents” en de “Stored Procedure” SP_INSERT_SHAREDDOCUMENT. De parameters die deze procedure vereist, zijn:
- Naam van de tabel met gedeelde documenten
- Bestandsnaam
- Map (relatief pad, op de server)
- MIME-type
- Gegevens voor het bestand (Base64-gecodeerd; in het onderstaande voorbeeld,
SGVsbG8gV29ybGQ=is simpelweg de tekst “Hello World”)
We kunnen het document invoegen door het volgende statement uit te voeren:
EXEC SP_INSERT_SHAREDDOCUMENT
'Documenten',
'hello2.txt',
'/Gedeelde documenten/Nieuwe map',
'text/plain',
'SGVsbG8gV29ybGQ=';
Als je van tevoren wilt controleren of de map aanwezig is, kun je de onderstaande opdracht uitvoeren. De parameters zijn de naam van de documentbibliotheek en het relatieve pad naar de map:
EXEC SP_ENSURE_FOLDER_PATH
'Documents',
'/NewFolder';
Na het uitvoeren van SP_INSERT_SHAREDDOCUMENT kunnen we de aanwezigheid van het document in de tabel “Documents” controleren door de verklaring uit te voeren:
SELECT Id,Naam FROM Documenten;
We kunnen ook de binaire inhoud van een bepaald document uit een bepaalde documentbibliotheek downloaden door de volgende opdracht uit te voeren hieronder. De parameters zijn de naam van de bibliotheek en de ID van het document, zoals geretourneerd door de bovenstaande SELECT:
EXEC SP_SAVE_SHAREDDOCUMENT_BY_ID 'Documenten', 2;
Op dit moment kunt u in de SharePoint-gebruikersinterface controleren of het gedeelde document aanwezig is.
Beperkingen
Tot nu toe konden we de Connect Bridge-tool alleen vanuit Windows-besturingssystemen gebruiken, omdat er geen ODBC-clientbibliotheek voor Linux beschikbaar is (en we weten niet zeker of dat überhaupt mogelijk is). Zorg er dus voor dat je je Python-scripts op een Windows-computer test.
Conclusie
We hebben gezien hoe je in Python eenvoudig toegang kunt krijgen tot SharePoint-gegevens via het Connect Bridge-integratieplatform. Stel je nu eens voor dat wat je in dit artikel hebt gezien ook mogelijk is met Microsoft Dynamics CRM en Microsoft Exchange! Ja, met Connect Bridge is dit mogelijk en de werkwijze is vergelijkbaar.
Bij wie kan ik terecht met vragen?

Door Ana Neto, technisch adviseur op Connecting Software.
"Ik ben software engineer sinds 1997, met een recentere liefde voor schrijven en spreken in het openbaar. Heb je vragen of opmerkingen over dit artikel? Ik zou graag je feedback horen, laat hieronder een reactie achter!"

Comments 1
Dank u voor de duidelijke uitleg!