백엔드 개발 파이썬 튜토리얼 ORM 프레임워크 Tortoise Python의 ORM 실제 사례

ORM 프레임워크 Tortoise Python의 ORM 실제 사례

Jun 10, 2023 pm 06:05 PM
python orm tortoise

Tortoise ORM은 Python 언어를 기반으로 개발된 비동기 ORM 프레임워크이며 Python 비동기 애플리케이션에서 관계형 데이터베이스를 관리하는 데 사용할 수 있습니다.

이 기사에서는 Tortoise ORM 프레임워크를 사용하여 데이터를 생성, 읽기, 업데이트 및 삭제하는 방법을 소개합니다. 또한 관계형 데이터베이스에서 간단하고 복잡한 쿼리를 수행하는 방법도 알아봅니다.

준비

이 튜토리얼을 시작하기 전에 Python(Python3.6+ 권장)을 설치하고 Tortoise ORM 프레임워크를 설치해야 합니다.

다음 명령을 사용하여 pip를 통해 Tortoise ORM 프레임워크를 설치할 수 있습니다.

pip install tortoise-orm
로그인 후 복사

다음으로 데이터베이스와 모델 구조를 설정하겠습니다.

데이터베이스 연결 만들기

Tortoise ORM을 사용하여 데이터베이스 작업을 수행하려면 먼저 데이터베이스에 연결해야 합니다. 이 튜토리얼에서는 SQLite 데이터베이스를 사용합니다.

Tortoise ORM은 환경 변수 또는 .config 파일을 사용하여 데이터베이스 연결 정보를 관리합니다. .env라는 파일과 다음 구성을 생성하여 데이터베이스 연결을 달성합니다. .env的文件和以下配置,可以实现数据库连接。

DATABASE_URL=sqlite://db.sqlite3
로그인 후 복사

其中db.sqlite3是你所要创建的新数据库的文件名。

同时,我们还需要在代码中使用函数来初始化Tortoise ORM:

import os
from dotenv import load_dotenv
from tortoise import Tortoise

# 加载环境变量
load_dotenv()

async def init_db():
    await Tortoise.init(config={
        'connections': {
            'default': os.getenv('DATABASE_URL')
        },
        'apps': {
            'models': {
                'models': ['app.models',],
                'default_connection': 'default'
            }
        }
    })
    await Tortoise.generate_schemas()
로그인 후 복사

在上面的代码中我们使用环境变量获取数据库连接信息,并传递给Tortoise ORM进行初始化。接着调用Tortoise.generate_schemas()方法来为所定义的模型生成对应的数据表。

在完成上述操作后,我们就可以开始创建模型。

创建模型

在本教程中,我们将创建一个简单的博客模型,该模型包含标题、内容、创建时间、更新时间和作者。

from tortoise import fields
from tortoise.models import Model

class Blog(Model):
    id = fields.IntField(pk=True)
    title = fields.CharField(max_length=100)
    content = fields.TextField()
    created_at = fields.DatetimeField(auto_now_add=True)
    updated_at = fields.DatetimeField(auto_now=True)
    author = fields.CharField(max_length=100)
로그인 후 복사

在上面的代码的Blog模型中,我们使用Model基类并创建了一些字段idtitlecontentcreated_atupdated_atauthorpk=True指明了id字段是主键。auto_now_add=Trueauto_now=True分别指明了created_atupdated_at字段应该在创建和更新时自动更新。

现在,我们已经成功定义了一个模型,接下来学习如何使用Tortoise ORM进行CRUD操作。

读取和创建数据

使用Tortoise ORM读取和创建数据非常简单,以下是一些示例代码:

from app.models import Blog

# 创建一个新博客
blog = await Blog.create(title='Tortoise ORM', content='使用Tortoise ORM操作数据库非常方便', author='Alice')

# 读取所有博客
blogs = await Blog.all()
for blog in blogs:
    print(blog.title)

# 根据标题读取指定博客
blog = await Blog.get(title='Tortoise ORM')
print(blog.content)
로그인 후 복사

在上面的代码中,我们使用了Blog.create()方法创建了一个新博客,使用Blog.all()方法读取了所有博客,并使用Blog.get()方法根据标题读取了指定的博客。

更新和删除数据

Tortoise ORM也提供了更新和删除数据的方法。以下是一些示例代码:

# 更新博客的内容
blog.content = 'Tortoise ORM提供了丰富的API来管理数据库'
await blog.save()

# 删除指定的博客
await Blog.filter(title='Tortoise ORM').delete()
로그인 후 복사

在上面的代码中,我们使用save()方法更新了博客的内容,并使用filter()delete()方法根据标题删除了指定的博客。

