Django之ORM

ORM全称对象关系映射

作用:通过python面向对象的代码简单快捷的操作数据库,但是封装程度太高,有时候sql语句的效率偏低,需要自己写sql语句

类----->表

对象--->记录

对象属性--->记录某个字段对应的值

写在models.py文件

1.先在models.py中书写一个类

from django.db import models# Create your models here.
class Mytable(models.Model):id=models.AutoField(primary_key=True)#由于一张表中必须有一个主键字段,并且一般情况下都叫id字段#所以orm在当你不定义主键字段的时候,orm都会自动帮你创建一个名为id的主键字段#也就是说我们在创建模型表的时候如果主键名字没有别的叫法(比如你要叫cid就需要自己写),#那么主键字段可以省略不写name=models.CharField(max_length=32,verbose_name='用户名')#CharField必须指定max_length参数,不指定会直接报错#verbose_name是所有字段都有的,用来对字段的解释password=models.IntegerField(verbose_name='密码')

2.数据库迁移命令

2.1 在terminal中输入命令: python manage.py makemigrations

意思是将操作的记录记录到  migrations文件夹,在这文件夹下会多出一个文件

之后输入python manage.py migrate ,执行数据库迁移命令后会自动创建表

只要修改了models.py中跟数据库相关的代码,就必须重新执行上述两条命令。

2.2 偷懒输入这两句数据库迁移命令,与上一个效果一样(建议上一个命令熟练后再使用这个)

只需要输入makemigrations

                  migrate

orm字段的增删改查

字段的增加

1.在类中写好字段代码后,可以在终端内直接给出默认值

选择1给增加的字段添加默认值,选择2退出自己去代码中增加

2.该字段可以为空,null=Ture

age=models.IntegerField(null=True)

3.直接给字段设置默认值

age=models.IntegerField(default='18')

字段的修改

直接修改代码代码然后执行数据库迁移的两条命令即可

字段的删

直接注释对应的字段然后执行数据库的两条命令即可

注意:执行完毕之后字段对应的数据也都没有了,在操作models.py的时候一定要细心,执行迁移命令之前最好检查好代码

建议当你离开你的计算机之后一定要锁屏

数据的增删改查

第一种

res=models.User.objects.filter(username=username)
返回值先看成是列表套数据对象的格式
它支持索引取值 切片操作 但不支持负数索引
也不推荐使用索引取值
user_obj=models.User.objects.filter(username=username).first()

 第二种

    user_queryset=models.User.objects.all()return render(request,'userlist.html',locals())

第一种方式

 from app01 import modelsres=models.User.objects.create(username=username,password=password)
返回值就是当前被创建的对象本身print(res,res.username,res.password)

第二种方式

user_obj=models.User(username=username,password=password)
user_obj.save() #保存数据

改        

<a href="/edit_user/?user_id={{ user_obj.id }}" >编辑</a>
拼接一个url的路径?user_id
然后更新数据
models.User.objects.filter(id=edit_id).update(username=username,password=password)

models.User.objects.filter(id=delete_id).delete()

补充:真正的删除功能需要二次确认,删除功能内部其实不是真正的删除,我们会给数据添加一个标识字段用来表示数据是否被删除了,如果数据被删了仅仅只是讲字段修改一个状态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何通过内网穿透实现远程访问Linux SVN服务

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

骑行三家村赏红杉之旅:挑战与汗水共存,美景和惊喜同行的路线

2023年11月25日&#xff0c;一个冬日里阳光明媚的周末&#xff0c;校长骑行队的骑友们相约&#xff0c;共同踏上了骑行三家村赏红杉林的旅程。这次骑行路线从大观公园门口开始&#xff0c;途径大观湿地公园、干勾尾、碧鸡关加油站、太平、水沟盖板路、明朗、绝望坡、山顶、三家…

kali安装内网穿透工具并实现ssh远程连接

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过[cpolar 内网穿透](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)软件实现ssh远程连接kali 1…

成都优优聚美团代运营——让您脱颖而出!

随着互联网的快速发展&#xff0c;越来越多的企业开始注重线上业务的拓展&#xff0c;而美团作为国内领先的生活服务平台之一&#xff0c;自然成为了许多品牌宣传和推广的重要渠道。在成都地区&#xff0c;优优聚美团代运营公司凭借多年的经验和专业团队的优势&#xff0c;成为…

单调栈:LeetCode 907. 子数组的最小值之和

907. 子数组的最小值之和 给定一个整数数组 arr&#xff0c;找到 min(b) 的总和&#xff0c;其中 b 的范围为 arr 的每个&#xff08;连续&#xff09;子数组。 由于答案可能很大&#xff0c;因此 返回答案模 10^9 7 。 思路同乘法原理 LeetCode 828. 统计子串中的唯一字符-…

护眼灯有效果吗?对孩子眼睛好的护眼台灯推荐

2022年12月29日&#xff0c;内蒙古消费者协会发布的比较试验结果显示&#xff0c;被检测的35款读写作业台灯样品中有12款标记项目不符合国家强制性标准要求&#xff0c;占被检测样品的34%&#xff0c;其中博士有成、大力智能、霍尼韦尔位列质量黑榜。该从哪些方面注意权衡做好选…

如何用CHAT配置linux的远程连接?

