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

Posted cavalier-chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第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() --> 把改动提交到数据库

































































































以上是关于第54篇ORM对象关系映射 如何使用ORM与数据可建立连接的主要内容,如果未能解决你的问题,请参考以下文章

Orm对象关系映射

对象关系映射(ORM)

对象关系映射(ORM)

ORM-对象关系映射

ORM是什么?如何理解ORM

ORM是什么?如何理解ORM