ORM 增删改查

一、字段增加

#终端输入

1.model里添加字段,

2.执行迁移命令。

3.终端里输入默认值,继续执行迁移命令。

#允许为空

再null=true,终端不需要输入默认值

#设置默认值

defalult=‘xxxx‘

二、字段修改

1.直接修改代码,

2,执行迁移两条命令。

三、字段删

1.对应字段注释;

2.执行迁移两条命令;

警告:执行完毕字段对应数据删除,不要轻易操作

a.迁移命令执行前,注意查看修改代码。

b.离开计算机锁屏。

数据增删改查

1.查数据

a. code

res=models.User.objects.filter(username=username)
#<querySet[<User:User object>] >类型
#可以索引,切片操作,不能负数。
#不推荐索引,推荐first()user_obj=models.User.objects.filter(username=username).first()
pw=user_obj.password#filter(username=username,password=password)
#关系是and。相当于where#------------全部查找-------------
#方法一
data=models.user.objects.filter()#方式二
models.user.objects.all()

b. html 展示

补全,for+tag

<table class="table table-bordered"><thead><tr><th>#</th><th>id</th><th>书名</th><th>出版社名称</th><th>操作</th></tr></thead><tbody>{% for i in all_book %}<tr><td>{{ forloop.counter }}</td><td>{{ i.id }}</td><td>{{ i.title }}</td><td>{{ i.publisher.name }}</td><td><a class="btn btn-danger" href="/delete_book/?id={{ i.id }}">删除</a><a class="btn btn-info" href="/edit_book/?id={{ i.id }}">编辑</a></td></tr>{% endfor %}</tbody>
</table>

2.增数据

#第一种方法
res=models.User.objects.creat(username=username,password=passoword)
#返回值,当前被创建本身。#第二种方法
user_obj=models.User(username=username,password=password)
User_obj.save() #保存数据

3.编辑数据

将编辑按钮所在一行的主键值发送后端

利用?后面携带参数形式

href="/edit_book/?id={{ i.id }}"
    # 取到编辑的书的id值edit_id = request.GET.get("id")# 根据id去数据库中把具体的书籍对象拿到edit_book_obj = models.Book.objects.get(id=edit_id)
#get 请求id 网址带?形式
edit_id = request.GET.get("id")if request.method == "POST":# 从提交的数据里面取,书名和书关联的出版社#内置idedit_id = request.POST.get("id")new_title = request.POST.get("book_title")new_publisher_id = request.POST.get("publisher")#更新 方法一 批量更新models.Book.objects.filter(id=edit_id).update(book_title=new_title ,publisher=new_publisher_id )#只修改更新的# 更新 方法二 单独更新。重新赋值,并保存edit_book_obj = models.Book.objects.get(id=edit_id)edit_book_obj.title = new_title  # 更新书名edit_book_obj.publisher_id = new_publisher_id  # 更新书籍关联的出版社# 将修改提交到数据库edit_book_obj.save()# 缺点是,如果字段多,更新效率低# 重新把字段写一遍,无论修改或不修改# 返回书籍列表页面,查看是否编辑成功return redirect("/book_list/")

4.删除数据

与编辑功能逻辑相似。

delete_id = request.GET.get("id")  # 从URL里面取数据#批量删除
models.Book.objects.filter(id=delete_id).delete()

ps:

a. 删除功能需要二次确定。

b. 内部不是真正删除。内部有个删除字段,仅仅修改状态。查看不显示。

