Avevo un piccolo servizio Web creato utilizzando e Flask-SQLAlchemy
che conteneva solo un modello. Ora desidero utilizzare lo stesso database, ma con un'app della riga di comando, quindi mi piacerebbe eliminare la dipendenza Flask
.Utilizzo di Flask-SQLAlchemy senza pallone
Il mio modello è simile al seguente:
class IPEntry(db.Model):
id = db.Column(db.Integer, primary_key=True)
ip_address = db.Column(db.String(16), unique=True)
first_seen = db.Column(db.DateTime(),
default = datetime.datetime.utcnow
)
last_seen = db.Column(db.DateTime(),
default = datetime.datetime.utcnow
)
@validates('ip')
def validate_ip(self, key, ip):
assert is_ip_addr(ip)
return ip
Dal db
non sarà più un riferimento a flask.ext.sqlalchemy.SQLAlchemy(app)
, come posso convertire il mio modello da utilizzare solo SQLAlchemy. Esiste un modo per le due applicazioni (una con Flask-SQLAlchemy
l'altra con SQLAlchemy
) per utilizzare lo stesso database?
Il * banca dati * dovrebbe essere indipendente dal * modelli * o strato ORM che stai utilizzando. – Makoto
Sì, ho capito. Sto cercando un modo per riutilizzare il codice sia in flask che in non flask senza dover modificare le definizioni del mio modello in modo significativo. – amccormack
Non c'è nulla di relativo al pallone nel modello. Tutto ciò che serve è creare una connessione db e importare il modello in una bottiglia o in un'app non-pallone. Metterei semplicemente il modello in 'models.py' così (in realtà basta spostare il precedente dal file .py principale del flask e importare/istanziare IPentry quando necessario). –