Sök…


Introduktion

Flask-SQLAlchemy är en Flask-förlängning som lägger till stöd för den populära Python-objektrelational mapper (ORM) SQLAlchemy till Flask-applikationer. Det syftar till att förenkla SQLAlchemy med Flask genom att tillhandahålla vissa standardimplementeringar till vanliga uppgifter.

Installation och första exempel

Installation

pip install Flask-SQLAlchemy

Enkel modell

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    email = db.Column(db.String(120), unique=True)

Kodexemplet ovan visar en enkel Flask-SQLAlchemy-modell, vi kan lägga till ett valfritt tabellnamn till modelldeklarationen, men det är ofta inte nödvändigt eftersom Flask-SQLAlchemy automatiskt kommer att använda klassnamnet som tabellnamn under databasskapande.

Vår klass kommer att ärva från basklassmodellen, som är en konfigurerad deklarativ bas. Därför finns det inget behov för oss att uttryckligen definiera basen som vi skulle göra när vi använder SQLAlchemy.

Referens

Relationer: En till många

    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(80))
        email = db.Column(db.String(120), unique=True)
        posts = db.relationship('Post', backref='user')


    class Post(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        content = db.Column(db.Text)
        user_id = db.Column(db.Integer, db.ForeignKey('user.id')

I det här exemplet har vi två klasser av användarklassen och postklassen, användarklassen kommer att vara vår förälder och inlägget kommer att vara vårt inlägg eftersom endast inlägg kan tillhöra en användare men en användare kan ha flera inlägg. För att uppnå att vi placerar en utländsk nyckel på barnet som hänvisar till föräldern som kommer från vårt exempel placerar vi en utländsk nyckel på postklass för att referera till användarklassen. Vi använder sedan relationship() på föräldern som vi får åtkomst via vårt SQLAlchemy-objekt db . Det ger oss då möjlighet att referera till en samling artiklar som representeras av postklassen som är vårt barn.

För att skapa ett dubbelriktat förhållande som vi använder backref , gör det att barnet kan hänvisa till föräldern.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow