sqlachemy 是python中关于sql的ORM,他的存在可以消除底层sql引擎的差异,同事也避免了复杂繁琐的sql语句,因此我们在比较大的应用时常使用它,下面是我写的一个例子 #!/usr/bin/env python
# -*- coding: UTF-8 -*-
from sqlalchemy.orm import mapper, sessionmaker
__author__ = 'lige' 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://用户名:密码@ip:port/dbname')
#创建数据库连接,使用 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() query 请求的是对象,没有属性,只有其实例才有属性 if __name__ == '__main__':
main()
他的思路很简单,首先创建meta,和表映射,然后meta和库映射,最后创建类object,和表映射,这样我们只需要使用类以及和库相关连的session来访问所需要的表的字段
sqlachemy 使用实例的更多相关文章
-
最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
-
SQLAchemy
SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果.
-
Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)
本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...
-
Python操作mysql之SQLAchemy(ORM框架)
SQLAchemy SQLAchemy 解析: SQLAchemy是python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作, 简言之便是:将对象转换成SQ ...
-
ORM、SQLAchemy
ORM.SQLAchemy orm英文全称object relational mapping,就是对象映射关系程序,简单来说就是类似python这种面向对象的程序来说一切皆对象,但是使用的数据库却都是 ...
-
ORM框架-SQLAchemy使用
一.ORM简介 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的 ...
-
ORM sqlachemy
本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM介绍 orm英文全称object relational mapping ...
-
python SQLAchemy常用语法
SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. ...
-
sqlachemy详解
实习期老大让我学Python...学了很久了好吗,不过确实对其中的一些原理性的东西还不够深入. 比如今天要说的sqlachemy,结合网上做些总结吧 ORM 全称 Object Relational ...
随机推荐
-
添加JavaScrip
本章内容: 加载外部脚本:添加嵌入脚本:JavaScrip事件 1,脚本类型:外部文件(使用纯文本格式)加载的脚本:嵌入在页面中的脚本. 加载外部脚本的方法 <body><scrip ...
-
Unity3d《Shader篇》地球旋转上空悬浮云层
记得把纹理设置成Repeat Shader "Custom/Earth" { Properties { _MainTex ("Base (RGB)", 2D) ...
-
sdut 2609 A-Number and B-Number
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2609 数位DP 以前没怎么做过,自己憋了半天, ...
-
servlet 启动加载配置文件及初始化
在servlet开发中,会涉及到一些xml数据的读取和一些初始化方法的调用.可以在tomcat启动的时候,加载一个servlet去初始化一些数据. 摘自 http://stone02111.iteye ...
-
Ehcache使用
http://www.360doc.com/content/14/0423/17/16946725_371472946.shtml http://www.myexception.cn/web-appl ...
-
cocos2dx c++ 在mac下写的中文凝视,在win32下编译时不通过
今天遇到个奇怪的问题,在mac下写的程序,加的中文凝视,编译没有问题,可是在win32下(使用的时vs2012, win7 64bit 系统)编译就总是报错 最后在中文凝视后 加一个空格,或者 换行, ...
-
One Way Roads(搜索)
One Way Roads Time Limit:500MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit S ...
-
kafka--- consumer 消费消息
1. consumer API kafka 提供了两套 consumer API: 1. The high-level Consumer API 2. The SimpleConsumer API 其 ...
-
MySQL技术内幕读书笔记(二)——InnoDB存储引擎
目录 InnoDB存储引擎 InnoDB存储架构 Checkpoint技术 Master Thread 工作方式 InnoDB关键特性(放一下,感觉看后面,再看总结吧) InnoDB存储引擎 Inno ...
-
KEYENCE Programming Contest 2019 Solution
A - Beginning 签到. #include <bits/stdc++.h> using namespace std; int main() { ]; while (scanf(& ...