SqlAlchemy를 사용하여 ID로 데이터베이스를 쿼리하는 방법은 무엇입니까?
id
비슷한 SQLAlchemy 데이터베이스를 쿼리해야 합니다.
User.query.filter_by (username = 'peter')
하지만 이드를 위해서. 어떻게해야합니까? [Google 및 SO 검색은 도움이되지 않았습니다.]
쿼리에는 테이블의 기본 키에 의한 쿼리를 지원 하는 get 함수id
가 있습니다.
예를 들어 ID가 23 인 개체를 쿼리하려면 다음을 수행합니다.
User.query.get(23)
참고 : 다른 댓글 작성자와 답변에서 언급했듯이 이것은 단순히 "기본 키에서 쿼리 필터링 수행"의 약어가 아닙니다. SQLAlchemy 세션의 상태에 따라이 코드를 실행하면 데이터베이스를 쿼리하고 새 인스턴스를 반환하거나 실제로 데이터베이스를 쿼리하지 않고 코드에서 이전에 쿼리 한 개체의 인스턴스를 반환 할 수 있습니다. 아직 수행하지 않은 경우 SQLAlchemy 세션 에 대한 문서를 읽고 결과를 이해하는 것이 좋습니다.
다음과 같이 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',)
먼저 id
기본 키로 설정해야 합니다.
그런 다음이 query.get()
메서드를 사용하여 id
이미 기본 키인 개체를 쿼리 할 수 있습니다 .
query.get()
기본 키로 개체를 쿼리 하는 방법 이후 . Flask-SQLAlchemy 설명서
에서 유추
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)
참고 URL : https://stackoverflow.com/questions/6750017/how-to-query-database-by-id-using-sqlalchemy
'Program Tip' 카테고리의 다른 글
SVN 작업 카피 레이아웃 버전을 어떻게 결정합니까? (0) | 2020.11.04 |
---|---|
WCF에 대한 코드에서 IncludeExceptionDetailInFaults를 true로 설정합니다. (0) | 2020.11.04 |
maven : 명령 줄 옵션 또는 env 변수를 사용하여 로컬 저장소의 위치를 재정의 할 수 있습니까? (0) | 2020.11.04 |
예외가 특정 유형인지 확인하는 방법 (0) | 2020.11.04 |
restTemplate을 사용하여 인증 헤더와 함께 GET 요청 보내기 (0) | 2020.11.04 |