sqlalchemy
2016-01-26 11:07
351 查看
#!/usr/bin/env python
author = 'tan9le'
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData
from sqlalchemy.sql.expression import Cast
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.dialects.mysql import
BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE,
DATETIME, DECIMAL, DECIMAL, DOUBLE, ENUM, FLOAT, INTEGER,
LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, NCHAR,
NUMERIC, NVARCHAR, REAL, SET, SMALLINT, TEXT, TIME, TIMESTAMP,
TINYBLOB, TINYINT, TINYTEXT, VARBINARY, VARCHAR, YEAR
#表的属性描述对象
metadata = MetaData()
userTable = Table(
"wzp_user",metadata,
Column('user_id', Integer, primary_key=True),
Column('user_name', VARCHAR(50), unique=True, nullable=False),
Column('password', VARCHAR(40), nullable=True)
)
#创建数据库连接,MySQLdb连接方式
mysql_db = create_engine('mysql://root:1234@127.0.0.1:3306/test')
#创建数据库连接,使用 mysql-connector-python连接方式
#mysql_db = create_engine("mysql+mysqlconnector://用户名:密码@ip:port/dbname")
#生成表
metadata.create_all(mysql_db)
#创建一个映射类
class User(object):
pass
#把表映射到类
mapper(User, userTable)
#创建了一个自定义了的 Session类
Session = sessionmaker()
#将创建的数据库连接关联到这个session
Session.configure(bind=mysql_db)
session = Session()
def main():
u = User()
#给映射类添加以下必要的属性,因为上面创建表指定这个字段不能为空,且唯一
u.user_name='tan9le测试'
#按照上面创建表的相关代码,这个字段允许为空
u.password='123456'
#在session中添加内容
session.add(u)
#保存数据
session.flush()
#数据库事务的提交,sisson自动过期而不需要关闭
session.commit()
if name == 'main':
main()
-- coding: UTF-8 --
from sqlalchemy.orm import mapper, sessionmakerauthor = 'tan9le'
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData
from sqlalchemy.sql.expression import Cast
from sqlalchemy.ext.compiler import compiles
from sqlalchemy.dialects.mysql import
BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE,
DATETIME, DECIMAL, DECIMAL, DOUBLE, ENUM, FLOAT, INTEGER,
LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, NCHAR,
NUMERIC, NVARCHAR, REAL, SET, SMALLINT, TEXT, TIME, TIMESTAMP,
TINYBLOB, TINYINT, TINYTEXT, VARBINARY, VARCHAR, YEAR
#表的属性描述对象
metadata = MetaData()
userTable = Table(
"wzp_user",metadata,
Column('user_id', Integer, primary_key=True),
Column('user_name', VARCHAR(50), unique=True, nullable=False),
Column('password', VARCHAR(40), nullable=True)
)
#创建数据库连接,MySQLdb连接方式
mysql_db = create_engine('mysql://root:1234@127.0.0.1:3306/test')
#创建数据库连接,使用 mysql-connector-python连接方式
#mysql_db = create_engine("mysql+mysqlconnector://用户名:密码@ip:port/dbname")
#生成表
metadata.create_all(mysql_db)
#创建一个映射类
class User(object):
pass
#把表映射到类
mapper(User, userTable)
#创建了一个自定义了的 Session类
Session = sessionmaker()
#将创建的数据库连接关联到这个session
Session.configure(bind=mysql_db)
session = Session()
def main():
u = User()
#给映射类添加以下必要的属性,因为上面创建表指定这个字段不能为空,且唯一
u.user_name='tan9le测试'
#按照上面创建表的相关代码,这个字段允许为空
u.password='123456'
#在session中添加内容
session.add(u)
#保存数据
session.flush()
#数据库事务的提交,sisson自动过期而不需要关闭
session.commit()
#query() 简单的理解就是select() 的支持 ORM 的替代方法,可以接受任意组合的 class/column 表达式 query = session.query(User) #列出所有user print list(query) #根据主键显示 print query.get(1) #类似于SQL的where,打印其中的第一个 print query.filter_by(user_name='tan9le测试').first() u = query.filter_by(user_name='tan9le测试').first() #修改其密码字段 u.password = '654321' #提交事务 session.commit() #打印会出现新密码 print query.get(1).password #根据id字段排序,打印其中的用户名和密码 for instance in session.query(User).order_by(User.user_id): print instance.user_name, instance.password #释放资源 session.close()
if name == 'main':
main()
相关文章推荐
- SQL外连接、内连接、交叉连接
- SQL语句新建表,同时添加主键、索引、约束
- SQLServer Ansi_Padding的用法
- L脚本语言访问Sqlite数据库
- mysql如何防止插入重复数据?
- MongoDB Sql语法
- 利用redis同步登陆实现session共享
- SQL中EXISTS的用法
- 在同一个表上查询和更新
- SQL相除去小数
- 数据库SQL优化大总结之 百万级数据库优化方案
- mysql不同版本号之间的一些区别
- MySQL联表更新插入数据
- mongodb的NUMA问题
- Oracle表连接操作——Hash Join(哈希连接)
- 阿里云数据库RDS环境搭建
- Oracle not in查不到应有的结果(NULL、IN、EXISTS详解)
- 19个MySQL性能优化要点解析
- mysql InnoDB锁等待的查看及分析
- 修改SQL Server 数据库的编码