博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python】SQLAlchemy
阅读量:7063 次
发布时间:2019-06-28

本文共 1424 字,大约阅读时间需要 4 分钟。

来源:

对比:

 

注意连接数据库方式和数据操作方式!

 

今天发现了个处理数据库的好东西:SQLAlchemy

一般python处理mysql之类的数据库时,都要connect, select, insert, commit等操作,到处都是,很不方便。SQLAlchemy可以解决这个问题。

 

数据库表是一个二维表,包含多行多列。把一个表的内容用Python的数据结构表示出来的话,可以用一个list表示多行,list的每一个元素是tuple,表示一行记录,比如,包含idnameuser表:

[    ('1', 'Michael'),    ('2', 'Bob'),    ('3', 'Adam')]

Python的DB-API返回的数据结构就是像上面这样表示的。

但是用tuple表示一行很难看出表的结构。如果把一个tuple用class实例来表示,就可以更容易地看出表的结构来:

class User(object):    def __init__(self, id, name):        self.id = id        self.name = name[    User('1', 'Michael'),    User('2', 'Bob'),    User('3', 'Adam')]

这就是传说中的ORM技术:Object-Relational Mapping,把关系数据库的表结构映射到对象上。是不是很简单?

但是由谁来做这个转换呢?所以ORM框架应运而生。

在Python中,最有名的ORM框架是SQLAlchemy。我们来看看SQLAlchemy的用法。

 

 

例子代码:

有一个mysql数据库TESTTABLE, 一个表test_distinct

id是主键

SQLAlchemy连接插入数据库的代码如下,注意,必须有主键,否则会出错!!

#!/usr/bin/python#coding=utf-8from sqlalchemy import Column, String,Integer, create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()class Test_Distinct(Base):    __tablename__ = 'test_distinct'    id = Column(Integer, primary_key=True)    name = Column(String(255))    type = Column(String(20))engine = create_engine('mysql+mysqlconnector://root:123456@localhost:3306/TESTTABLE')DBSession = sessionmaker(bind=engine)session = DBSession()new_data = Test_Distinct(id=8, name='test',type='sqlalchemy')session.add(new_data)session.commit()session.close()

 

插入后结果:

转载地址:http://trnll.baihongyu.com/

你可能感兴趣的文章
基础练习 数列排序
查看>>
Batch containing 11 record(s) expired due to timeout while requesting metadata
查看>>
Android Activity的生命周期
查看>>
Azure Web应用中设置静态虚拟目录的方法(比如部署Django需要用到)
查看>>
CentOS6.5配置网络
查看>>
【Linux】Ubuntu配置服务自启动 sysv-rc-conf
查看>>
oracle10g创建用户
查看>>
mybatis-入门
查看>>
oracle 11g for redhat 64
查看>>
bootstrap-徽章-链接
查看>>
bootstrap-内联文本元素-着重
查看>>
[20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
查看>>
LNMP相关问题——PHP无法连接MySQL之一
查看>>
WiFi Active Directory Network Policy Server Cisco WLAN Group Policy
查看>>
jetty client 与apache http client的实现、分析
查看>>
安装ubuntu14.04遇到网卡驱动不成功问题
查看>>
C语言链接mysql常用函数
查看>>
swap自动配置作业
查看>>
lsof命令的使用
查看>>
关于SQLite,SQLCipher和FMDB
查看>>