新闻详情

新闻详情

首页 / 资讯中心 / 详情

django 数据库 单表操作

发布时间:2026/10/1 13:13:22来源:尧图网络
django 数据库 单表操作
model.pyfrom django.db import models # Create your models here. #继承models.Model成为模型类 #模型就是一个数据表 #类字段就是表字段 #实例化对象就是表数据 #class 定义类 #classes分类 类名 #创建完模型类之后都需要迁移映射 int IntegerField 整形 varchar CharField 字符类型 longtext TextField 文本类型 date DateField 日期类型 BooleanField 布尔类型 DateTimeField 日期时间类型 ImageField 图片文件类型 FileField 文件类型 AutoField 自增长类型 字段的常用属性 表约束 unique null 默认就是非空 指定为True primary_key 主键 default 默认值 blank 表单提交的值可以为空 form datefield.autonow 每次修改都会将当前时间更新进去 datefield.autonow_add 第一次会添加会将当前时间设置进去以后不会修改这个值 class Classes(models.Model): #设置自增长约束 主键约束 idmodels.AutoField(primary_keyTrue) #限制最长字段值为50 默认都有非空约束设置可以不空 nullTrue namemodels.CharField(max_length50) #重写输出魔法方法 def __str__(self): return Classesname%s%self.name数据迁移PyCharm 中 Tools Run manage.py...........这个选项makemigrations demomigrate demo 提交上面model.py是在demo中的view.pyfrom demo.models import Classes def classes(request,**kwargs): #实例化一个对象 并传入字段字 # classes1Classes(namepython) # classes1.save() #保存数据 #第二种创建一个对象 # classes2Classes() # classes2.namejava # classes2.save() #第三种通过类调用创建方法创建对象传值 #Classes.objects.create(namedeepseek) #第四种 get_or_create获取或创建 #有数据则获取 没有则添加 #Classes.objects.get_or_create(namehtml) #查询所有数据 res Classes.objects.all() for i in res: print(i.name) # print(res) # 查询 单条数据 条件查询 如果有多个 会报错 # res1Classes.objects.get(namejava) # print(res1) # 查询多条数据 条件查询 # res2Classes.objects.filter(namepython) # print(res2) # 修改数据 # 修改一条数据 1先要获取要修改的数据 # res3Classes.objects.get(namehtml) # res3.nameHTML # res3.save() # 修改多条数据 # Classes.objects.filter(namepython).update(namepython3) # 删除单条数据 # Classes.objects.get(namepython3).delete() # 删除金条 # Classes.objects.filter(namejava).delete() # 查询方法 # 获取第一条数据 print(Classes.objects.first()) print(- * 20) # 获取最后一条数据 print(Classes.objects.last()) print(- * 20) # 排除查询 print(Classes.objects.exclude(namepython)) print(- * 20) # 对结果进行排序 只能根据数字进行排序 print(Classes.objects.order_by(id)) print(- * 20) # 对结果进行逆向排序 print(Classes.objects.order_by(-id)) print(- * 20) #查询条件 #根据字符来操作 #忽略大小写 print(Classes.objects.get(name__iexactPYTHON)) #包含您指定的字符 print(Classes.objects.filter(name__containst)) #以什么字符开始 print(Classes.objects.filter(name__startswithd)) #以什么字符结束 print(Classes.objects.filter(name__endswithk)) #成员 字段值中是否在您给定的范围里面 print(Classes.objects.filter(name__in[python,java])) #根据数字 #大于 print(Classes.objects.filter(id__gt3)) #大于等于 print(Classes.objects.filter(id__gte3)) #小于 print(Classes.objects.filter(id__lt3)) #小于等于 print(Classes.objects.filter(id__lte3)) #区间 数值范围 print(Classes.objects.filter(id__range(3,6))) #判断是否为空 print(Classes.objects.filter(name__isnullTrue)) #查询为空的值 return HttpResponse(添加成功)外部urls.pyfrom django.contrib import admin from django.urls import path from django.urls import include, path urlpatterns [ path(admin/, admin.site.urls), path(demo/, include(demo.urls)), ]demo中 urls.pyfrom demo import views from django.contrib import admin from django.urls import path, include, re_path urlpatterns [ #str:info 转换器的类型:参数名 参数名接受路由传递过来的数据 path(test/str:info,views.test), #地址里面只能写数字 #path(test/int:info,views.test), #地址中可以写字母数字以下划线 横杠 #path(test/slug:info,views.test), #地址中可以写uuid #path(test/uuid:info, views.test), #path(test/path:info, views.test), #path(Tv/,views.Tv) #?P 是 规定参数的固定的语法格式 #参数名 #^限制以什么字符开头 $限制以什么字符结束 #()把符合规则字符保留下来传给info参数接受 #[]限制路由参数字符串只能有数字和abc字母组成 #字符个的限制 为一次以上 re_path(^re_Tv/(?Pinfo[0-9abc])$,views.Tv), path(nav/str:class,views.nav), path(404/,views.not_find, namenot_find), path(index/,views.index,nameindex), path(classes/, views.classes), ]__init__.pyimport pymysql #设置django操作数据库的引擎为pymysql第三方库 pymysql.install_as_MySQLdb()def orm(request): #models.UserInfo.objects.create(name张三,sex男,age18,love足球) # models.UserInfo.objects.create(name王五, sex女, age30, love蓝球) #models.UserInfo.objects.filter(id1).update(age28,sex女) #models.UserInfo.objects.filter(id1).delete() userinfomodels.UserInfo.objects.all() for user in userinfo: print(user.id,user.name) return HttpResponse(添加成功)
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SpringBoot+Vue+MyBatis+MySQL招聘系统开发实战 2026/10/2 8:10:09

