Python学习笔记八:ORM框架SQLAlchemy

一:SQLAlchemy使用

1:实体类的创建

ORM中的实体类与一般的Python类不同,在其中,使用 __tablename__=""指明该类与数据库中某个表相对应,然后定义一系列成员属性,属性值使用 Column(数据类型) 来映射到表中具体哪一列。

首先,创建数据库引擎,并由静态方法获取一个基类:declarative_base() 创建了一个 BaseModel 类,这个类的子类可以自动与一个表关联。

然后,继承base类,定义实体类:

带外键的实体类创建:

最后,运行基类中自带的方法,把数据库引擎传进去,创建出数据库表:BaseModel.metadata.create_all(engine) 会找到 BaseModel 的所有子类,并在数据库中建立这些表

2:创建记录

创建一个类实例,就对应了一条数据库记录。

3:创建数据库会话

4:使用面向对象的方式操作数据库

增:

增加一条记录:

增加多条记录:

查:

条件查询:

全表查询:

排序查询:

过滤查询(in/not in):

统计查询记录数:

逻辑查询:and/or后面跟左右操作数。

join查询:

其他更多操作:参考这篇博文:

http://blog.csdn.net/fengzhongzhishenfu/article/details/38978863

5:提交事务,使持久化操作生效

时间: 2024-08-02 12:53:50

Python学习笔记八:ORM框架SQLAlchemy的相关文章

python学习笔记八——正则表达式

1.元字符 []-常用来指定一个字符集:[abc];[a-z] -元字符在字符集中不起作用:[akm$] -补集匹配不在区间范围内的字符:[^5] ^-匹配行首 $-匹配行尾 \-后可加不同字符以表示不同意义,也可用于取消所有元字符 \d 匹配任何十进制数,相当于[0-9] \D 匹配任何非数字字符,相当于[^0-9] \s 匹配任何空白字符,相当于[\t\n\r\f\v] \S 匹配任何非空白字符 \w 匹配任何字母数字字符 \W 匹配任何非字母数字字符 *-匹配前一个字符零次或多次 +-至少

Python学习笔记之Scrapy框架入门

创建一个新的Scrapy项目 定义提取的Item 写一个Spider用来爬行站点,并提取Items 写一个Item Pipeline用来存储提取出的Items 新建工程 在抓取之前,你需要新建一个Scrapy工程.进入一个你想用来保存代码的目录,然后执行:scrapy startproject tutorial 这个命令会在当前目录下创建一个新目录tutorial,它的结构如下: T:. │  scrapy.cfg │ └─tutorial │  items.py │  pipelines.py

Python学习笔记八 面向对象高级编程(二)元类

参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 在廖老师的学习网站里"使用元类"这部分还是把我给看晕了...网上搜到一篇感觉讲的相对易懂一些,贴出链接:两句话掌握 Python 最难知识点--元类--以此文作为这篇笔记的源本. "道生一,一生二,二生三,三生万物" 1.在Python世界中,"type"即为道

python学习笔记-Day17 - web框架

web服务器和web客户端之间的网络通信,本质上是 socket的通信, 服务器端运行的是socketServer 客户端运行的是socketClient. 对于python web程序来说,一般来说会分为两部分,服务器程序\应用程序,  (jsp好像也是这样的,让我想起了java的war包,不是太了解,只知道这些war包可以组成jsp上的应用). 服务器程序:负责对socket服务器进行封装,在请求到来的时候,对请求进行整理, 应用程序   : 负责具体的业务逻辑处理, 为了方便应用程序的开发

python学习笔记(八)-模块

大型python程序以模块和包的形式组织.python标准库中包含大量的模块.一个python文件就是一个模块.1.标准模块 python自带的,不需要你安装的2.第三方模块 需要安装,别人提供的. pip install xxx 自动化安装的 手动安装 首先下载安装包 解压 在命令行里面进入到这个解压之后的目录 执行python setup.py install3.自己写的 自己写的python文件import xx 导入一个文件 ,导入文件的实质是什么,把这个python运行一次import

Python学习笔记八 面向对象高级编程(一)

参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 一.使用__slots__ 正常情况下,当定义了一个类之后,我们可以给这个类的实例绑定任何属性,这就是动态语言的优势: class Student(object): def __init__(self,name,age): self.name=name self.age=age bob=Student('Bob

Python学习笔记八:文件操作(续),文件编码与解码,函数,递归,函数式编程介绍,高阶函数

文件操作(续) 获得文件句柄位置,f.tell(),从0开始,按字符数计数 f.read(5),读取5个字符 返回文件句柄到某位置,f.seek(0) 文件在编辑过程中改变编码,f.detech() 获取文件编码,f.encoding() 获取文件在内存中的编号,f.fileno() 获取文件终端类型(tty.打印机等),f.isatty() 获取文件名,f.name() 判断文件句柄是否可移动(tty等不可移动),f.seekable() 判断文件是否可读,f.readable() 判断文件是

Python学习笔记八:模块

模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 简单地说,模块就是一个保存了Python代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. import 想使用Python源文件,只需在另一个源文件里执行import语句,当解释器遇到import语句,如果模块在当前的搜索路径就会被导入. 1 #coding=utf-8 2 #!/usr/bin/python

python学习笔记八:文件与目录

一.文件的打开和创建 1.打开 open(file,mode): >>>fo = open('test.txt', 'r') >>>fo.read() 'hello\n' >>>fo.close() file(file,mode): >>>f = file('test.txt', 'r') >>>f.read() 'hello\n' >>>f.close() mode可取值: 2.创建 用w/w+/