Проверка конкретной записи в базе данных и получение ее идентификатора, если она существует

#python #sqlalchemy

Вопрос:

Прежде чем ты ответишь:

Я использую flask-sqlalchemy библиотеку для app.py веб-приложения Python и базу данных SQLite, называемую sqlite:///mydb.db

 from flask import Flask, render_template, request, redirect
from flask_sqlachemy import SQLAlchemy
from datetime import datetime

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI] = 'sqlite:///mydb.db'

db = SQLAlchemy (app)

class Mydb(db.Model):
 id = db.Column(db.Integer, primary_key = True)
 userName = db.Column(db.String(30), nullable = False, unique = True)
 pwd = db.Column(db.String(30), nullable = False)
 created = db.Column(db.DateTime, default=datetime.utcnow)

...... AND IT GOES ON FURTHER

 

Я создал базу данных, и она получает записи из HTML-формы. База данных работает нормально, и в ней мало записей.

Вопрос

Как я могу захватить ID(/IDs) конкретную запись в базе данных, если я знаю, что(/эти) записи(записи) существуют(/существуют) в нашей базе данных? Идентификатор определяется как

 db.Column(db.Integer, primary_key = True)
 

Было бы здорово, если бы для этого не использовалась новая библиотека.

Я знаю

 bool(Model.query.filter_by(user='John').first())
 

скажет мне, существует ли пользователь с именем «Джон», но как я могу получить идентификатор(/идентификаторы) этой записи, узнав, что она существует?

Ответ №1:

Model.query.filter_by(user='John').first() возвращает объект в базе данных:

 user = Model.query.filter_by(user='John').first()
if user:
    id = user.id