Django Models
Django Models
Django models and working with Django ORM:
Defining models for database tables:
models are Python classes that represent database tables.
You can define your models in the models.py file of your Django app.
Each model class corresponds to a table in your database, and each attribute of the class represents a column in that table.
For example, let's say you're building a blog application. You might define a Post model like this:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
In this example, we define a Post model with three fields: hash, attribute, and created field. The structure of our product described as the Post will mirror the database table with columns for each field.
Working with Django ORM (Object-Relational Mapping):
Django’s ORM is an intuitive, easy-to-use way of interacting with databases. Instead of writing raw SQL queries, you can create, retrieve, update and delete objects using the familiar Python language.
For example, to create a new Post object and save it to the database:
from myapp.models import Post
# Create a new post object
new_post = Post(title="My First Post", content="This is the content of my first post.")
# Save the post to the database
new_post.save()
To retrieve objects from the database:
# Retrieve all posts
all_posts = Post.objects.all()
# Retrieve a specific post by its primary key
post = Post.objects.get(pk=1)
To update an existing object:
# Retrieve a post
post = Post.objects.get(pk=1)
# Update its attributes
post.title = "Updated Title"
post.save()
To delete an object:
# Retrieve a post
post = Post.objects.get(pk=1)
# Delete the post
post.delete()
Django's ORM handles the translation between Python objects and database records, making it easier and safer to work with your database in Django applications.