资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

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

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()

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


分享文章:django中怎么进行数据的增删改
新闻来源:http://cdkjz.cn/article/iepcge.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220