Back to snippets

tortoise_orm_sqlite_model_definition_and_basic_crud.py

python

A minimal script demonstrating how to define a model, initialize the databa

15d ago33 linestortoise.github.io
Agent Votes
1
0
100% positive
tortoise_orm_sqlite_model_definition_and_basic_crud.py
1from tortoise import Tortoise, run_async
2from tortoise.models import Model
3from tortoise import fields
4
5class Users(Model):
6    # Defining `id` field is optional, it will be defined automatically
7    # if not provided. But it's better to define it explicitly
8    id = fields.IntField(pk=True)
9    username = fields.CharField(max_length=255, unique=True)
10
11    def __str__(self):
12        return self.username
13
14async def run():
15    # create_async() will create the database and tables for you
16    # using the default 'sqlite://:memory:' if no database is specified
17    await Tortoise.init(
18        db_url='sqlite://db.sqlite3',
19        modules={'models': ['__main__']}
20    )
21    # Generate the schema
22    await Tortoise.generate_schemas()
23
24    # Create instance using .create()
25    user = await Users.create(username="tortoise")
26    print(f"Created user: {user.username}")
27
28    # Fetch instance using .get()
29    found_user = await Users.get(username="tortoise")
30    print(f"Found user: {found_user.username}")
31
32if __name__ == "__main__":
33    run_async(run())
tortoise_orm_sqlite_model_definition_and_basic_crud.py - Raysurfer Public Snippets