Django provides a high-level Object-Relational Mapping (ORM) framework that abstracts away the details of database interactions and allows you to interact with databases using Python code. The built-in database functions in Django are part of this ORM and provide a convenient way to perform various operations on the database.
Here are some common built-in database functions and how to use them:
Creating Objects:
To create a new record in the database, you can create an instance of a Django model and then save it to the database using the save()
method.
pythonfrom myapp.models import MyModel
# Create an instance of MyModel
obj = MyModel(field1='value1', field2='value2')
# Save the object to the database
obj.save()
Querying Objects:
You can use the objects
attribute of a Django model to query the database.
pythonfrom myapp.models import MyModel
# Retrieve all objects in the database
all_objects = MyModel.objects.all()
# Filter objects based on certain conditions
filtered_objects = MyModel.objects.filter(field1='value1')
# Get a single object by its primary key
single_object = MyModel.objects.get(pk=1)
Updating Objects: After retrieving an object, you can update its fields and then save it again.
pythonobj = MyModel.objects.get(pk=1)
obj.field1 = 'new_value'
obj.save()
Deleting Objects:
To delete an object, you can use the delete()
method.
pythonobj = MyModel.objects.get(pk=1)
obj.delete()
Aggregation Functions:
Django provides various aggregation functions like count()
, sum()
, avg()
, etc., to perform calculations on groups of objects.
pythonfrom django.db.models import Count
# Count the number of objects
num_objects = MyModel.objects.count()
# Group by a field and count
grouped_count = MyModel.objects.values('field1').annotate(count=Count('field1'))
Raw SQL Queries: Django allows you to execute raw SQL queries if needed.
pythonfrom django.db import connection
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM myapp_mymodel WHERE field1 = %s", ['value1'])
result = cursor.fetchall()
These are just a few examples, and Django's ORM provides many more features and functions for working with databases. It's important to refer to the Django documentation for comprehensive details and examples: Django ORM Documentation.