Der sqlalchemy Postgres-Dialekt unterstützt UUID-Spalten. Das ist einfach (und die Frage ist speziell Postgres) - ich verstehe nicht, warum die anderen Antworten alle so kompliziert sind.
Hier ist ein Beispiel:
from sqlalchemy.dialects.postgresql import UUID
from flask_sqlalchemy import SQLAlchemy
import uuid
db = SQLAlchemy()
class Foo(db.Model):
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
Achten Sie darauf, den callable
nicht zu verpassen uuid.uuid4
in die Spaltendefinition, anstatt die Funktion selbst mit uuid.uuid4()
aufzurufen . Andernfalls haben Sie für alle Instanzen dieser Klasse denselben Skalarwert. Weitere Details hier:
Ein skalarer, aufrufbarer Python- oder ColumnElement-Ausdruck, der den Standardwert für diese Spalte darstellt, der beim Einfügen aufgerufen wird, wenn diese Spalte nicht anderweitig in der VALUES-Klausel der Einfügung angegeben ist.