django中怎么进行数据的增删改
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,django中怎么进行数据的增删改,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在 web 开发中,最重要的是数据库的设
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
河北环保软件开发操作
软件开发费用税点
关于网络安全疫情
江苏网络营销软件开发销售
数据库 分页插件
数据库性能优化究竟该如何下手
java 信令服务器
中小学教育网络安全平台
电脑读取树莓派数据库
重庆网络安全工作大赛
拼多多服务器要多少钱
管家婆服务器名称
剑与远征2019年服务器列表
国内服务器硬件供应商排名
宁夏银川oa软件开发贵吗
云服务器可以做什么
奉贤区品质数据库服务商销售价格
软件开发小组名字
服务器插了移动硬盘没反应
计算机网络技术英语单词
西部证券智慧服务器连接不上
网络安全工程师的项目经验
易乐游服务器无盘用什么系统
pnnl数据库说明
阿里开源的分布式开源数据库
中国民营软件开发公司排名
坦克世界连接到服务器失败
m1pro 软件开发
vs2010中连接数据库
平安家校教师端网络安全等级