Was soll ich meinem Code hinzufügen, so dass es in der Zeile der Tabelle druckt, ist der Benutzername if exist == True :
? Es kann auch die ID des Datensatzes zurückgeben, da sie mir ihre Position in der Tabelle anzeigen würde. Ich habe den Datenbankcode nicht eingefügt, weil ich denke, dass es nicht notwendig ist. Sorry für meine schlechte Erklärung Englisch ist nicht meine Muttersprache.Sqlalchemy: Suchen Sie Zeile, in der Datensatz befindet
0
A
Antwort
1
sqlalchemy unterstützt select
Anweisung Abfragen. So würde ich so etwas wie:
def _get_users(attempt):
stmt = sqlalchemy.select([users]).where(users.c.username == attempt)
return [dict(r) for r in sqlalchemy.execute(stmt)]
def _get_attempt():
username_attempt = raw_input('Enter username:')
return unicode(username_attempt)
attempt = _get_attempt()
recs = _get_users(attempt)
while not recs:
print 'Incorrect username'
attempt = _get_attempt()
recs = _get_users(attempt)
print recs
Wenn recs nicht leer ist (und ein gültiger Benutzername gegeben wurde), recs eine Liste der Wörterbücher enthalten, die die Zeilen in der Tabelle. Sie können recs
durchqueren und die id
jeder Zeile erhalten.
Hinweis: Sie müssen users
Tabelle definieren:
db_metadata = sqlalchemy.MetaData()
users = sqlalchemy.Table('users', db_metadata,
Column('id', sqlalchemy.Integer, primary_key=True),
Column('username', sqlalchemy.Integer, primary_key=True),
# add rest of your table schema here...
)
Ich mag rohen SQL in meinem Code vermeiden, dass so bin ich von SQL-Injektionen sicher. – ThP
aktualisiert, um 'select' Methode anstelle von' text' zu verwenden. Check out [sqlalchemy docs] (http://docs.sqlalchemy.org/en/latest/core/tutorial.html#selecting) für weitere Informationen –
Vielen Dank! – ThP