Flask SQLAlchemy에서 "not equals" 조건으로 컬럼 조회하기
python
sqlalchemy
flask
단계별 설명:
-
데이터베이스 모델 정의:
먼저, SQLAlchemy 모델 클래스를 정의하여 데이터베이스 테이블을 나타냅니다. 모델 클래스에는 컬럼을 표현하는 속성이 포함됩니다.
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) # ... 다른 컬럼들 ...
-
Flask 앱 생성:
Flask 앱을 생성하고 SQLAlchemy 확장 기능을 초기화합니다.
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db' db = SQLAlchemy(app)
-
"not equals" 조건으로 쿼리 작성:
query.filter()
메서드를 사용하여 "not equals" 조건을 포함하는 쿼리를 작성합니다.@app.route('/users') def get_users(): users = User.query.filter(User.name != 'John Doe').all() # ... 사용자 처리 ...
위 코드는
name
컬럼이 'John Doe'가 아닌 모든 사용자를 반환합니다. -
쿼리 결과 처리:
쿼리 결과는
User
객체 목록으로 반환됩니다. 이 목록을 사용하여 원하는 작업을 수행할 수 있습니다. 예를 들어, 사용자 정보를 출력하거나 다른 페이지로 리다이렉트할 수 있습니다.@app.route('/users') def get_users(): users = User.query.filter(User.name != 'John Doe').all() for user in users: print(user.name, user.email) # ...
추가 정보
예제 코드: Flask SQLAlchemy에서 "not equals" 조건으로 컬럼 조회하기
필수 라이브러리:
코드:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
@app.route('/users')
def get_users():
users = User.query.filter(User.name != 'John Doe').all()
for user in users:
print(user.name, user.email)
if __name__ == '__main__':
app.run()
설명:
-
- Flask 앱 인스턴스를 생성하고
SQLALCHEMY_DATABASE_URI
설정을 사용하여 데이터베이스에 연결합니다. SQLAlchemy
확장 기능을 초기화하여 앱에 통합합니다.
- Flask 앱 인스턴스를 생성하고
-
get_users()
함수는User.query.filter(User.name != 'John Doe')
쿼리를 사용하여name
컬럼이 'John Doe'가 아닌 모든 사용자를 검색합니다.- 쿼리 결과는
User
객체 목록으로 반환됩니다.
-
앱 실행:
if __name__ == '__main__':
블록은 스크립트가 직접 실행될 때만 코드를 실행합니다.app.run()
메서드는 Flask 앱을 실행합니다.
참고:
- 이 코드는 SQLite 데이터베이스를 사용합니다. 다른 데이터베이스를 사용하려면
SQLALCHEMY_DATABASE_URI
설정을 변경해야 합니다. - 이 코드는 기본적인 예제입니다. 실제 응용 프로그램에서는 더 복잡한 쿼리와 데이터 처리를 수행해야 할 수도 있습니다.
Flask SQLAlchemy에서 "not equals" 조건으로 컬럼 조회하기: 대체 방법
query.filter_by() 사용:
query.filter_by()
메서드는 키워드 인수를 사용하여 쿼리 조건을 지정하는 데 사용할 수 있습니다.
@app.route('/users')
def get_users():
users = User.query.filter_by(name='John Doe').all()
# ...
~ 연산자 사용:
~
연산자는 논리적 부정을 나타내는 데 사용할 수 있습니다.
@app.route('/users')
def get_users():
users = User.query.filter(User.name != 'John Doe').all()
# ...
위 코드는 앞서 설명한 예제와 동일합니다.
or_ 함수 사용:
or_
함수는 여러 조건을 연결하는 데 사용할 수 있습니다.
@app.route('/users')
def get_users():
users = User.query.filter(or_(User.name != 'John Doe', User.email != '[email protected]')).all()
# ...
위 코드는 name
컬럼이 'John Doe'가 아니거나 email
컬럼이 '[email protected]'이 아닌 모든 사용자를 반환합니다.
하위 쿼리 사용:
하위 쿼리를 사용하여 더 복잡한 조건을 만들 수 있습니다.
@app.route('/users')
def get_users():
subquery = User.query.filter(User.email != '[email protected]')
users = User.query.filter(User.name != 'John Doe').filter(User.id.in_(subquery)).all()
# ...
주의 사항:
- 각 방법마다 장단점이 있으므로 상황에 맞는 방법을 선택해야 합니다.
- 복잡한 쿼리를 작성할 때는 코드가 명확하고 읽기 쉬운지 확인하십시오.
python sqlalchemy flask