问CHAT&#xff1a;配置linux的远程连接 1.下载ssh 2.启动ssh服务 3.查看ssh服务状态 4.设置ssh服务开机自启动 5.设置windows的cmd下ssh 6.通过cmd的ssh命令远程到linux linux的ip:10.8.9.23 用户名:Li CHAT回复&#xff1a;以下是为配置Linux的远程连接的步骤说明&#xff1a…

AMD ROCm软件栈组件介绍

AMD ROCm™ Platform 1.1 ROCm简介 参考&#xff1a;https://github.com/RadeonOpenCompute/ROCm ROCm&#xff08;Radeon Open Compute&#xff09;开源软件栈。 在NVIDIA GPU上&#xff0c;术语“CUDA”通常是指GPU编程编译器、API和运行时库&#xff0c;但ROCm不那么单一…

【虹科干货】什么是软件成分分析(SCA)?

大家或许都发现了&#xff0c;开发人员愈发依赖开源代码来快速为其专有软件添加功能。据估计&#xff0c;开源代码占专有应用程序代码库的 60-80%。相伴而来的&#xff0c;除了更高的效率&#xff0c;还有更高的风险。因此&#xff0c;管理开源代码对于降低组织的安全风险至关重…

原神「神铸赋形」活动祈愿现已开启

亲爱的旅行者&#xff0c;「神铸赋形」活动祈愿现已开启&#xff0c;「单手剑静水流涌之辉」「法器碧落之珑」概率UP&#xff01; 活动期间&#xff0c;旅行者可以在「神铸赋形」活动祈愿中获得更多武器与角色&#xff0c;提升队伍的战斗力&#xff01; 〓祈愿时间〓 4.2版本更…

Spinnaker 基于 docker registry 触发部署

docker registry 触发部署 Spinnaker可以通过Docker镜像的变化来触发部署&#xff0c;这种方法允许你在Docker镜像发生变化时自动启动新的部署流程。 示例原理如下图所示&#xff1a; 以下是如何在Spinnaker中实现基于Docker Registry触发部署的配置流程。最终实现的效果如下…

数据库应用:MongoDB 数据备份与恢复

目录 一、实验 1.MongoDB 数据库备份与恢复 2.MongoDB 数据表备份与恢复 二、问题 1.MongoDB有哪些命令行工具实现数据备份与恢复 一、实验 1.MongoDB 数据库备份与恢复 &#xff08;1&#xff09;查看版本 rootnode1:~# mongo --version&#xff08;2&#xff09;准备…

html学习

1.框架标签 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body ><p align"center"><a href "http://www.baidu.com" target"aa">百度&l…

BUUCTF [MRCTF2020]你能看懂音符吗 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。 感谢Galaxy师傅供题。 密文&#xff1a; 下载附件&#xff0c;得到一个rar压缩包。 解题思路&#xff1a; 1、尝试解压rar压缩包&#xff0c;出现错误无法解压。 使用010 Editor…

YOLOv7独家原创改进: AKConv(可改变核卷积),即插即用的卷积,效果秒杀DSConv | 2023年11月最新发表

💡💡💡本文全网首发独家改进:可改变核卷积(AKConv),赋予卷积核任意数量的参数和任意采样形状,为网络开销和性能之间的权衡提供更丰富的选择,解决具有固定样本形状和正方形的卷积核不能很好地适应不断变化的目标的问题点,效果秒殺DSConv 1)AKConv替代标准卷积进行…

大电流和大电压谁对人体伤害大

突然想起以前看的这个&#xff0c; 网上有很多解答了这个问题&#xff0c;答案是大电流比大电压对人体伤害大。 我之所以重新来写些&#xff0c; 是想起一种有趣的比喻&#xff0c; 这个答案不绝对。 先看一个场景&#xff0c; 一群牛和一头老虎对你冲来&#xff0c; 谁对你的…

机器视觉 AI 数据集制作

工业中&#xff0c;机器视觉物体分拣时&#xff0c;需要制作&#xff0c;数据集&#xff0c;那么&#xff0c;一般情况下&#xff0c;可以选择几个物体的几张图片&#xff0c;或者视频&#xff0c;将待识别的物体的掩模扣取出来&#xff0c;随机的贴在 传送带背景中&#xff0c…

VMware上面安装部署centos7镜像系统【详细含镜像】

VMware上面安装部署centos7镜像系统【详细含镜像】 废话不多说直接开始 下载centos7镜像 网上有好多&#xff0c;但是我相信来看小编文章的基本上应该都有centos7的镜像了吧&#xff0c;毕竟咱们都是同一类人&#xff0c;哈哈不卖关子了&#xff0c;小编直接给大家一个百度云盘…

深度学习大数据物流平台 python 计算机竞赛

文章目录 0 前言1 课题背景2 物流大数据平台的架构与设计3 智能车货匹配推荐算法的实现**1\. 问题陈述****2\. 算法模型**3\. 模型构建总览 **4 司机标签体系的搭建及算法****1\. 冷启动**2\. LSTM多标签模型算法 5 货运价格预测6 总结7 部分核心代码8 最后 0 前言 &#x1f5…

【日常总结】优雅升级Swagger 2 升至 3.0, 全局设置 content-type application/json

目录 一、场景 二、问题 三、解决方案 四、延伸 上一节&#xff1a;【日常总结】Swagger-ui 导入 showdoc &#xff08;优雅升级Swagger 2 升至 3.0&#xff09;-CSDN博客 一、场景 接上一节&#xff1a;在 Swagger3Config extends WebMvcConfigurationSupport&#xff0c…