sqlalchemy系列(1) sqlalclemy安装与基础搭建
2014-11-02 19:30
260 查看
sqlalchemy是python业内公认非常强大的数据库操作框架,下面我主要说明sqlalchemy在实际使用中的用法
首先是sqlalchemy的安装
可直接使用setuptools或者pip安装
通过下面可检验sqlalchemy是否安装完成
首先是创建数据库的引擎
使用create_engine函数创建与数据库的配置对象
以上是mysql的创建语句
其他数据库一般把前面的mysql改一下名字就可以了
有了连接数据的引擎,下面需要连接数据库,创建访问会话了
sessionmaker实际上是一个工厂类,他可以产生Session的类对象,后面会使用这个Session创建数据库的会话
你可以选择在sessionmaker直接绑定数据库引擎。
如果有多个数据库,也可以这样发
我们在使用的时候,需要用上述的Session创建session,当然时候要关闭,不然会报连接池溢出,无法使用session
我使用tornado的时候一般习惯在一个父类Handler初始化时创建session,结束时关闭,这样可省去重复代码,而且不会出现忘记关闭
说完了连接数据库部分,该聊聊配置与数据表的关系了
sqlalchemy使用mapper()对python对象与数据表之间进行映射,但我一般更加喜欢直接用简便的方法
类似上述代码,继承Base,直接创建合适的python对象,会自动和数据库里面映射,另一种就是用mapper()进行创建,我们放到后面需要用到时说
CREATE TABLE `sqlalchemyTest`.`admin_group` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`create_time` INT NOT NULL,
`limit` VARCHAR(45) NULL,
PRIMARY KEY (`id`));
上述为在mysql中的创表sql
首先是sqlalchemy的安装
可直接使用setuptools或者pip安装
easy_install SQLAlchemy pip install SQLAlchemy
通过下面可检验sqlalchemy是否安装完成
In [1]: import sqlalchemy In [2]: sqlalchemy.__version__ Out[2]: '0.9.7'
首先是创建数据库的引擎
使用create_engine函数创建与数据库的配置对象
engine = create_engine( "mysql://%s:%s@%s/%s" % ( MYSQLCONFIG['user_name'], MYSQLCONFIG['user_pass'], MYSQLCONFIG['host'], MYSQLCONFIG['db_name'],), encoding='utf8', convert_unicode=True)
以上是mysql的创建语句
其他数据库一般把前面的mysql改一下名字就可以了
有了连接数据的引擎,下面需要连接数据库,创建访问会话了
Session = sessionmaker(bind=engine)
sessionmaker实际上是一个工厂类,他可以产生Session的类对象,后面会使用这个Session创建数据库的会话
你可以选择在sessionmaker直接绑定数据库引擎。
如果有多个数据库,也可以这样发
Session = sessionmaker() Session.configure(bind=engine)
我们在使用的时候,需要用上述的Session创建session,当然时候要关闭,不然会报连接池溢出,无法使用session
我使用tornado的时候一般习惯在一个父类Handler初始化时创建session,结束时关闭,这样可省去重复代码,而且不会出现忘记关闭
import tornado.web from library.database import Session class BaseHandler(tornado.web.RequestHandler): def initialize(self): self.orm = Session() def on_finish(self): self.orm.close()
说完了连接数据库部分,该聊聊配置与数据表的关系了
sqlalchemy使用mapper()对python对象与数据表之间进行映射,但我一般更加喜欢直接用简便的方法
from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class Admin_group(Base): __tablename__ = 'admin_group' id = Column(Integer, primary_key=True) name = Column(String, nullable=False) create_time = Column(Integer, nullable=False) limit = Column(String)
类似上述代码,继承Base,直接创建合适的python对象,会自动和数据库里面映射,另一种就是用mapper()进行创建,我们放到后面需要用到时说
CREATE TABLE `sqlalchemyTest`.`admin_group` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`create_time` INT NOT NULL,
`limit` VARCHAR(45) NULL,
PRIMARY KEY (`id`));
上述为在mysql中的创表sql
相关文章推荐
- Solaris基础系列之四:图解Oracle 10g安装
- Linux系列-Red Hat5平台下的Samba服务搭建(RPM安装)
- mysql基础系列1 mysql的各种安装方法
- HDFS HA系列实验之一:基础环境搭建
- DBA基础系列SQL Server 2014:1. SQL Server 安装部署(独立部署、非域环境) 推荐
- mongodb基础系列—副本集具体搭建以及解说
- mongodb基础系列—主从复制具体搭建以及解说
- VMware workstation -- 实验环境搭建系列(一) VMware Workstation安装及初次使用配置
- 【MongoDB安装和基础学习系列】
- Hadoop平台搭建使用系列教程(4)-操作系统安装
- mongodb基础系列——mongodb服务器与客户端安装
- Nginx实战基础篇六 通过源码包编译安装部署LNMP搭建Discuz论坛 推荐
- 实时开发框架Meteor基础入门系列<一>--安装与HelloWorld
- OpenVox 全系列模拟卡安装教程,使用openvox+elastix搭建电话系统
- Windows SQL2008数据库系列一搭建安装SQL2008R2
- Twisted系列-基础介绍.安装
- nginx+PHP服务器环境安装与配置学习(一) - windows系统基础环境搭建
- maven系列笔记(安装、下载jar、搭建私服)
- Lync Server 2010 安装部署系列一:前期基础环境准备
- Hadoop平台搭建使用系列教程(6)- JDK的安装