>  기사  >  백엔드 개발  >  Python의 ORM 프레임워크 Peewee에 대한 자세한 설명

Python의 ORM 프레임워크 Peewee에 대한 자세한 설명

王林
王林원래의
2023-06-10 10:57:142710검색

Python의 ORM 프레임워크 Peewee에 대한 자세한 설명

ORM(Object Relational Mapping)은 객체를 관계형 데이터베이스에 매핑하는 기술입니다. 이번 글에서는 Python의 ORM 프레임워크인 Peewee를 소개합니다. Peewee는 SQLite, MySQL, PostgreSQL과 같은 여러 데이터베이스를 지원하는 가볍고 사용하기 쉽고 유연한 ORM 프레임워크입니다. 이 기사에서는 Peewee의 설치, 기본 사용법, 고급 사용법 및 다른 ORM 프레임워크와의 비교를 소개합니다.

  1. Peewee 설치

Peewee는 pip를 통해 설치할 수 있습니다. 설치할 터미널에 다음 명령어를 입력하세요:

pip install peewee
  1. 기본 사용법

(1) 데이터베이스 연결

Peewee를 사용하기 전에 먼저 데이터베이스에 연결해야 합니다. 다음 코드는 Peewee를 통해 SQLite 데이터베이스에 연결하는 방법을 보여줍니다.

from peewee import *

db = SqliteDatabase('my_database.db')

그 중 my_database.db는 SQLite 데이터베이스 이름입니다. 데이터베이스 파일이 없으면 현재 디렉터리에 파일이 생성됩니다.

Peewee는 MySQL, PostgreSQL 및 기타 데이터베이스도 지원합니다. SqliteDatabase를 해당 데이터베이스로 교체하기만 하면 됩니다. 예를 들어, 다음 코드는 Peewee를 통해 MySQL 데이터베이스에 연결하는 방법을 보여줍니다.

db = MySQLDatabase('my_database', user='my_user', password='my_password', host='my_host', port=3306)

(2) 모델 정의

Peewee는 모델을 사용하여 데이터베이스의 테이블을 설명합니다. 각 모델은 테이블을 나타내고, 각 속성은 테이블의 필드를 나타냅니다. 다음 코드는 id와 name이라는 두 개의 필드를 포함하는 User 모델을 정의합니다.

class User(Model):
    id = AutoField(primary_key=True)
    name = CharField()

    class Meta:
        database = db

그중 AutoField는 자동 증가 기본 키를 나타내고, Primary_key=True는 해당 필드를 기본 키로 나타내고, CharField는 문자열 유형을 나타냅니다.

(3) 테이블 생성

모델을 정의한 후 해당 데이터베이스에 해당 테이블을 생성해야 합니다. Peewee는 테이블을 생성하는 create_table 메소드를 제공하며 코드는 다음과 같습니다.

User.create_table()

(4) 데이터 삽입

Peewee는 데이터베이스에 데이터를 삽입하는 save 메소드를 제공합니다. 다음 코드는 데이터 조각을 삽입합니다.

user = User(name='张三')
user.save()

(5) Query data

Peewee는 데이터를 쿼리하는 get 및 select 메서드를 제공합니다. 그 중 get 메소드는 단일 데이터를 조회하는 데 사용되고, select 메소드는 여러 데이터를 조회하는 데 사용됩니다. 다음 코드는 Zhang San이라는 모든 사용자를 쿼리합니다.

users = User.select().where(User.name == '张三')
for user in users:
    print(user.id, user.name)
  1. 고급 사용법

(1) 관련 쿼리

Peewee는 외래 키 관련 쿼리를 지원합니다. 다음 코드는 id, user 및 product의 세 가지 필드를 포함하는 Order 모델을 정의합니다.

class Order(Model):
    id = AutoField(primary_key=True)
    user = ForeignKeyField(User, backref='orders')
    product = CharField()

    class Meta:
        database = db

그 중 ForeignKeyField는 외래 ​​키를 나타내며 backref='orders'는 User를 통해 사용자의 모든 주문에 액세스할 수 있음을 의미합니다. 명령.

다음과 같이 조인 메소드를 통해 관련 쿼리를 수행할 수 있습니다.

orders = Order.select().join(User).where(User.name == '张三')
for order in orders:
    print(order.id, order.user.name, order.product)

(2) 트랜잭션 작업

Peewee는 트랜잭션 작업을 지원합니다. 데이터베이스의 여러 작업은 db.atomic()으로 캡슐화할 수 있으며 코드는 다음과 같습니다.

with db.atomic() as txn:
    user1 = User(name='张三')
    user1.save()
    user2 = User(name='李四')
    user2.save()
    for i in range(10):
        order = Order(user=user1, product='product_' + str(i))
        order.save()
        order = Order(user=user2, product='product_' + str(i))
        order.save()
  1. 다른 ORM 프레임워크와의 비교

Django의 자체 ORM 프레임워크에 비해 Peewee는 더 가볍습니다. 유연하게 사용할 수 있습니다. SQLAlchemy에 비해 Peewee의 구문은 더 간결하고 명확하며 편리한 고급 사용법을 많이 제공합니다.

간단히 말하면 Peewee는 유연성과 사용 용이성으로 인해 많은 프로젝트에서 널리 사용되는 권장 Python ORM 프레임워크입니다.

위 내용은 Python의 ORM 프레임워크 Peewee에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.