파이썬/Tortoise-ORM
[Python] Tortoise ORM 시작하기
책 읽는 개발자_테드
2022. 4. 23. 21:21
반응형
Tortoise ORM이란? https://scshim.tistory.com/576
1. 설치
$ pip install tortoise-orm
db 드라이버도 함께 설치하려면 다음과 같이 명령어를 작성한다.
pip install tortoise-orm[asyncpg]
ex) pip install tortoise-orm[aiomysql]
2. models 정의하기
models.py
from tortoise.models import Model
from tortoise import fields
class Tournament(Model):
id = fields.IntField(pk=True)
name = fields.TextField()
3. 데이터베이스 초기화하기
from tortoise import Tortoise, run_async
async def init():
# SQLite을 사용하여 DB db.sqlite3 파일을 생성한다.
await Tortoise.init(
db_url='sqlite://db.sqlite3',
modules={'models': ['app.models']}
)
# 스키마를 생성한다.
await Tortoise.generate_schemas()
# run_async는 async Tortoise scripts를 실행하기 위한 helper function이다.
run_async(init())
- generate_schema는 빈 데이터베이스에 스키마를 생성한다. 따라서 모든 앱 초기화에서 실행해서는 안되고 처음 한 번만 실행하면 된다.
- 스키마를 생성할 때 테이블이 아직 존재하지 않는 경우에만 테이블을 삽입하는 안전 매개변수를 True로 설정하는 옵션도 있다.
예) Tortoise.generate_schemas(safe=True)
4. Tortoise orm 사용하기
async def run():
# Create instance by save
tournament = Tournament(name='New Tournament')
await tournament.save()
# Or by .create()
await Tournament.create(name='Another Tournament')
# Now search for a record
tour = await Tournament.filter(name__contains='Another').first()
print(tour.name)
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
loop.close()
출처: https://github.com/tortoise/tortoise-orm
반응형