首页 > 其他分享 >Django中models模块增删改查

Django中models模块增删改查

时间:2023-04-10 14:37:43浏览次数:37  
标签:name get models db 改查 Django Blog num Model

1 django操作数据库

1.1创建表和字段

from django.db import models


class Blog_Model(models.Model):
    name = models.CharField(db_column='name', max_length=200, blank=True, verbose_name='name')
    num = models.IntegerField(db_column='num', blank=True, verbose_name='num')
class Meta: db_table = 'Blog' # db_table--重写数据表名称
  1. 注:在类里面不指定主键字段,django会帮您自动创建一个id主键!
  2. 默认情况下,Django 会根据模型类的名称和包含它的应用的名称自动指定数据库表名称。eg:blog_type(blog:APP名称,type:模型类名称)
  3. 使用 Meta类中的 db_table 参数来重写数据表的名称

 

1.2增

Blog_Model.objects.create(name='zz', num=4)
Blog_Model(name='aa', num=3).save()
blog, b = Blog_Model.objects.get_or_create(id=1, name='ww', num=1)
  • get_or_create顾名思义,查询或者创建一条数据,首先是执行的时候首先会去查询有没有这个值,如果有就返回,没有就创建。
  • get_or_create会返回一个tuple,第一个值是查到或者创建的数据,第二个值是一个布尔,表示是否执行了创建操作。
  • 在进行查询的时候和使用get查询类似,当查到超过一条数据的时候会触发MultipleObjectsReturned。
  • 创建的时候也和使用create创建类似。
  • 如果你正在使用MySQL,请确保使用READ COMMITTED 隔离级别而不是默认的REPEATABLE READ,否则你将会遇到get_or_create 引发IntegrityError 但对象在接下来的get() 调用中并不存在的情况。

1.3删

Blog_Model.objects.filter(id=2).delete()

1.4改

Blog_Model.objects.filter(id=4).update(name='jj')

 

1.5查

标签:name,get,models,db,改查,Django,Blog,num,Model
From: https://www.cnblogs.com/xinmomoyan/p/17302807.html

相关文章

  • django中批量导入功能(excel)
    当我们想要通过excel来实现批量导入时,有一种方式:1.需要创建的对象data_dict={}#多个data_dict2.将每一个要创建的对象加入到一个列表当中data=[]data.append(data_dict)3.通过事务进行创建withtransaction.atomic():foriteminrange(0,len(data)):......
  • django中migrate后重建库生成表失败?!
    如题,吓死我了虚拟环境里开了两个项目,终端migrate的时候弄错了,结果一直在生成另一个没有变化的库...我还以为是出了什么问题,删了原先的要建表库重新建了一遍。结果再自动生成的时候重新建的表一直没反应,给我吓坏了。还以为是我的sql出问题了,跑去C盘没找到mysql目录吓得我满头大......
  • Django笔记二十之手动编写migration文件
    本文首发于公众号:Hunter后端原文链接:Django笔记二十之手动编写migration文件前面介绍过,migration文件主要记录的是Django系统model的变化,然后通过migrate命令将变化适配到数据库中。比如在某个application下新增了某张表,或者对某张表更改了字段,可以生成migration......
  • Django笔记十九之manager用法介绍
    本文首发于微信公众号:Hunter后端原文链接:Django笔记十九之manager用法介绍首先介绍一下manager的使用场景,比如我们有一些表级别的,需要重复使用的功能,都可以使用manager来实现。比如我们在前面的笔记中介绍的model的create()、update()等方法,Blog.objects.create()中......
  • Django基础 - 05Model模型之CRUD
     一、模型类的objects1.1objects字段默认情况下,由创建模型类的元类在模型类中创建一个 django.db.models.Manager类的对象,赋给objects。 Manager类实际是QuerySet类的子类。classCategoryEntity(models.Model):objects=models.Manager()#objects必须为......
  • 2.MySQL数据库 - 2数据表数据的增删改查
    数据表数据的增删改查专项训练创建数据库、数据表--创建数据库createdatabasepython_test_1charset=utf8;--使用数据库usepython_test_1;--students表createtablestudents(idintunsignedprimarykeyauto_incrementnotnull,namevarchar(20)def......
  • models.ForeignKey()的一些相关参数说明
    models.ForeignKey()是DjangoORM中的一个字段类型,用于定义关联关系。在使用models.ForeignKey()时,可以传入一些参数来控制关联行为。以下是一些常用的参数说明:to:指定关联的目标模型类。on_delete:指定当关联对象被删除时的行为。CASCADE或者SET_NULLrelated_name:指定反向......
  • django model ForeignKey ,解决外键字段增加_id 的问题
    例如:主表-模型: Author:id,name副表-模型:Book:id,author(ForeignKey:Author),name 1.数据库字段增加_id的问题,网上有很多教程,可以使用 db_column='yourname'2.当Book查询中,使用filter,all等查询,都会得到字段author_id,而不是author,可以使用values(),方法指定字段名称,例......
  • flask_day05:信号 Django信号 flask-script sqlalchemy 创建操作数据表
    目录回顾信号比如:用户表新增一条记录时,就记录一下日志内置信号:flask少一些,Django多一些使用内置信号量的步骤自定义信号Django信号django中使用内置信号flask-script自定制命令sqlalchemy快速使用原生操作的快速使用创建操作数据表鲁棒性链路,链路追踪,上下游,大的单体应用,上游还......
  • django中使用orm连接mysql,setting.py的设置
    默认使用的时sqllite数据库,我们需要改成mysql,只要需要填写相关信息即可。比如mysql的数据库名,用户名,密码,主机地址,端口等信息#Database#https://docs.djangoproject.com/en/4.1/ref/settings/#databases#DATABASES={#'default':{#'ENGINE':'django.db.b......