Zephyrnet-logo

Eenvoudige SQL in native Python

Datum:

Eenvoudige SQL in native Python

Als het idee om te kunnen linken met SQL-databases en te kunnen definiëren, manipuleren en bevragen met behulp van Python aantrekkelijk klinkt, kijk dan eens naar de SQLModel-bibliotheek.


Beeld

Schrijf je veel SQL? Roep je uiteindelijk veel van deze SQL aan vanuit Python? Klinkt het idee om te kunnen linken met SQL-databases en te kunnen definiëren, manipuleren en bevragen met behulp van Python aantrekkelijk?

SQLModel is een Python-bibliotheek voor interactie met SQL-databases in pure, native Python. De ontwerpmotivaties omvatten intuïtiviteit, gebruiksgemak, compatibiliteit en robuustheid. SQLModel maakt gebruik van Python typ annotatie, afgedwongen en beheerd door Pydantischevenals SQLAlchemy, “Python SQL-toolkit en Object Relational Mapper”, vanwege de SQL-interactie.

De bibliotheek is geschreven door Sebastiaan Ramírez, De auteur van FastAPI, en de twee bibliotheken zijn ontworpen om naadloos samen te werken.

De belangrijkste kenmerken van SQLModel, rechtstreeks overgenomen uit de GitHub-repository van het project, zijn:

  • Intuïtief om te schrijven: Geweldige ondersteuning voor redacteuren. Voltooiing overal. Minder tijd voor foutopsporing. Ontworpen om gemakkelijk te gebruiken en te leren. Minder tijd bij het lezen van documenten.
  • Makkelijk te gebruiken: Het heeft verstandige standaardinstellingen en doet veel werk om de code die u schrijft te vereenvoudigen.
  • Compatibel: Het is ontworpen om compatibel te zijn met FastAPI, Pydantic en SQLAlchemy.
  • Uitrekbaar: Je hebt alle kracht van SQLAlchemy en Pydantic eronder.
  • Bermuda's: Minimaliseer codeduplicatie. Eén type annotatie doet veel werk. Het is niet nodig om modellen te dupliceren in SQLAlchemy en Pydantic.

Laten we eens kijken hoe SQLModel werkt.

Een SQLModel-model maken (SQL-tabel)

 
Wilt u een tabel maken met SQLModel?

Hier is een simpele voorbeeld van een codefragment met behulp van SQLModel, uit de GitHub-opslagplaats van de bibliotheek.

door te typen import Optioneel door sqlmodel import Veld, SQLModel-klasse Hero(SQLModel, table=True): id: Optioneel[int] = Veld(default=None, Primary_key=True) naam: str geheime_naam: str age: Optioneel[int] = Geen


In de bovenstaande code wordt de Hero class is een SQLModel-object. SQLModel-objecten zijn gelijkwaardig aan SQL-tabellen in de SQLModel-bibliotheek. Klassekenmerken, zoals id en name, zijn tabelkolommen.

Rijen maken (tabelinstanties)

 
Wilt u een rij in de tabel maken, ook wel een gegevensinstantie genoemd?

Hier is een voorbeeld uit de GitHub-repository van de bibliotheek, waarin wordt gedemonstreerd hoe u dit kunt doen. Merk op dat elke rij een exemplaar is van het hierboven gedefinieerde model.

hero_1 = Held(naam = "Deadpond", geheime_naam = "Duik Wilson") hero_2 = Held (naam = "Spider-Boy", geheime_name = "Pedro Parqueador") hero_3 = Held (naam = "Rusty-Man", secret_name= "Tommy Sharp", leeftijd = 48)


Houd er rekening mee dat alleen conventionele Python-code is gebruikt om een ​​tabel te maken en gegevens rij voor rij in te voeren, zonder dat er een SQL-code nodig is als tussenpersoon voor onze Python-objecten en de back-end SQL-database.

Schrijf naar de SQL-database

 
Houd er rekening mee dat er nog geen tabel of gegevens naar een bestaande database zijn geschreven, wat als volgt kan worden bereikt. De volgende volledige code voorbeeld bouwt voort op de bovenstaande code.

door te typen import Optioneel door sqlmodel import Field, Session, SQLModel, create_engine class Hero(SQLModel, table=True): id: Optioneel[int] = Field(default=None, Primary_key=True) naam: str geheime_naam: str age: Optioneel [int] = Geen hero_1 = Held(name="Deadpond", secret_name="Dive Wilson") hero_2 = Held(name="Spider-Boy", secret_name="Pedro Parqueador") hero_3 = Held(name="Rusty- Man", secret_name="Tommy Sharp", leeftijd=48) engine = create_engine("sqlite:///database.db") SQLModel.metadata.create_all(engine) met Session(engine) als sessie: session.add(hero_1 ) sessie.add(held_2) sessie.add(held_3) sessie.commit()


De bovenstaande code schrijft een nieuwe tabel naar de bestaande database en voegt daar de 3 “hero” -vermeldingen aan toe.

 
Natuurlijk is er nog veel meer dat SQLModel kan doen. Voor een volledige behandeling van wat mogelijk is met de bibliotheek, en hoe u dit kunt bereiken, kunt u kijken op de volledige documentatie.

 
Verwant:


PlatoAi. Web3 opnieuw uitgevonden. Gegevensintelligentie versterkt.
Klik hier om toegang te krijgen.

Bron: https://www.kdnuggets.com/2021/09/easy-sql-native-python.html

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?