第54篇ORM对象关系映射 如何使用ORM与数据可建立连接

1. ORM(对象关系映射) 很多语言的很多web框架中都有这个概念

2. 为什么要有ORM?
  1. 写程序离不开数据。
  2. 在Python程序中要用到数据库中的数据,怎么办?
    1. 使用pymysql连接MySQL数据库的步骤
      1. import pymysql
      2. 建立连接
        conn = pymysql.connect(
        host=‘127.0.0.1‘,
        port=3306,
        database=‘day43‘,
        user=‘root‘,
        password=‘123‘,
        charset=‘utf8‘
        )
      3. 获取光标对象
        cursor = conn.cursor() --> 默认返回[(), ()]
        cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) --> 默认返回[{}, {}]
      4. 执行sql语句
        cursor.execute(‘select * from userinfo‘)
        cursor.execute(‘select * from userinfo where username=%s and password=%s‘, [‘xyh‘, ‘xyh123‘])
      5. 获取结果
        1. cursor.fetchone()
        2. cursor.fetchall()
        3. cursor.fetchmany(n)
3. ORM(Object Relational Mapping)是什么?
    1. 新的语法,不需要我们自己写SQL语句
    2. 我们按照新的语法写代码,他帮我翻译成SQL语句
4. ORM优缺点
    ORM优点:
      1. 开发效率高
      2. 容易掌握
      3. 容易移植
    ORM的缺点:
      1. 代码的执行效率低
5. ORM的重点:
    类 <--> 数据表
    属性 <--> 字段
    对象 <--> 数据行
6. ORM能做哪些事情?
  1. 操作数据表
  2. 操作数据行
7. Django中ORM如何使用?
  1. 告诉Django框架连接哪个数据库
    DATABASES = {
      ‘default‘: {
      ‘ENGINE‘: ‘django.db.backends.mysql‘, # 告诉Django要连接的是MySQL数据库
      ‘NAME‘: ‘day57‘, # 数据库名称
      ‘HOST‘: ‘127.0.0.1‘, # 数据库的IP
      ‘PORT‘: 3306, # 数据库的端口
      ‘USER‘: ‘root‘, # 连接数据的账号
      ‘PASSWORD‘: ‘123‘ # 连接数据库的密码
      }
    }

2. 告诉Django框架用什么连接数据库
  在和settings.py同目录下的__init__.py文件中:
  import pymysql
  pymysql.install_as_MySQLdb()


3. 在app下面的models.py这个文件中定义类
    class 类名(models.Model):
      pass

4. 两个命令
    1. python manage.py makemigrations --> 在小本本(app/migrations)上记录models.py的变更
    2. python manage.py migrate --> 把变更记录翻译成SQL语句,去数据库执行
8. 图书管理系统
1. 表结构
  1. 出版社
  2. 书籍
  3. 作者表
  4. 作者和书籍的关系表

2. 出版社的增删改查
1. 查
    1. ORM: Publisher.objects.all() --> 查询所有的出版社数据
    2. HTML中写for循环(模板语言)
      {% for i in [..., ...] %}
      {% endfor %}

2. 增
    1. ORM创建数据
      Publisher.objects.create(name=‘新出版社名称‘)
3. 删
  1. HTTP中URL添加参数
      /delete_publisher/?id=1
  2. 如何在Django中获取URL中的参数
    request.GET --> 一个大字典
    request.GET.get(‘id‘) --> 取值
  3. ORM中删除操作
    Publisher.objects.filter(id=1).delete()
4. 改
1. ORM修改
obj.name = ‘新出版社名称‘
obj.save() --> 把改动提交到数据库

原文地址:https://www.cnblogs.com/cavalier-chen/p/9858461.html

时间: 2025-01-05 04:00:22

第54篇ORM对象关系映射 如何使用ORM与数据可建立连接的相关文章

ORM : 对象关系映射

ORM 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”.

ORM对象关系映射

