博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django-orm简记
阅读量:6160 次
发布时间:2019-06-21

本文共 2291 字,大约阅读时间需要 7 分钟。

首先orm是什么?

orm-------->对象关系映射

专业性解释网上一大推,随便搜搜就能了解大概。 在我理解(通俗):一个类  ----- 数据库中一张表               类属性  ----- 数据表中的字段名               实例一个对象  ---  表里的一条记录 orm的原理现在还没搞懂,它是具体怎么实现的,大概就是将python语句进行转换,转换成spl语句,原理就是执行sql语句 后面我会继续更新orm。
下面大概简单的记录下它的用法!
orm一般在app文件夹中的models.py文件书写写一个类,其类名就是那张表的名字,但是django会给你进行封装,将APP01_类名去命名,单单写一个类是完全不行的,必须继承 models.Model 这个类才行,继续它你就可以使用基类的一个方法。下面我简单写一个用户表,写写注释class User(models.Model):    ##AutoField代表自增字段(数据库中int),primary_key 主键    id = models.AutoField(primary_key=True)    ##CharField代表数据库中varchar,必须给它设置长度    name = models.CharField(max_length=32)    password = models.CharField(max_length=32)
 
orm写好了,但是要怎样才能将数据迁移到数据库呢?下面还要继续执行两条命令昨天写了一种方式,今天写另外一种,命令都是一样的Tools -->  run manage.py task    --> 输入:makemigrations(将新增的orm操作记录下来)                                 -->继续输入:migrate(执行之前的记录)这个有个好处就是,你记住不住单词没关系,他会给你提示,执行完毕数据就迁移到了数据库
 
如果你之前设计表,没有设计好,想在原表的基础上改字段,删字段,增加字段的话:    1、有一个操作就是永远不会变的,就是执行两条命令,把数据更新到数据库中    2、改、删字段,,直接在类中改属性就行了,删除的话,直接删除那属性就好了或注释掉    3、增加字段,,先在类中增加属性,然后执行两条迁移命令,但是这时弹出的信息会和之前不一样,没关系。    ##会有1、2两条信息,会有这两条信息的原因就是:        假如你之前数据库已经有一万多条数据,这时你增加一个字段,那么你觉得你之前一万条数据该字段(你新增的)会        怎么办?空在那里,还是给那么添加一个默认值呢?      所以这两条信息就是让你给原有的数据给该字段添加默认值:      选项一:就是让你直接再命名界面中指定默认值就行      选项二:在原有orm中添加默认值default=什么值。写好了之后再执行那两条迁移命名
 
orm设计好了之后,它作用在views视图里的,所以在视图函数那个文件中,必须导入orm   from...import...from app01 import models导入之后,我们就可以通过models.类名-------->相当于连接到数据数据表models.User.object.all()    ------>     select * from User;models.User.object.filter(id=2).first()  -----> select * from User where id=2;models.User.object.filter(id=2).delete()   ##删除id=1的记录models.User.object.filter(id=2).update(name=name, address=address)     ##修改记录创建记录的两种方法1、、models.User.object.create(name='zhuyu',address='cq')2、、user = models.User(name='zhuyu',address='cq')    user.save()##这里要提醒下user = models.User.object.filter(id=2) 这句代码它有返回值            user是一个QuerySet类            
有个小习惯,你把上面类似执行的代码,赋给一个变量,你在打印,并打印它的类型,知道返回的是什么
 
django请求的生命周期:    1、首先用户在客户端(浏览器)向服务端发出请求,并携带所有相关的数据    2、两台机器通信基于socket通信,在服务端获取到请求过来的数据,进行一系列处理,处理得到的数据就有url,    3、通过url在django中urls.py找到对应的视图函数,    4、转到该视图函数中,进行一些逻辑代码执行,中间可能回到数据库中取到数据,在模板文件夹中拿到模板,进行模板渲染,       渲染完成之后,然后将渲染好的模板封装到HttpResponse中,返回回去    5、这样客户端(浏览器)就能收到数据,显示到页面上
 

 

 
 
 
 
 

转载于:https://www.cnblogs.com/zhuchunyu/p/9918251.html

你可能感兴趣的文章
Solr Facet 查询
查看>>
C++类的继承一
查看>>
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案...
查看>>
巧用VMware Workstation的clone来制作虚拟机模板
查看>>
Spring-Mybatis MapperScannerConfigurer 取不到PropertyPlaceholderConfigurer里的值
查看>>
HP DL380G4服务器前面板指示灯的含义
查看>>
数据结构_树结构
查看>>
常用URL地址
查看>>
每天一个linux命令(19):find 命令概览
查看>>
MySQL kill操作
查看>>
windows下看端口占用
查看>>
Decommissioning a Domain Controller 降域控
查看>>
Character中的奇葩
查看>>
c++书籍推荐
查看>>
轻松监听Azure service health 状态
查看>>
获取SQL SERVER某个数据库中所有存储过程的参数
查看>>
在Linux下编译安装Apache2(2)
查看>>
Method Swizzling 处理一类简单的崩溃
查看>>
AngularJS学习!
查看>>
在Eclipse中搭建Python Django
查看>>