3.1.8 Django模型层详细应用

本文详细介绍了Django的ORM(对象关系映射)和模型层的使用,包括如何配置数据库连接、创建数据迁移、定义模型字段及参数。还探讨了时间字段、关系字段如ForeignKey的特性和用法,并提供了数据插入、修改和删除的操作示例。
摘要由CSDN通过智能技术生成

  在这里肯定有小伙伴会说,前面不是已经引用了模型层了吗?并且在模型层中完成了数据库的操作了呀,为什么还要讲模型层?

        首先呢,前面属于我们最传统的处理方式,那种方式过于麻烦,无法很好处理数据。模型层真正应该要应用的是ORM,那么ORM是什么呢?

ORM概述

       对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。

        简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

ORM作用

        ORM在业务逻辑层和数据库层之间充当了桥梁的作用。

ORM优点

        不用直接编写sql语句,只需要操作对象一样从数据库中操作数据,那么开发人员只需要考虑业务逻辑的处理,从而提高了开发效率。

ORM缺点

         在一定程度上会牺牲程序的执行效率以及sql语句技能的退化

Django中ORM的使用

Django项目使用MySQL数据库

  1. 在Django项目的settings.py文件中,配置数据库连接信息:

  注意:mysql数据库在模型层中是不能够自动创建对应的数据库哦,所以此处必须手动在mysql服务器上手动创建一个数据库名叫:mydatabase,不然的话后面实现数据迁移和同步的时候会提示无法找到对应的数据库哦

  2.在模型层中即models.py文件中声明类,该类对应数据库的表,具体实现如下:

from django.db import models#创建一个用户信息表#如果你需要将当前类映射到指定数据库完成对应表结构的创建的话,那么当前类必须继承models.Modle,否则的无法生成迁移文,那么就无法实现数据同步操作#就相当于是一个普通类class  CustomerInfo(models.Model):    #声明客户类型的选择:    customer_chocie=[("A","A类客户"),("B","B类客户"),("C","C类客户")]    #例如:将数据导出到execl等文件中,首行都是每列的描述verbose_name;如果不想自动让django默认添加一个id的字段,那么可以自定义id,并将该id的值    # 设置为主键,那么默认的就不存在,如果不想自定义id的话也不想要自动生成的那个id,那么在当前表中指定一个字段为主键    #customer_name就是一个主键    customer_name=models.CharField(max_length=12,name="cus_name",verbose_name="客户名称",primary_key=True)    customer_type=models.CharField(max_length=2,choices=customer_chocie,name="cus_type")    #如果是使用integerField的话则不需要声明其长度    customer_phone=models.IntegerField()    customer_email=models.CharField(max_length=20)    customer_address=models.CharField(max_length=100,null=True)

   3.定义了modle模型层内容后,则需要实现生成数据迁移文件操作;

使用命令:

python  manage.py  makemigrations  apps的名字
  • 注意:a.创建好的apps必须要添加到settings中的INSTALLED_APPS

如果不进行配置的话,则会提示无法找到对应的apps。

b.需要安装mysqlclient第三方包,否则提示mysqldb的error错误;

c.最新的django3.0版本无法兼容mysql5.5,需要升级mysql版本或者降级django版本。

其中mysql5.5与mysql最新版本8.0想要同时共存的话,详细操作可以看之前推送的文章

Win10下mysql5.5和mysql8.0.20共存

     4.完成数据迁移以及同步数据的操作,使用下面命令:

python  manage.py  migrate  apps的名字

上面操作完毕后,会在mysql指定配置的数据库中创建所设定模型层的表结构,如下图:

 

Django模型层应用

        上面已经完成了表结构的创建,如果我要对该表完成数据的插入、修改、删除等操作的话,则如何实现?

         首先操作模型层有两种方式:

  1. 通过django的请求响应的形式完成数据的操作

from django.http import HttpResponsefrom AddCustomer.models import CustomerInfodef  add_customer(request):    #从页面上获取的数据,传入的参数    get_info={
      "cus_name":request.GET.get("customer_name"),    "cus_type":request.GET.get("customer_type"),    "customer_phone":request.GET.get("customer_phone"),    "customer_email":request.GET.get("customer_email"),    "customer_address":request.GET.get("customer_address")    }    #前面可以实现一个一个赋值操作    customer=CustomerInfo.ob
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zemuerqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值