Interview question
How do you work with databases using ORM in web frameworks? Web frameworks में ORM से database के साथ कैसे काम करते हैं?
Answer
# Django ORM
from django.db import models
from django.utils import timezone
class User(models.Model):
username = models.CharField(max_length=100, unique=True)
email = models.EmailField(unique=True)
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.username
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='posts')
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
# Using Django ORM
from .models import User, Post
# Create
user = User.objects.create(username='john', email='john@example.com')
# Read
user = User.objects.get(id=1)
users = User.objects.all()
users = User.objects.filter(is_active=True)
# Update
user.email = 'newemail@example.com'
user.save()
# Delete
user.delete()
# Relationships
post = Post.objects.create(title='My Post', content='Content', author=user)
posts = user.posts.all()
# QuerySet operations
users = User.objects.filter(is_active=True).order_by('-created_at')
count = User.objects.filter(is_active=True).count()
# SQLAlchemy with Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
app = Flask(__name__)
db.init_app(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(100), unique=True)
email = db.Column(db.String(100), unique=True)
# Using SQLAlchemy
user = User(username='john', email='john@example.com')
db.session.add(user)
db.session.commit()
user = User.query.filter_by(username='john').first()
users = User.query.all()
user.delete()
db.session.commit()Django ORM:
User.objects.create(username='john')
User.objects.get(id=1)
User.objects.filter(is_active=True)
User.objects.all()
user.save()
user.delete()
SQLAlchemy:
db.session.add(user)
db.session.commit()
User.query.all()
User.query.filter_by(id=1).first()Was this answer clear?