SQLAlchemy简介与入门

举报
DrugAI 发表于 2021/07/15 04:17:25 2021/07/15
【摘要】 ORM与SQLAlchemy简介 ORM            ORM:Object Relation Mapping,最初主要描述的是程序中的Object对象和关系型数据库中Rlation关系(表)之间的映射关系,目前来说也是描述程序中对象和数据库中数据记录之间的映射关系的统称,是一种进行程序和数据库之间数据持...

ORM与SQLAlchemy简介

ORM   

        ORM:Object Relation Mapping,最初主要描述的是程序中的Object对象和关系型数据库中Rlation关系(表)之间的映射关系,目前来说也是描述程序中对象和数据库中数据记录之间的映射关系的统称,是一种进行程序和数据库之间数据持久化的一种编程思想。

常见的ORM操作流程和步骤

常规情况下,软件程序中的ORM操作主要有四个操作场景:增、删、改、查
核心操作一般会区分为:增删改、查询

  • 增删改操作
    增加操作:程序中存在的一个对象Object数据,通过[ORM]核心模块进行增加的函数定义将对象保存到数据库的操作过程;如~注册操作中,通过用户输入的账号密码等信息创建了一个独立的对象,通过add()函数将对象增加保存到数据库中,数据库中就存在用户这个对象数据了。
    修改操作:程序中存在的一个对象Object数据,有自己的id编号(可以是程序中自行赋值定义、更多的操作是从数据库中查询出来存在的一个对象),通过[ORM]核心模块进行修改函数的定义将对象改变的数据更新到数据库中已经存在的记录中的过程;如~用户更改登录密码操作时,根据程序中查询得到的一个用户[id编号、账号、密码、..],在程序中通过改变其密码属性数据,然后通过update()函数将改变的数据更新保存到数据库中,数据库中原来的数据就发生了新的改变。
    删除操作:程序中存在的一个对象或者已知的id编号,通过主键编号或者对象的任意属性进行数据库中数据记录的删除的操作过程;如~管理员删除某个会员账号的操作,通过获取要删除会员的账号,然后通过delete()函数将要删除的会员信息告知数据库执行删除操作,数据库中的某条存在的数据记录就被删除掉了。

 SQLAlchemy

       SQLAlchemy 是Python 社区最知名的 ORM 工具之一,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。

       SQLAlchemy底层对数据库表以及表关系的定义,数据库的操作做了封装,使得开发人员可以用python代码来和数据库交互,比起传统的sql语句来说要方便许多。

       SQLAlchemy官网: https://www.sqlalchemy.org/

架构图

 

安装SQLAlchemy

pip install SQLAlchemy
 

查看版本


  
  1. import sqlalchemy
  2. sqlalchemy.__version__

创建连接


  
  1. from sqlalchemy import create_engine
  2. engine = create_engine("sqlite:///:memory:", echo=True)

‘sqlite:///:memory:’ 是 database URL

SQLite

sqlite是基于文件的数据库


  
  1. # database URL 形式是 sqlite://<nohostname>/<path>
  2. engine = create_engine('sqlite:///foo.db')
  3. # 在Unix/Mac
  4. engine = create_engine('sqlite:absolute/path/to/foo.db')
  5. # 在Windows
  6. engine = create_engine('sqlite:///C:\\path\\to\\foo.db')
  7. # 在Windows 中使用原始字符串
  8. engine = create_engine(r'sqlite:///C:\path\to\foo.db')
  9. # 使用内存
  10. engine = create_engine('sqlite://')
  11. engine = create_engine('sqlite:///:memory:')

MySQL

默认使用mysql-python


  
  1. # 默认情况(即使用mysql-python)
  2. engine = create_engine('mysql://scott:tiger@localhost/foo')
  3. # 使用mysql-python
  4. engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')
  5. # 使用MySQL-connector-python
  6. engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')
  7. # 使用OurSQL
  8. engine = create_engine('mysql+oursql://scott:tiger@localhost/foo')

PostgreSQL

PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS)。

sqlalchemy 默认使用 psycopg2


  
  1. # 默认情况(即使用psycopg2)
  2. engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')
  3. # 使用psycopg2
  4. engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')
  5. # 使用pg8000
  6. engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')

 


参考:

https://pypi.org/project/SQLAlchemy/

https://blog.csdn.net/billvsme/article/details/50197197

https://www.jianshu.com/p/65903a69d61d

 

文章来源: drugai.blog.csdn.net,作者:DrugAI,版权归原作者所有,如需转载,请联系作者。

原文链接:drugai.blog.csdn.net/article/details/102980380

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。