Acest proiect a fost arhivat. Va rugam sa verificati acest furculita Ormantic, care este in prezent (martie 2021) in curs de intretinere:
https://github.com/collerek/ormar
Pachetul ormantic este un ORM asincron pentru Python, cu suport pentru Postgres, MySQL si SQLite. Ormantic este un fork de la ORM in scopul integrarii cu FastAPI si este construit cu:
- SQLAlchemy core pentru construirea interogarilor.
- baze de date pentru suport asincronizat intre baze de date.
- pirant pentru validarea datelor.
Deoarece ORM este construit pe baza SQLAlchemy, puteti utiliza Alembic pentru a furniza migratiile bazei de date.
Nota : Utilizati ipython pentru a incerca acest lucru de pe consola, deoarece acesta accepta wait.
import baze de date import sqlalchemy import ormantic as orm database = databases.Database (“sqlite: ///db.sqlite”) metadata = sqlalchemy.MetaData () class Nota (orm.Model): id: orm.Integer (primary_key = True) = Niciun text: orm.String (max_length = 100) completat: orm.Boolean () = False clasare Mapping: table_name = “note” database = database metadata = metadata # Creati motorul bazei de date = sqlalchemy.create_engine (str (database.url )) metadata.create_all (motor) # .create () await Note.objects.create (text = “Cumparati alimentele.”, complete = False) await Note.objects.create (text = “Call Mum.”, complete = Adevarat) asteapta Note.objects.create (text = “Trimite facturi.”, Finalizat = Adevarat) # .all () note = asteapta Note.objects.all () # .filter () note = asteapta Note.objects.filter ( completat = Adevarat) .all () # exact, iexact, contine, icontains,lt, lte, gt, gte, in notes = await Note.objects.filter (text__icontains = “mum”). all () # .get () note = await Note.objects.get (id = 1) # .update ( ) await note.update (complete = True) # .delete () await note.delete () note = await Note.objects.get (id = 2) asert note.pk == note.id == 2
Ormantic accepta incarcarea si filtrarea tastelor straine ..
potro de bilbao videos caseros españa
incesto abuela y nieto incesto retro
suegras españolas follando falsos casting porno
porno libre xxx prostitutas
porno hat cine para adultos gratis
porno online gratis porno peludas españolas
incestos jovencitas analxxx
filme porno romanesti asiatica forzada
coños calientes tata_latina
abuelas folladas por el culo cerdas com gratis
chochitos jovencitos me follo a
pillada follando laura marano nude
maduras gordibuenas peliculas x en castellano
chicas corriendose pillada follando
porni se folla a su cuñada
casadas españolas follando chupame las tetas
peliculas eroticas italianas gay se la chupa a hetero
follando en un crucero fontanero cachondo
lecturas porno porno italiano incesto
porno hoy trios x
.
import baze de date import sqlalchemy import ormantic as orm database = databases.Database (“sqlite: ///db.sqlite”) metadata = sqlalchemy.MetaData () class Album (orm.Model): id: orm.Integer (primary_key = True) = Niciun nume: orm.String (max_length = 100) mapare clasa: table_name = “album” metadate = metadate baza de date = clasa baza de date Track (orm.Model): id: orm.Integer (primary_key = True) = Niciun album: orm. ForeignKey (Album) title: orm.String (max_length = 100) position: orm.Integer () Class Mapping: table_name = “track” metadata = metadata database = baza de date # Creati motorul bazei de date = sqlalchemy.create_engine (str (database.url )) metadata.create_all (motor) # Creati cateva inregistrari cu care sa lucrati. malibu = await Album.objects.create (name = “Malibu”) await Track.objects.create (album = malibu, title = “The Bird”, pozitie = 1) asteapta Track.objects.create (album = malibu, title = “Inima nu are nicio sansa”, pozitie = 2) asteapta Track.objects.create (album = malibu, title = “The Waters”, pozitie = 3) fantezii = asteapta Album.objects.create (nume = “Fantezii”) asteapta Track.objects.create (album = fantezii, title = “Ajutor sunt in viata”, pozitia = 1) asteapta Track.objects.create ( album = fantezii, title = “Sick Muse”, pozitia = 2) # Prelueaza o instanta, fara a incarca o relatie cu cheie straina pe ea. track = await Track.objects.get (title = “The Bird”) # Avem o instanta de album, dar are doar cheia primara populata print (track.album) # Album (id = 1) [rar] print (track) .album.pk) # 1 print (track.album.name) # Raises AttributeError # Incarca relatia din baza de date asteapta track.album.load () asert track.album. nume == “Malibu” # De data aceasta, preluati o instanta, incarcand relatia cu cheia straina. track = await Track.objects.select_related (“album”). get (title = “The Bird”) afirma track.album.name == “Malibu” # Fetch instances, cu un filtru intr-o relatie FK. tracks = Track.objects.filter (album__name = “Fantezii”) afirma len (tracks) == 2 # Instructiuni de preluare, cu un filtru si operator intr-o relatie FK. afirma Track.objects.filter (album__name__iexact = “fantezii”). count () == 2 filter (album__name = “Fantezii”) afirma len (piese) == 2 # Instructiuni de preluare, cu un filtru si operator intr-o relatie FK. afirma Track.objects.filter (album__name__iexact = “fantezii”). count () == 2 filter (album__name = “Fantezii”) afirma len (piese) == 2 # Instructiuni de preluare, cu un filtru si operator intr-o relatie FK. afirma Track.objects.filter (album__name__iexact = “fantezii”). count () == 2
Tipuri de date
Urmatoarele argumente ale cuvintelor cheie sunt acceptate pentru toate tipurile de campuri.
- cheia principala
- allow_null
- index
- unic
Sunt acceptate urmatoarele tipuri de coloane:
- orm.Boolean ()
- orm.Date ()
- orm.DateTime ()
- orm.Enum ()
- orm.Float ()
- orm.Integer ()
- orm.JSON ()
- orm.String (max_length)
- orm.StringArray ()
- orm.Text ()
- orm.Time ()