执行复杂查询

除了基本的CRUD操作,Tortoise ORM还允许执行复杂的查询。以下是一些示例:

# 使用where子句查询特定日期创建的博客
blogs = await Blog.filter(created_at__date='2021-07-12').all()

# 使用order_by子句将博客按更新日期升序排列
blogs = await Blog.all().order_by('updated_at')

# 连接多个过滤器查询具有特定条件的博客
blogs = await Blog.all().filter(title__contains='ORM', author__icontains='Alice')
로그인 후 복사

在上面的代码中,我们使用了filter()all()order_by()方法结合一些查询参数,例如。created_at__datetitle__containsauthor__icontainsrrreee

여기서 db.sqlite3은 생성하려는 새 데이터베이스의 파일 이름입니다.

동시에 Tortoise ORM을 초기화하려면 코드의 함수도 사용해야 합니다.

rrreee

위 코드에서는 환경 변수를 사용하여 데이터베이스 연결 정보를 얻고 초기화를 위해 Tortoise ORM에 전달합니다. 그런 다음 Tortoise.generate_schemas() 메서드를 호출하여 정의된 모델에 해당하는 데이터 테이블을 생성합니다. 🎜🎜위 작업을 완료한 후 모델 생성을 시작할 수 있습니다. 🎜🎜모델 만들기🎜🎜이 튜토리얼에서는 제목, 콘텐츠, 생성 시간, 업데이트 시간 및 작성자가 포함된 간단한 블로그 모델을 만듭니다. 🎜rrreee🎜위 코드의 블로그 모델에서는 Model 기본 클래스를 사용하고 id, title, 필드를 일부 생성합니다. 콘텐츠, created_at, updated_atauthor. pk=Trueid 필드가 기본 키임을 지정합니다. auto_now_add=Trueauto_now=Truecreated_atupdated_at 필드가 생성 및 업데이트될 때 자동으로 업데이트되도록 지정합니다. 각각 . 🎜🎜이제 모델을 성공적으로 정의했으므로 CRUD 작업에 Tortoise ORM을 사용하는 방법을 알아봅시다. 🎜🎜데이터 읽기 및 생성🎜🎜Tortoise ORM을 사용하여 데이터를 읽고 생성하는 것은 매우 간단합니다. 다음은 몇 가지 샘플 코드입니다. 🎜rrreee🎜위 코드에서는 Blog.create()를 사용했습니다. 새 블로그를 만들려면 Blog.all() 메서드를 사용하여 모든 블로그를 읽고, Blog.get() 메서드를 사용하여 제목에 따라 지정된 블로그를 읽습니다. . 🎜🎜데이터 업데이트 및 삭제🎜🎜Tortoise ORM은 데이터를 업데이트하고 삭제하는 방법도 제공합니다. 다음은 몇 가지 샘플 코드입니다. 🎜rrreee🎜 위 코드에서는 save() 메서드를 사용하여 블로그 내용을 업데이트하고 filter() delete() 메소드는 제목을 기준으로 특정 블로그를 삭제합니다. 🎜🎜복잡한 쿼리 실행🎜🎜기본 CRUD 작업 외에도 Tortoise ORM에서는 복잡한 쿼리를 실행할 수도 있습니다. 다음은 몇 가지 예입니다. 🎜rrreee🎜위 코드에서는 filter(), all()order_by() 메서드를 사용했습니다. 일부 쿼리 매개변수와 결합됩니다. created_at__date, title__containsauthor__icontains 등을 사용하여 복잡한 쿼리를 수행합니다. 🎜🎜결론🎜🎜이 튜토리얼에서는 Tortoise ORM 프레임워크를 사용하여 CRUD 작업을 구현하고, 데이터베이스를 초기화하고 모델을 생성하고, 복잡한 데이터베이스 쿼리를 수행하는 방법을 배웠습니다. 보시다시피 Tortoise ORM은 Python 비동기 애플리케이션에서 데이터베이스 관리를 매우 간단하고 직관적으로 만듭니다. 🎜

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

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

휴대 전화 용 무료 XML에서 PDF 도구가 있습니까? 휴대 전화 용 무료 XML에서 PDF 도구가 있습니까? Apr 02, 2025 pm 09:12 PM

모바일에는 간단하고 직접 무료 XML에서 PDF 툴이 없습니다. 필요한 데이터 시각화 프로세스에는 복잡한 데이터 이해 및 렌더링이 포함되며 시장에있는 소위 "무료"도구의 대부분은 경험이 좋지 않습니다. 컴퓨터 측 도구를 사용하거나 클라우드 서비스를 사용하거나보다 신뢰할 수있는 전환 효과를 얻기 위해 앱을 개발하는 것이 좋습니다.

