Django 对实体的增删改查样例

发布时间 2023-04-13 10:39:28作者: 万笑佛
 
 
class UserInfo(models.Model):
    """
    人员信息
    """
    user_id = models.CharField(max_length=20, primary_key=True, blank=False, verbose_name='人员ID')
    user_name = models.CharField(max_length=200, blank=False, verbose_name='姓名')
    sex = models.CharField(max_length=20, blank=False, verbose_name='性别')
    id_num = models.CharField(max_length=20, blank=False, verbose_name='身份证号')
    zzmm = models.CharField(max_length=100, default='3', verbose_name='政治面貌')
 

    class Meta:
        db_table = 'NRLJ_USER_INFO_1'
	 
	
----方法展示	
from django.shortcuts import get_object_or_404

# 查询全部
users = UserInfo.objects.all()

# 查询单个
user = UserInfo.objects.get(user_id='123')

# 新增
user = UserInfo(user_id='123', user_name='张三', sex='男', id_num='123456', zzmm='1' )
user.save()

# 更新
user = get_object_or_404(UserInfo, user_id='123')
user.user_name = '李四'
user.save()

# 删除
user = get_object_or_404(UserInfo, user_id='123')
user.delete()
	 
这里的 get_object_or_404() 是 Django 提供的快捷方法,
用于在数据库中获取某个对象,如果对象不存在,就返回 404 错误页面。
在这里, get_object_or_404() 方法用于获取数据库中 
user_id = '123' 的用户对象,如果不存在,就返回 404 错误页面。	 



在Django中,可以通过在查询中使用Q对象,在query参数中加入多个查询条件,实现多条件查询。

例如,假设我们要查询性别为男性、政治面貌为群众的人员信息:

from django.db.models import Q

users = UserInfo.objects.filter(Q(sex='男') & Q(zzmm='群众'))

Q对象用于表示一个查询条件,&表示逻辑与操作,表示满足两个条件同时成立;|表示逻辑或操作,表示满足两个条件中的一个即可。多个Q对象可以组合使用,实现复杂的查询逻辑。

当然,除了使用Q对象之外,也可以直接在查询条件中传入多个参数,例如:

users = UserInfo.objects.filter(sex='男', zzmm='群众')

这两种方法并没有明显的优劣之分,可以根据具体情况进行选择。