最近开发数据采集模块,数据解析完成之后,插入到数据库中的内存表,原来的同事留下的代码中,出现了大量SQL命令,调用了MySQL的客户端API,整个代码看出来乱乱的,程序效率也不高.很佩服这个同事的精神,使用了这么多的代码,加上很多SQL命令. 为了改进这个模块的设计,提高程序运行效率,查阅了大量的资料后,发现ORM对象关系映射解决了这个问题,避免使用大量的SQL命令,解决了类与数据库的耦合问题.本质就是人家C++高手写好的数据库方便操作的API,不用使用SQL命令,解决数据库存增删改查. 什么是

Php ORM 对象关系映射

ORM的全称是Object Relational Mapping,即对象关系映射.它的实质就是将关系数据(库)中的业务数据用对象的形式表示出来,并通过面向对象(Object-Oriented)的方式将这些对象组织起来,实现系统业务逻辑的过程.在ORM过程中最重要的概念是映射(Mapping),通过这种映射可以使业务对象与数据库分离.从面向对象来说,数据库不应该和业务逻辑绑定到一起,ORM则起到这样的分离作用,使数据库层透明,开发人员真正的面向对象.图 1简单说明了ORM在多层系统架构中的这个作用

44 MySQL &amp; orm对象关系映射

orm 模型 对象关系映射: Object Relational Mapping 是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 ORM模型的简单性简化了数据库查询过程 三个核心原则: 简单性:以最基本的形式建模数据:简化了数据库查询过程 传达性:数据库结构被任何人都能理解的语言文档化: 精确性:基于数据模型创建正确标准化的结构. 1)singleton 实现orm mysql_singleton.py import pymysql class Mysql(object)

ORM对象关系映射框架基本搭建

一 概念 1 概念 ORM :对象关系映射,对象和关系之间的映射,使用面向对象的方式来操作数据库 关系对象模型和python对象模型之间的映射 tabel => class ,表映射类 row => object ,行映射为实例 column=> property ,字段映射属性 2 举例 表有login,字段为id int , username varchar, age int 映射到python为 #!/usr/bin/poython3.6 #conding:utf-8 class

Android ORM对象关系映射之GreenDAO建立多表关联

https://blog.csdn.net/u010687392/article/details/48496299 利用GreenDAO可以非常方便的建立多张表之间的关联 一对一关联 通常我们在操作数据库的时候,我们往往不是单独的对一张表进行操作,而是对这张表的操作会联动的影响另外一张表或者多张表,比如:现在有两张表,一张是用户User表(有name.age.sex三个字段),一张是头像Picture表(有pictureId.pictureName.width.height四个字段).假如用户表

手撸系列之——ORM(对象关系映射)

ORM:对象关系映射 类 >>> 数据库的一张表 对象 >>> 表的一条记录 对象点属性 >>> 记录某一个字段对应的值 废话不多少,先上代码: # orm.py from mysql_singletion import Mysql # 设置表字段类,通常需要的属性为字段名,字段类型,是否为主键,默认值 class Field(object): def __init__(self,name,column_type,primary_key,default

PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器

PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器(ORM,  Object Relational Mapper).与那些功能完备的ORM(如NHibernate或Entity Framework)不同的是,PetaPoco更注重易用性和性能,而非丰富的功能.使用PetaPoco只需要引入一个C#文件,可以使用强类型的 POCO(Plain Old CLR Object),并支持使用T4模板生成的类等等. PetaPoco最让人感兴趣的功能包括: 可与SQL Server.SQL

ORM即 对象-关系映射(转自:微冷的雨)

ORM即 对象-关系映射: 将数据库中的数据关系表,映射为实体对象. 灵动思绪EF(Entity FrameWork) 作者: 微冷的雨  来源: 博客园  发布时间: 2013-01-22 16:28  阅读: 10119 次  推荐: 16   原文链接   [收藏] 很久之前就想写这篇文章了,但是由于种种原因,没有将自己学习的EF知识整理成一片文章.今天我就用CodeFirst和ModelFirst两种方式的简单案例将自己学习的EF知识做个总结. 在讲解EF之前,我们先来看下ORM ORM