django中怎么进行数据的增删改
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,django中怎么进行数据的增删改,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在 web 开发中,最重要的是数据库的设
千家信息网最后更新 2024年11月11日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),在命令行中输入:
下面在一个 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()
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
数据
班级
时间
字段
学生
数据库
更新
多个
语句
支持
参数
名字
名称
后台
方法
模型
类型
最大
静静
位数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
航信a6 显示无法连接服务器
软件开发 建筑工程
英文介绍微波网络技术论文
数据库只存文件路径作为索引
叶少云服务器
5G网络技术具备的优势有
软件开发手册 什么意思
传统数据库和非传统数据库
面试数据库和redis
网络安全法的目标群众
枣庄苹果软件开发哪家靠谱
网络安全准入助手怎么解决
怎么推广服务器
网络安全知识挑战赛浙江
网络安全演讲题目
金蝶软件开发师教程
宿迁mes软件开发
上海信息网络技术服务
网络安全教育测试题
网络安全法中有关主管部门
网络技术的原理及缺陷
危害网络安全的严重后果
庆阳大数据软件开发工程师专业
网络安全工程师英文翻译
云闪付里面服务器是什么
公安网络安全防控
二层网络技术有那些
软件开发项目管理类论文
网络安全宣传周保密标语
网络安全管理中最核心要求是