SqlAlchemy를 사용하여 id별로 데이터베이스를 쿼리하는 방법은 무엇입니까?
SQL 화학 데이터베이스를 기준으로 쿼리해야 합니다.id와 비슷한 것.
User.query.filter_by(username='peter')
이드를 위해서만.이거 어떻게 하는 거지?[Google 검색 및 SO는 도움이 되지 않았습니다.]
쿼리에는 테이블의 기본 키에 의한 쿼리를 지원하는 get 함수가 있으며, 이는id사실은.
예를 들어 ID가 23인 개체를 쿼리하려면 다음과 같이 하십시오.
User.query.get(23)
참고: 일부 다른 의견 및 답변에서 언급했듯이, 이는 단순히 "기본 키에서 쿼리 필터링 수행"의 약어가 아닙니다.SQL 화학 세션의 상태에 따라 이 코드를 실행하면 데이터베이스를 쿼리하고 새 인스턴스를 반환하거나 데이터베이스를 실제로 쿼리하지 않고 코드의 이전에 쿼리한 개체의 인스턴스를 반환할 수 있습니다.아직 읽지 않은 경우 SQL 화학 세션의 설명서를 읽어보고 그 영향을 이해하십시오.
ID가 = 1인 사용자를 다음과 같이 쿼리할 수 있습니다.
session.query(User).get(1)
get()때때로 당신의 예상과 다릅니다.거래가 완료된 경우:
>>> session.query(User).get(1)
[SQL]: BEGIN (implicit)
[SQL]: SELECT user.id AS user_id, user.name AS user_name, user.fullname AS user_fullname
FROM user
WHERE user.id = ?
[SQL]: (1,)
<User(u'ed', u'Ed Jones')>
만약 당신이 거래를 하고 있다면,get()데이터베이스를 쿼리하지 않고 메모리의 결과 개체를 제공합니다.
>>> session.query(User).get(1)
<User(u'ed', u'Ed Jones')>
다음을 사용하는 것이 좋습니다.
>>> session.query(User.name).filter(User.id == 1).first()
[SQL]: SELECT user.name AS user_name
FROM user
WHERE user.id = ?
LIMIT ? OFFSET ?
[SQL]: (1, 1, 0)
(u'Edwardo',)
사용하는 경우tables reflection지정된 솔루션에 문제가 있을 수 있습니다. (이전 솔루션은 저에게 적합하지 않았습니다.)
사용하게 된 것은 다음과 같습니다.
session.query(object.__class__).get(id)
(object데이터베이스에서 반영하여 검색했습니다. 이것이 당신이 사용해야 하는 이유입니다..__class__)
이것이 도움이 되길 바랍니다.
먼저 설정해야 합니다.id기본 키로 사용합니다.
그러면 당신은 그것을 사용할 수 있습니다.query.get()개체를 쿼리하는 방법id이미 기본 키입니다.
그 이후로query.get()기본 키로 개체를 쿼리하는 메서드입니다.
플라스크-SQ에서 추론LA 화학 문서
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy()
db.init_app(app)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
def test():
id = 1
user = User.query.get(id)
SQLAlchemy 2.0 기준으로 다음을 사용할 수 있습니다.
with Session(engine) as session:
user = session.get(User, 1)
if user is not None:
print(f'# user: {user.username}')
print(user)
언급URL : https://stackoverflow.com/questions/6750017/how-to-query-database-by-id-using-sqlalchemy
'programing' 카테고리의 다른 글
| MS SQL 서버에 있는 Oracle 시퀀스 (0) | 2023.07.21 |
|---|---|
| 셀러리에서 작업 상태를 확인하는 방법은 무엇입니까? (0) | 2023.07.21 |
| 파이썬에서 현재 날짜 시간의 문자열 형식을 가져오려면 어떻게 해야 합니까? (0) | 2023.07.21 |
| 마지막에 NULL로 내림차순 Oracle 순서 (0) | 2023.07.21 |
| 'DataFrame' 개체에 'sort' 특성이 없습니다. (0) | 2023.07.21 |