目录
  • 一、Python语言中有哪些常用的ORM框架以及它们的区别
  • 二、使用SQLObject框架操作MySQL数据库
    • 1. 创建表
    • 2. 插入数据
    • 3. 修改数据
    • 4. 查询数据
  • 三、补充总结

    目的:

    • 了解常用的ORM框架;
    • 使用SQLObject框架操作MySQL数据库。

    面试题:

    • 在Python语言中有哪些常用的ORM框架,它们有什么区别?
    • 如何使用SQLObject框架操作MySQL数据库?

    一、Python语言中有哪些常用的ORM框架以及它们的区别

    在Python语言中主要有以下两个常用的ORM框架:

    • SQLAlchemy
    • SQLObject

    它们俩的区别:

    • SQLAlchemy框架偏向于SQL,可以灵活地提交SQL语句;
    • 而SQLObject框架更加面向对象,无法自由使用原生的SQL语句。

    二、使用SQLObject框架操作MySQL数据库

    第一题提到的两个框架都需要安装:

    pip install sqlobject

    1. 创建表

    # coding=utf-8
    from sqlobject import *
            #                                   库名
    mysql = 'mysql://root:123456@localhost:3306/test?charset=utf8'
                                                    # 用pymysql与sqlalchemy交互~
    sqlhub.processConnection = connectionForURI(mysql, driver='pymysql')
    
    class Person(SQLObject):
        class sqlmeta:
            table = 'new_persons'
        name = StringCol(length = 30)
        age = IntCol()
        address = StringCol(length = 30)
        salary = FloatCol()
    # 习惯性创建一个新表之前先删除~  (是个好习惯哦!)
    try:
        Person.dropTable()
    except:
        pass
    Person.createTable()

    使用Navicat查看:

    Python练习之ORM框架

    2. 插入数据

    Python练习之ORM框架

    Python练习之ORM框架

    使用Navicat查看: 

    Python练习之ORM框架

    3. 修改数据

    Python练习之ORM框架

    使用Navicat查看:

    Python练习之ORM框架

    4. 查询数据

    Python练习之ORM框架

    Python练习之ORM框架

    删除数据:

    Python练习之ORM框架

    使用Navicat查看:

    Python练习之ORM框架

    三、补充总结

    首先,关于ORM简单聊几嘴:

    对于像Python这样的面向对象的语言来说 ,一切皆对象 ,但是我们使用的数据库都是关系型的。 为了保证一致的使用习惯 ,我们就需要使用ORM在编程语言的对象模型和数据库的关系模型之间建立映射关系 ,这样我们在操作数据库时就可以直接使用编程语言的对象模型 ,而不用使用sql语言。

    而ORM到底是什么呢?

    • 英文全称object relational mapping(对象映射关系程序)
    • 对象和关系之间的映射,让我们可以使用面向对象的方式来操作数据库。
    • 把任何一个sql语句都封装成对象操作。关系模型和Python对象之间的映射如下:
       
    table -> class 表映射为类
    row -> object 行映射为实例
    column -> property 字段映射为属性
    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。