• SQLAlchemy


    SQLAlchemy

    ORM

    全称

      object - Relation - mapping  对象关系映射

    作用

      将数据库中的一张表table,通过某种方式,转换为python中的Class或者是Class实例化得到的对象。至于是通过何种方式,我们不必计较。然后使用orm操作数据库。

       Class(object) - 某种方式 - table

      与Django中的model的使用方法是一样的。

      Django - Model

    使用

    创建新的虚拟环境

      创建一个干净的环境

    安装SQLAlchemy

    pip install SQLAlchemy

    安装pymysql

    pip install pymysql

    创建表

    Django中的ORM

    Class - obj
    创建数据库引擎
    将所有的Class序列化成数据表
    ORM操作 - CRUD

    SQLAlchemy的使用

      SQLAlchemy的使用方法与Django的ORM的使用方式相似,我们参考Django的使用方法进行操作。

    创建Class
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, INT, VARCHAR, String
    
    
    Base = declarative_base()

      Base是ORM模型的基类。

      ORM模型 

        - object里面的属性等同于table中创建的字段。

        - Obj定义table的操作方式和属性。

    class User(Base):
        __tablename__ = 'student'
        id = Column(INT, primary_key=True, autoincrement=True)
        name = Column(String(32), index=True)
    创建数据库引擎
    from sqlalchemy import create_engine
    
    engine = create_engine('mysql+pymysql://root:@127.0.0.1:3306/sqlalchemy?charset=utf8')  # 注意:这里的utf8不能写成utf-8

      这里要注意的是编码方式设置的部分utf8不能写成utf-8,否则将会报错。

    将所有继承Base的Class序列化成数据表
    Base.metadata.create_all(engine)

      正确创建表完成后,会产生一个警告。这是正常的,警告如下:

    C:sqlalchemyvenvlibsite-packagespymysqlcursors.py:170: Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 484")
      result = self._query(query)

    注意

      在运行代码之前,需要先启动MySQL,然后手动创建数据库。

    登录数据库
    mysql -u root -p  # 登录数据库
    创建数据库
    create database xxoo;  # xxoo为数据库名称

     操作

    增加数据

    原生sql语句

    insert into 表名(字段名) values(值);

    0

  • 相关阅读:
    windows下mysql数据库导入导出
    比较两个数组,根据id删除相同的对象
    angular子组件给父组件传值
    angular父组件给子组件传值
    angular获取dom节点
    angular创建服务
    forEach和for包含异步调用的区别
    用某种符号或字符替换某些字符
    嵌套函数和闭包
    JavaScript 递归
  • 原文地址:https://www.cnblogs.com/ZN-225/p/10403704.html
Copyright © 2020-2023  润新知