SpringBoot+Vue+MyBatis+MySQL招聘系统开发实战

今年年初,朋友公司的人事还在用共享表格加微信群收简历,HR 每天要从几十条聊天记录里翻候选人,我实在看不下去,花了两个周末做了一套招聘系统管理后台。技术选型就是标题里那套:SpringBoot 做接口,Vue 做页…

阅读更多 →
NBA历史数据分析实战:表结构拆解、导入与清洗避坑指南 2026/10/2 8:10:09

NBA历史数据分析实战:表结构拆解、导入与清洗避坑指南

简介:这份NBA球员数据集汇总了自1946年至今的常规赛与球员逐场统计,适合篮球数据分析爱好者、体育媒体从业者以及数据科学初学者用于球员表现对比、球队战绩挖掘和赛事规律探索。压缩包共7个文件,以6个CSV表格和1个SQL脚本为主体,…

阅读更多 →
Agent循环的隐形代价:Strands Harness SDK如何把生产级封装成一行代码 2026/10/2 8:09:56

Agent循环的隐形代价:Strands Harness SDK如何把生产级封装成一行代码

做 AI 应用这些年,我越来越确认一个反直觉的结论:Agent 项目里最贵的东西不是模型 token,而是那套没多少人爱写、又不得不写的 Agent 循环。过去大半年,我前后手写过五个循环,每一个都从“无非是个 while 加几次模型调…

阅读更多 →
hindsight理念与Dify实战:打造AI应用复盘能力 2026/10/2 8:09:49

hindsight理念与Dify实战:打造AI应用复盘能力

1. 为什么AI应用比任何时候都更需要hindsighthindsight这个词,直译是"事后洞察"。它讲的是:人只有回头看,才能看清当时没看清的因果链条。放在AI应用开发这个语境里,它代表一种很多人忽略的设计理念——你的应用不能只有…

阅读更多 →
PGC-SDD-DSM解调算法:从光强漂移到相位解调的全新方案 2026/10/2 8:09:43

PGC-SDD-DSM解调算法:从光强漂移到相位解调的全新方案

做干涉型光纤传感的人,对“光强漂移”这四个字应该都不陌生。上个月我在调试一套光纤水听器阵列,只因为激光器输出功率缓慢波动了3%,传统PGC-DCM解调的输出幅度就跟着抖了快10%,低频段还多出一堆假峰。后来把方案改成单路径微分相…

阅读更多 →
JMeter JSR223取样器核心解析:原理、实战与性能优化 2026/10/2 8:09:42

JMeter JSR223取样器核心解析:原理、实战与性能优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