IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Django3--ORM -> 正文阅读

[Python知识库]Django3--ORM

Django–ORM

它可以不懂sql语句的小白也能操作数据库,但是有时sql语句效率偏低,需要自己写sql语句

类 表

对象 记录

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

1.配置models.py

注释的是sql原型语句,我们这创建一个数据库

class User(models.Model):
    #id int primary_key auto_increment  
    id=models.AutoField(primary_key=True)
    #username varchar(32)
    username=models.CharField(max_length=32)
    #charfield必须指定max_length参数
    #password int
    password=models.IntegerField()

2.在该项目命令窗口下输入迁移命令

python manage.py makemigrations

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hmsG6q4u-1626359082404)(C:\Users\one\AppData\Roaming\Typora\typora-user-images\image-20210709084205914.png)]

发现migrations下多了个文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ggQPv0Zr-1626359082409)(C:\Users\one\AppData\Roaming\Typora\typora-user-images\image-20210709084251217.png)]

打开该文件发现,这个文件是做记录的,当你在命令框下面输入

python manage.py migrate

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WC0BUuJp-1626359082411)(C:\Users\one\AppData\Roaming\Typora\typora-user-images\image-20210709084750534.png)]

它会都会真正创建数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ikFaaQao-1626359082413)(C:\Users\one\AppData\Roaming\Typora\typora-user-images\image-20210709090204725.png)]

注意:只要你改了models.py中数据相关的代码,就必须重新执行上述命令

字段的增删改查

(1)字段的增加

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3WXVignb-1626359082417)(C:\Users\one\AppData\Roaming\Typora\typora-user-images\image-20210709101525130.png)]

1.可以在终端内直接输入默认值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xaFWJHRT-1626359082418)(C:\Users\one\AppData\Roaming\Typora\typora-user-images\image-20210709101633816.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wFQmMYZR-1626359082421)(C:\Users\one\AppData\Roaming\Typora\typora-user-images\image-20210709101838869.png)]

2.该字段可以为空

info=models.CharField(max_length=32,verbose_name=‘个人简介’,null=True)

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

hobby=modles.CharField(max_length=32,verbose_name=‘爱好’,default=‘study’)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YxMpIMT6-1626359082425)(C:\Users\one\AppData\Roaming\Typora\typora-user-images\image-20210709102151245.png)]

(2)字段的修改

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

(3)字段的删除
在实际开发中,操作models.py一定要细心,千万不要随便注释一些字段,执行前最好检查下

直接注释掉需要删除的字段然后再执行数据库迁移命令即可

数据的增删改查

(1)增

#直接获取用户数据存入数据库
from app01 import models
res=models.User.objects.create(username=username,password=password)
#返回值就是当前被创建的对象本身


方法二:
from app01 import models
user_obj=models.User(username=username,password=password)
user_obj.save()#保存数据

(2)查

filter()

res=models.UserInfo.objects.filter(**kwargs)

返回的结果是一个querySet对象,你可以把它看作一个列表数据对象[数据1对象,数据2对象…。]

支持索引和切片操作,但是不支持负数

.first()方法

filter括号内可以写多个参数,查询的时候默认是and关系

去数据库里查询数据
from app01 import models
res = models.User.objects.filter(username=username)
 #相当于 select * from user where username='username'
 #<QuerSet [<User :User object>]> [数据对象1,数据对象2..。]
 user_obj=res[0]
 print(user_obj)
 print(user_obj.username)
 print(user_obj.password)   

er object>]> [数据对象1,数据对象2…。]
user_obj=res[0]
print(user_obj)
print(user_obj.username)
print(user_obj.password)


  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:14:17  更:2021-07-16 11:17:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 14:47:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计