SQLAlchemy(一):SQLAlchemy去连接数据库ORM介绍将ORM模型映射到数据库中

Posted 秋华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLAlchemy(一):SQLAlchemy去连接数据库ORM介绍将ORM模型映射到数据库中相关的知识,希望对你有一定的参考价值。

SQLAlchemy01 /SQLAlchemy去连接数据库、ORM介绍、将ORM模型映射到数据库中

 

 

1、使用SQLAlchemy去连接数据库:

  • 使用SQLALchemy去连接数据库,需要使用一些配置信息,然后将他们组合成满足条件的字符串:

    HOSTNAME = \'127.0.0.1\'
    PORT = \'3306\'
    DATABASE = \'first_sqlalchemy\'
    USERNAME = \'root\'
    PASSWORD = \'123\'
    
    # dialect+driver://username:password@host:port/database
    DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME,password=PASSWORD,host=HOSTNAME,port=PORT,db=DATABASE)

     

  • 然后使用create_engine创建一个引擎engine

  • 然后再调用这个引擎的connect方法,就可以得到这个对象

  • 然后就可以通过这个对象对数据库进行操作了

    engine = create_engine(DB_URI)
    
    # 判断是否连接成功
    conn = engine.connect()
    result = conn.execute(\'select 1\')
    print(result.fetchone())

     

2、ORM介绍:

  1. ORM:Object Relationship Mapping
  2. 大白话:对象模型与数据库表的映射

3、将ORM模型映射到数据库中:

1 用declarative_base根据engine创建一个ORM基类。

from sqlalchemy.ext.declarative import declarative_base
engine = create_engine(DB_URI)
Base = declarative_base(engine)
2 用这个Base类作为基类来写自己的ORM类。要定义__tablename__类属性,来指定这个模型映射到数据库中的表名。

class Person(Base):
    __tablename__ = \'person\'
3 创建属性来映射到表中的字段,所有需要映射到表中的属性都应该为Column类型:

class Person(Base):
    __tablename__ = \'person\'
    # 在这个ORM模型中创建一些属性,来跟表中的字段进行一一映射。这些属性必须是sqlalchemy给我们提供好的数据类型。
    id = Column(Integer,primary_key=True,autoincrement=True)
    name = Column(String(50))
    age = Column(Integer)
4 使用Base.metadata.create_all()来将模型映射到数据库中。

Base.metadata.create_all()
5 一旦使用Base.metadata.create_all()将模型映射到数据库中后,即使改变了模型的字段,也不会重新映射了。

 

以上是关于SQLAlchemy(一):SQLAlchemy去连接数据库ORM介绍将ORM模型映射到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

sqlalchemy-session

sqlalchemy可以只查某一列吗

python第四十五天 (SQLAlchemy) 的操作

SQLAlchemy

SQlAlchemy的增删改查

使用 SQLAlchemy 从反射表中删除的行