XML을 PDF로 변환 할 수있는 모바일 앱이 있습니까? XML을 PDF로 변환 할 수있는 모바일 앱이 있습니까? Apr 02, 2025 pm 08:54 PM

XML을 PDF로 직접 변환하는 응용 프로그램은 근본적으로 다른 두 형식이므로 찾을 수 없습니다. XML은 데이터를 저장하는 데 사용되는 반면 PDF는 문서를 표시하는 데 사용됩니다. 변환을 완료하려면 Python 및 ReportLab과 같은 프로그래밍 언어 및 라이브러리를 사용하여 XML 데이터를 구문 분석하고 PDF 문서를 생성 할 수 있습니다.

XML 형식을 여는 방법 XML 형식을 여는 방법 Apr 02, 2025 pm 09:00 PM

대부분의 텍스트 편집기를 사용하여 XML 파일을여십시오. 보다 직관적 인 트리 디스플레이가 필요한 경우 Oxygen XML 편집기 또는 XMLSPy와 같은 XML 편집기를 사용할 수 있습니다. 프로그램에서 XML 데이터를 처리하는 경우 프로그래밍 언어 (예 : Python) 및 XML 라이브러 (예 : XML.etree.elementtree)를 사용하여 구문 분석해야합니다.

XML 수정에 프로그래밍이 필요합니까? XML 수정에 프로그래밍이 필요합니까? Apr 02, 2025 pm 06:51 PM

XML 컨텐츠를 수정하려면 프로그래밍이 필요합니다. 대상 노드를 추가, 삭제, 수정 및 확인하려면 정확한 찾기가 필요하기 때문입니다. 프로그래밍 언어에는 XML을 처리하기위한 해당 라이브러리가 있으며 운영 데이터베이스와 같이 안전하고 효율적이며 제어 가능한 작업을 수행 할 수있는 API를 제공합니다.

권장 XML 서식 도구 권장 XML 서식 도구 Apr 02, 2025 pm 09:03 PM

XML 서식 도구는 규칙에 따라 코드를 입력하여 가독성과 이해를 향상시킬 수 있습니다. 도구를 선택할 때는 사용자 정의 기능, 특수 상황 처리, 성능 및 사용 편의성에주의하십시오. 일반적으로 사용되는 도구 유형에는 온라인 도구, IDE 플러그인 및 명령 줄 도구가 포함됩니다.

휴대 전화에서 XML 파일을 PDF로 변환하는 방법은 무엇입니까? 휴대 전화에서 XML 파일을 PDF로 변환하는 방법은 무엇입니까? Apr 02, 2025 pm 10:12 PM

단일 애플리케이션으로 휴대 전화에서 직접 XML에서 PDF 변환을 완료하는 것은 불가능합니다. 두 단계를 통해 달성 할 수있는 클라우드 서비스를 사용해야합니다. 1. 클라우드에서 XML을 PDF로 변환하십시오. 2. 휴대 전화에서 변환 된 PDF 파일에 액세스하거나 다운로드하십시오.

XML에서 댓글 내용을 수정하는 방법 XML에서 댓글 내용을 수정하는 방법 Apr 02, 2025 pm 06:15 PM

작은 XML 파일의 경우 주석 내용을 텍스트 편집기로 직접 교체 할 수 있습니다. 큰 파일의 경우 XML 파서를 사용하여 효율성과 정확성을 보장하기 위해 수정하는 것이 좋습니다. XML 주석을 삭제할 때주의를 기울이면 주석을 유지하면 일반적으로 코드 이해 및 유지 관리에 도움이됩니다. 고급 팁은 XML 파서를 사용하여 댓글을 수정하기위한 파이썬 샘플 코드를 제공하지만 사용 된 XML 라이브러리에 따라 특정 구현을 조정해야합니다. XML 파일을 수정할 때 인코딩 문제에주의하십시오. UTF-8 인코딩을 사용하고 인코딩 형식을 지정하는 것이 좋습니다.

XML 형식을 아름답게하는 방법 XML 형식을 아름답게하는 방법 Apr 02, 2025 pm 09:57 PM

XML 미화는 합리적인 압입, 라인 브레이크 및 태그 구성을 포함하여 기본적으로 가독성을 향상시키고 있습니다. 원칙은 XML 트리를 가로 지르고 레벨에 따라 들여 쓰기를 추가하고 텍스트가 포함 된 빈 태그와 태그를 처리하는 것입니다. Python의 xml.etree.elementtree 라이브러리는 위의 미화 프로세스를 구현할 수있는 편리한 Pretty_XML () 기능을 제공합니다.

See all articles