美文网首页
ORM初识,sqlalchemy操作数据库(一)

ORM初识,sqlalchemy操作数据库(一)

作者: 努力学习的小白 | 来源:发表于2018-03-20 23:21 被阅读0次

    1.ORM的介绍:

    orm对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。一般我们使用的数据库,都是关系型数据库,为了使用习惯和方便,所以前人们(俗称前人栽树后人乘凉嘛),就想出了通过ORM与数据库建立映射关系,从而达到不使用sql语句也能操作数据库。

    image.png

    orm的优点:
    1、隐藏数据访问细节,不用使用原生sql语句,大大的提高了开发效率。
    2、使我们构造固化数据简单方便。(创建数据)

    orm的缺点:
    1、因为对象关系映射的原理。关联和映射极大的影响了性能。

    2.sqlalchemy的安装

    Python中最常用的orm框架,就是sqlalchemy。

    Python3:

      pip3 install sqlalchemy
    

    Python2:

      pip install sqlalchemy
    

    安装完成之后。就可以通过sqlalchemy连接数据库。sqlalchemy连接数据库的底层是MySQLdb。
    而一般连接mysql的库,都会封装MySQLdb。

    MySQL-Python
        mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
       
    pymysql
        mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
       
    MySQL-Connector
        mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>
       
    cx_Oracle
        oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]
    

    3.sqlalchemy创建数据表

    from sqlalchemy import create_engine
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column,String,Integer
    from sqlalchemy.orm import sessionmaker
    
    engine = create_engine("mysql+mysqlconnector://root  :123456@localhost:3306/data",encoding='utf8',echo=True)
    
    Base = declarative_base() # 生成ORM基类
    
    # 建立表结构
    class User(Base):
        __tablename__ = 'student'
        id = Column(Integer,primary_key=True)
        name = Column(String(32))
        gender = Column(String(32))
        email = Column(String(64))
    
    # 创建表结构
    Base.metadata.create_all(engine)
    
    

    4.创建表的第二种方法

    #_author_='shaojie'
    #-*- coding:utf-8 -*-
    
    from sqlalchemy import Table,MetaData,Column,Integer,String
    from sqlalchemy.orm import mapper
    from sqlalchemy.engine import create_engine
    
    # 创建一个连接对象socket
    engine = create_engine("mysql+mysqlconnector://root:123456@localhost:3306/data",encoding='utf8',echo=True)
    
    # 创建一个基类,绑定socket
    metadata = MetaData(bind=engine)
    
    # 创建表结构
    students = Table('students',metadata,
                    Column('id',Integer,primary_key=True),
                    Column('name',String(36)),
                    Column('gender',String(36)),
                    Column('email',String(50)))
    
    # 建立students表的映射关系
    class Students(object):
    
        def __init__(self,name,gender,email):
            self.name = name
            self.gender = gender
            self.email = email
    
    # 映射
    mapper(Students,students)
    
    # 创建表
    metadata.create_all(engine)
    

    如下图。这就是我们刚才创建的数据表students

    image.png

    好了。很晚了,有女票抱紧女票了,没女票抱紧自己了。该睡觉了

    相关文章

      网友评论

          本文标题:ORM初识,sqlalchemy操作数据库(一)

          本文链接:https://www.haomeiwen.com/subject/jnriqftx.html