Django中ORM对数据库数据的增删改查

  • 模板语言

    • {% for line in press %} {% line.name %} {% endfor %}

    • {% if 条件 %}{% else %}{% endif %}

    • {% if publisher == book.publisher %}
      <option selected value="{{ publisher.id }}">{{ publisher.name }}</option>
      {% else %}
      <option value="{{ publisher.id }}">{{ publisher.name }}</option>
      {% endif %}
  • 什么是ORM

    • ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查
  • Django中连接数据库和创建表(见上个笔记)

  • 单表的增删改查

  • 创建单表

    • UserInfo.object.create(name="lin")
      UserInfo.object.create(**{"name":"lin"})
    • 在HTTP中的URL中添加参数

    • UserInfo.object.filter(id=1).delete()   #删除在UserInfo表中筛选出id为1的对象
      
      
    • 在Django中获取URL中的参数

      • request.GET    #获取一个类似于字典
        request.GET.get("id") #取值
  • 改对数据库进行修改时需要对数据进行保存

    • obj = UserInfo.objects.filter(id=3)[0]
      obj.name = "alex" #这里改只是在Python中将数据进行更改
      obj.save() #将数据库中的数据进行更改,
      #第二种方法
      UserInfo.objects.filter(id=3).update(name="alex") #直接设定对应属性,
    • UserInfo.objects.filter(email=email)    #筛选出满足条件的对象,放在一个类似列表中,
      UserInfo.objects.all() #查询所有的结果,放在一个类似列表中
      UserInfo.objects.get(id=1) #查询筛选条件匹配的对象,有且只有一个,如果符合条件超过一个或者没有,就会报错
    • 查到后通过点“.”取具体的值

  • 一对多的增删改查

    • 注意在Django2.0以上的版本,外键需要手动设置级联操作

      •     publisher = models.ForeignKey(to='Publisher', on_delete=models.CASCADE)  # ORM自动刚给外键字段加_id
    • 关联表

      • 需要注意参数(关联外键是,

      • Book.objects.create(title=new_title,publisher=Publisher.objects.get(id=publisher_id))
        Book.objects.create(title=new_title, publisher_id=publisher_id)
      • Book.objects.get(id=id).delete()
    • 改 注意改完需要保存

      • book_obj.name = "新的值"    #book_obj为对象
        book_obj.publisher_id = "新id"
        book_obj.save()
  • 多对多查询

    • 关联表

      • book = models.ManyTOManyField(to="Book_list")
    • 相关代码

      • #author_obj是创建第三张关联表那个类的一个对象
        author_obj.book.all() #查询作者关联的所有书籍
        author_obj.book.add(id1,id2) #给作者添加关联的书籍 等同于
        author_obj.book.add(*[id1,id2])
        author_obj.book.set([id1,id2]) #类似为将以前的删掉,重新关联现在的书籍
  • 对html错误的提示

Django中ORM对数据库的增删改查的更多相关文章

  1. Django中ORM对数据库的增删改查操作

         前言 什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在 ...

  2. Django中对单表的增删改查

    之前的简单预习,重点在后面 方式一: # create方法的返回值book_obj就是插入book表中的python葵花宝典这本书籍纪录对象   book_obj=Book.objects.creat ...

  3. java中如何操作数据库(增删改查)

    EntityManager 是用来对实体Bean 进行操作的辅助类.他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满足条件的实体Bean.实体B ...

  4. 048:ORM模型基本的增删改查操作

    ORM对数据库的增删改查基本操作: 创建模型如下: 基本的增删改查如下:

  5. django之创建第8-1个项目-数据库之增删改查/数据库数据显示在html页面

    1.为test.DB数据库预先创建下面数据 1    张三    16    2015-01-02    12    李四    17    2015-01-04    13    王五    14  ...

  6. Django基础学习四_数据库的增删改查

    今天主要学习两个东西 1.如何对数据库做增删改查 2.如果将数据库中的数据用html的方式返回到前台 一.对数据库中增删改查操作 1.首先需要先见表,见表的方法我们在“http://www.cnblo ...

  7. PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码

    PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...

  8. Android中Sqlite数据库进行增删改查

    今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...

  9. [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?

    [译]聊聊C#中的泛型的使用(新手勿入)   写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发 ...

随机推荐

  1. python基础语法_3面向对象

    http://www.runoob.com/python3/python3-class.html https://www.imooc.com/learn/317 慕课网:987809563@qq.co ...

  2. 为hade增加model自动生成功能

    大家好,我是轩脉刃. 我们写业务的时候和db接触是少不了的,那么要生成model也是少不了的,如何自动生成model,想着要给hade框架增加个这样的命令. 看了下网上的几个开源项目,最终聚焦在两个项 ...

  3. 2018 PHP面试题

    2018 PHP面试题 题目来自<PHP程序员面试笔试宝典>,里面涵盖了近三年了各大型企业常考的PHP面试题,针对面试题提取出来各种面试知识也涵盖在了本书. 1.PHP常考基础 1.PHP ...

  4. 多图|一文详解Nacos参数!

    Nacos 中的参数有很多,如:命名空间.分组名.服务名.保护阈值.服务路由类型.临时实例等,那这些参数都是什么意思?又该如何设置?接下来我们一起来盘它. 1.命名空间 在 Nacos 中通过命名空间 ...

  5. demo_2_27

    #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <string.h> int count_bit_one ...

  6. Smartbi大数据在金融业的应用案例

    我们平时听说的商业智能其实就是BI分析,它是一种提高企业智能化的手段和工具,既可以满足企业发展的需要,而且也可提高企业竞争力.思迈特软件Smartbi作为数据分析系统,受到了不少金融业客户的青睐.今天 ...

  7. 如何将csf ip 端口映射

    csf基于iptables的,不支持SNAT外,其他映射是支持的.最新版不知道,有没有解决这个问题.配置文件/etc/csf.allow 1,DNAT 用法: IPx|*|IPy|*|tcp/udp ...

  8. 在vs2022环境中用C#创建COM组件

    规则 com组件以接口的方式对外开放. 1:所要导出的类必须为公有: 2:所有属性.方法也必须为公有: 3:要导出的属性.方法必须用接口方式: interface IName { [DispId(1) ...

  9. 【C#基础概念】Ineterface 接口的设计原则

    接口设计方式 自顶向下 (如图所示),自底向上(发现类需要结构了就声明一个接口). 接口的作用 用来解耦.继承 接口的本质

  10. Oracle的用户权限和角色

    用户和权限 LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态.锁定的用户无法正常的登录进行数据库操作. --给普通用户SCOTT解锁,同时把SCOTT用户的密码进行修改 --语法结构:ALTE ...