温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

django中怎么进行数据的增删改

发布时间:2021-10-21 15:10:39 来源:亿速云 阅读:129 作者:柒染 栏目:大数据

django中怎么进行数据的增删改,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在 web 开发中,最重要的是数据库的设计,就是 models 模型设计,简单的web开发说白了就是对数据库的增删改查,今天先看下数据库的增加,修改,和删除吧,我们操作数据库可以使用原生sql语句,但是如果sql的操作语句不复杂,可以使用django 的 ORM 语句,它是通过一些封装,根据 ORM 的语法可以对数据库增删改查,用一同一个 ORM 语句可以支持对 mysql、sqlite、PostgreSQL、Oracle 等数据库增删改操作,兼容性很强。

我现在的model模型是有两个表,一个学生表,一个班级表,代码如下:

class Student(models.Model): # 一定要继承    # CharField为字符串类型,必须有max_length设置最大长度,verbose_name在django后台显示该英文字段的中文意思    name = models.CharField(max_length=30, verbose_name="学生姓名")    # IntegerField整型    age = models.IntegerField(default=16, verbose_name="学生年龄")    # DecimalField浮点型,max_digits=5表示整数部分和小数位数之和不大于5,decimal_places表示小数的最大位数,    # null=True表示字段可以为空,blank=True表示在admin后台中该数据栏可以为空    score = models.DecimalField(verbose_name='成绩', max_digits=5, decimal_places=2, null=True, blank=True)#    # EmailField该字段必须符合邮箱格式    email = models.EmailField(verbose_name='邮箱', null=True, blank=True)    # TextField 字段位文本类型,长度没有限制    introduce = models.TextField(verbose_name="学生自我介绍")    # DateTimeField为日期类型,auto_now_add=True该条数据创建的时间,数据更新时,时间数值不变    # auto_now=True该条数据创建的时间,数据更新时,时间数值也会改变    created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")    updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")    # ForeignKey一对多外键,比如一个班级有多个学生,就属于一对多,外键要放到"多"的那张表,    # related_name是对外键取别名,常用在django的orm反向查询中    cls = models.ForeignKey('Class', related_name="stu_cls", null=True, on_delete=models.PROTECT)

   # 下面是django后台字段显示控制    class Meta:        verbose_name_plural = verbose_name = "学生表"    def __str__(self):        return self.name

class Class(models.Model): # 班级表    name = models.CharField(verbose_name='班级名称',max_length=10)    created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")    updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间")
   def __str__(self):        return self.name
   class Meta:        verbose_name = verbose_name_plural = '班级'

然后进行同步数据库操作,在 pycharm 中打开终端(Terminal),在命令行中输入:

django中怎么进行数据的增删改

下面在一个 views.py 文件中写一个视图函数,使用 ORM 进行基本的增删改操作。记得给函数配置对应的 url。


def orm_test(request):    # 新增一个名字为1901的一个班级,create是新增方法,里面可以接受多个字段参数    # Class.objects.create(name="1901")    # 同时新增一个学生和班级操作    # 新增一个班级名称为1903的班级,返回一个班级实例    cls_instance = Class.objects.create(name="1903")    # stu_info左边的key要和Student模型字段对应上,因为cls是外键,所以要对应一个班级的实例    stu_info = {        "name":"静静",        "age": "18",        "score":"67.50",        "email": "123@qq.com",        "introduce": "我是静静",        "cls": cls_instance    }    Student.objects.create(**stu_info)    # 将名字为1901的班级名称改为1901_xiu,filter为过滤,支持多个参数,update是更新方法,支持多个参数    # Class.objects.filter(name="1901").update(name="1901_xiu")    # 将名字为1901_xiu的班级删除掉,delete是删除方法    # Class.objects.filter(name="1901_xiu").delete()

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI