Python(9)——Django之数据库增删改查

本文深入探讨了成为一名成功的架构师所面临的挑战,并通过实例介绍了模型设计、表结构创建和增删改查逻辑代码实现的过程。文章还提及了ORM映射关系,以及如何通过代码实现数据操作。

整个过程分为两步:

1、建立表结构;
2、增删改查逻辑代码;

model.py

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=20)
    
class Book(models.Model):
    title = models.CharField(max_length=50)
    author = models.ForeignKey(Author)

 
输入python manage.py sqlall app名字看到具体表结构。

view.py

#coding=utf-8
from demo2.blog.models import Book, Author
from django.http import HttpResponse

def list(request):
    author1 = Author(name='张三')
    author1.save()
    author = Author.objects.all()
    
    book1 = Book(title='第一章节', author=author1)
    book1.save()
    book = Book.objects.all()
    
    
    return HttpResponse('Author:%d;Book:%d' % (author.count(), book.count()))


 
看到这个是不是想到了Hibernate之类的ORM映射关系,哈。


     我的博客其他文章列表   
http://my.oschina.net/helu 







 

转载于:https://my.oschina.net/helu/blog/168396

### Django ORM 增删改查操作 #### 创建对象 (Create) 创建新记录可以通过实例化模型类并调用 `save()` 方法来完成。这会在数据库中插入一条新的记录。 ```python from myapp.models import User new_user = User(username='example', email='example@example.com') new_user.save() ``` 此方法适用于向表中添加单个条目[^1]。 #### 查询对象 (Retrieve) 为了检索特定的数据项,`objects.get()` 是一种常用的方式,它返回匹配查询条件的一个单一对象。当找不到符合条件的对象或存在多个对象时将会抛出异常。 ```python try: user = User.objects.get(id=1) except User.DoesNotExist: print("User does not exist.") ``` 对于更复杂的查询需求,还可以利用 `filter()` 函数获取满足一定条件的结果集列表;而要提高性能,则可考虑采用 `select_related()` 或者 `prefetch_related()` 进行关联字段预加载以减少 SQL 请求次数[^2]。 #### 更新对象 (Update) 更新现有实体的信息有两种主要途径: - **保存修改后的实例**:先通过 `.get()` 获取目标对象再对其属性赋值最后调用 `.save()`. ```python user_to_update = User.objects.get(id=1) user_to_update.email = 'updated_email@example.com' user_to_update.save() ``` - **批量更新**:直接作用于 QuerySet 上执行更改而不必逐一遍历每一个个体 ```python User.objects.filter(is_active=False).update(is_active=True) ``` 这两种方式各有优劣,在不同场景下选用合适的一种即可[^3]. #### 删除对象 (Delete) 删除功能同样支持两种模式——针对单独的 Model 实例以及整个集合的操作: - 单独移除某条记录可通过其自身的 delete 方法实现. ```python specific_user = User.objects.get(id=1) specific_user.delete() ``` - 对一组筛选出来的项目实施集体清除则借助 filter 结合 delete 完成. ```python inactive_users = User.objects.filter(last_login__isnull=True) count_of_deleted, _ = inactive_users.delete() print(f'Deleted {count_of_deleted} users.') ``` 上述四种基本 CRUD 动作构成了 Django 应用程序中最基础也是最重要的部分之一.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值