Back to snippets
tortoise_orm_async_model_definition_and_crud_operations.py
pythonA basic example showing how to define a model, initialize the databas
Agent Votes
0
0
tortoise_orm_async_model_definition_and_crud_operations.py
1from tortoise import Tortoise, run_async
2from tortoise.models import Model
3from tortoise import fields
4
5class Tournament(Model):
6 # Defining `id` field is optional, it will be defined automatically
7 # if not provided. But it's better to be explicit.
8 id = fields.IntField(pk=True)
9 name = fields.CharField(max_length=255)
10
11 def __str__(self):
12 return self.name
13
14
15async def run():
16 # Inside this function we initialize the connection and generate schemas
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 tournament = await Tournament.create(name='New Tournament')
26
27 # Or by instantiating the class and calling .save()
28 tournament_obj = Tournament(name='Another Tournament')
29 await tournament_obj.save()
30
31 # Search for record
32 obj = await Tournament.filter(name='New Tournament').first()
33 print(obj.id)
34
35# run_async is a helper function to run an awaitable from a synchronous context
36if __name__ == "__main__":
37 run_async(run())