Django04-1: ORM增删改查相关推荐

  1. Django框架(三)—— orm增删改查、Django生命周期

    orm增删改查.Django生命周期 一.orm介绍 1.什么是orm ORM即Object Relational Mapping,全称对象关系映射. 2.使用orm的优缺点 优点: 不用写SQL语句 ...

  2. Django框架(三)-- orm增删改查、Django生命周期

    一.orm介绍 1.什么是orm ORM即Object Relational Mapping,全称对象关系映射. 2.使用orm的优缺点 优点: 不用写SQL语句 开发效率高 缺点: SQL的效率低 ...

  3. day 67 django 之ORM 增删改查基础

    一 操作基础前提准备 1. 新建django 项目 mysite  子项目app01 ,选择好做路径. 2  .2-1在app01 下面models 中引用 模块 from  django.db im ...

  4. DjangoORM增删改查

    1.ORM增删改查 CRUD增删改查 C:Create增加 R:read.Retrieve读取 U:update更新 D:delete删除 djando自带的Sqlite3数据库配置文件在settin ...

  5. 梅科尔工作室苏慎臻,Django使用ORM增删改

    一.Django连接mysql数据库 默认情况下,Django连接的是自己带的sqlite数据库 先修改setting文件中的默认数据库信息 DATABASES = {'default': {'ENG ...

  6. python增删改查的框架_python的Web框架,Django的ORM,模型基础,MySQL连接配置及增删改查...

    Django中的ORM简介 ORM概念:对象关系映射(Object Relational Mapping,简称ORM): 用面向对象的方式描述数据库,去操作数据库,甚至可以达到不用编写SQL语句就能够 ...

  7. Web框架之Django_02基本操作(Django项目启动配置、数据库连接、orm、增删改查)

    阅读目录 摘要: Django项目简单现实过程 pycharm连接数据库 Django之orm简单操作增删改查 一.新建Django项目.配置.设置: 新建Django项目:(为了熟悉Django操作 ...

  8. Django从理论到实战(part27)--ORM模型的增删改查操作

    学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...

  9. ORM框架之Mybatis(一)基于mapper配置增删改查

    Mybatis是现在非常流行的SSM框架中的M部分,Mybatis也是一个主流的ORM框架,在项目中用来处理持久层数据. 一.Mybatis框架介绍及使用 1.1 mybatis框架概述: mybat ...

最新文章

  1. 分享一款jquery的日期插件
  2. 网站后端_Flask-第三方库.利用Flask-Socketio扩展构建实时流应用?
  3. git http仓库账号密码缓存至本地:不用每次git push都需要输入密码的方法(类似于windows的凭据管理)
  4. 【Nginx】判断URL中是否存在某个参数Parameter
  5. 武汉工程大学计算机学院研究生难吗,武汉工程大学考研难吗?一般要什么水平才可以进入?...
  6. C++ static_cast dynamic_cast const_cast reinterpret_cast使用总结
  7. 关于图片轮换与Tab标签
  8. SpringBoot异常处理以及对数据正确性的检查
  9. Activemq判断队列存活脚本(一)
  10. 百度地图离线_3大主流导航地图,你用的哪个?
  11. linux下adb工具的安装目录下,adb工具包如何安装?怎么用?
  12. Matlab GUI设计——文件读取和保存uigetfile,uiputfile
  13. 挖金矿问题(c++求解)
  14. python模拟访问js_百度统计原理分析-利用PHP/Python实现模拟访问
  15. 5星|戴蒙德《为什么有的国家富裕,有的国家贫穷》:为什么有的国家能发展出好制度...
  16. 耀世升级,第三版Java多线程核心技术手册,成长之路必不可少
  17. 如何在文字识别软件ABBYY中创建区域模板,处理大量相同内容?
  18. 【系统设计】系统设计基础:速率限制器
  19. PCI相关(2)- PCI桥与配置
  20. 「HTML+CSS」--自定义加载动画【027】

热门文章

  1. json_encode ajaxReturn getJSON
  2. boost pool内存池库使用简要介绍
  3. Java中Filter的理解
  4. MFC多语言实现方法
  5. 如何验证某个 string 是否为合法的 GUID ?
  6. 如何编写干净流畅的Web API测试
  7. 记一次 .NET 某云采购平台API 挂死分析
  8. 聊一聊.NET Core结合Nacos实现配置加解密
  9. c#爬虫-使用ChromeDriver 所见即所得
  10. iNeuOS工业互联操作系统,图表与数据点组合成新组件,进行项目复用