`
ljdam
  • 浏览: 12383 次
  • 来自: ...
社区版块
存档分类
最新评论

SQLAlchemy数据库操作例子

阅读更多
#建表
from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData,ForeignKey
engine = create_engine('sqlite:///:memory:',echo=True)
metadata = MetaData()
users = Table('users',metadata,
              Column('id',Integer,primary_key=True),
              #SQLite和Postgresql允许不带长度,如果是其他数据库则应该为
              #Column('name',String(50)),
              Column('name',String),
              Column('fullname',String),
              )

address = Table('address',metadata,
                Column('id',Integer,primary_key=True),
                Column('user_id',None,ForeignKey('users.id')),
                Column('email_address',String,nullable=False),
                )
metadata.create_all(engine)

#插入
#coding:GBK
from connection import *

ins = users.insert().values(name='jack',fullname='jack Jones')
print str(ins)
print ins.compile().params

#Executing
conn = engine.connect()
print conn
result = conn.execute(ins)
print result.inserted_primary_key

#Executing Multipe Statements
ins = users.insert()
conn.execute(ins,id=2, name='wendy',fullname='Wendy Williams')

conn.execute(address.insert(),[
    {'user_id':1,'email_address':'jack@yahoo.com'},
    {'user_id':1,'email_address':'jack@msm.com'},
    {'user_id':2,'email_address':'www@www.org'},
    {'user_id':2,'email_address':'wendy@aol.com'},                          
])

#Bind Connection
metadata.bind = engine
result = users.insert().execute(name='mary',fullname='Mary contary')

#查询
from InsertExpressions import *
from sqlalchemy.sql import select,text
s = select([users])
result = conn.execute(s)
for row in result:
    print row
result = conn.execute(s)
row = result.fetchone()
print row
print row['name'],row['fullname']

s = select([users.c.name, users.c.fullname])
result = conn.execute(s)
for row in result:
    print row
    
for row in conn.execute(select([users, address])):
    print row

s = select([users, address], users.c.id==address.c.user_id)
for row in conn.execute(s):
    print row
    
s = text("""SELECT users.fullname || ', ' || address.email_address AS title
        FROM users, address
        WHERE users.id = address.user_id AND users.name BETWEEN :x AND :y AND
        (address.email_address LIKE :e1 OR address.email_address LIKE :e2)
    """)
print conn.execute(s,x='m', y='z', e1='%@aol.com', e2='%@msn.com').fetchall()


参考资料:http://www.sqlalchemy.org/docs/core/tutorial.html
分享到:
评论

相关推荐

    使用SQLAlchemy操作数据库表过程解析

    在Python中,SQLAlchemy是一个强大的ORM(Object-Relational Mapping)库,它允许开发者以面向对象的方式处理数据库操作。本篇文章将深入解析如何使用SQLAlchemy来操作已存在的数据库表,而不涉及自建表的过程。 首先...

    flask数据库操作

    本文介绍了如何在Flask应用中使用MySQL数据库,并重点讨论了通过SQLAlchemy实现数据库操作的方法。从简单的原生SQL语句执行到高级的ORM应用,Flask提供了丰富的工具和技术来帮助开发者高效地管理数据。通过本文的...

    SQLAlchemy技术文档(中文版)

    ### SQLAlchemy技术文档(中文版)知识点总结 #### 1. 版本检查 - **功能说明**:在使用SQLAlchemy之前,确保安装的版本符合项目需求是非常...通过这些步骤,可以有效地利用SQLAlchemy管理数据库操作,提高开发效率。

    sqlalchemy的使用举例源码

    `SQLAlchemy`是Python中的一款强大的ORM(对象关系映射)库,它允许开发者使用Python类来定义数据库模式,并在Python代码中操作这些模式,从而避免了直接编写SQL语句的繁琐。在这个“sqlalchemy的使用举例源码”中,...

    SQLAlchemy学习笔记1

    SQLAlchemy是Python中的一款强大的对象关系映射(ORM)库,它允许开发者使用Python类来定义数据库模式,并在这些类上执行SQL操作。这篇“SQLAlchemy学习笔记1”可能涉及了初学者入门的一些核心概念,包括数据库配置...

    Python库 | types-SQLAlchemy-1.4.13.tar.gz

    在Python中,SQLAlchemy是一个强大的对象关系映射(ORM)框架,它允许开发者使用Python对象来操作数据库,极大地简化了数据库操作。本文将深入探讨SQLAlchemy 1.4.13版本的特性、用途以及如何使用。 SQLAlchemy的...

    Python和SQLite数据库来完成一个基本的数据库课程设计例子

    附件是一个简单的示例,展示了如何使用Python和SQLite数据库来完成一个基本的数据库课程设计,这个示例将创建一个...此外,对于更复杂的项目,可能需要使用ORM(对象关系映射)工具,如SQLAlchemy,来简化数据库操作。

    SqlAlchemy入门级Demo,可稍微修改成类库

    SqlAlchemy是Python编程语言中的一个流行ORM(对象关系映射)工具,它允许开发者使用Python对象来操作数据库,而无需直接编写SQL语句。通过SqlAlchemy,你可以将数据库操作与业务逻辑更好地解耦,提高代码的可读性...

    SQLAlchemy_Tutorial

    SQLAlchemy 通过其强大的功能简化了数据库操作,并支持多种数据库系统。 #### 二、官方资源介绍 1. **官方介绍**:官方文档是学习 SQLAlchemy 最权威、最全面的资料来源。 - **1.1 引入 SQLAlchemy**:这部分内容...

    python脚本 通过cmd操作数据库

    此外,如果你有大量复杂的数据库操作,可能需要考虑使用ORM(对象关系映射)工具,如SQLAlchemy,它能提供更高级别的抽象和数据库操作的安全性。 总的来说,Python结合CMD为数据库操作提供了极大的灵活性和便利性。...

    python使用SQLAlchemy操作MySQL

    通过 SQLAlchemy,Python 开发者可以方便地对 MySQL 数据库进行 CRUD 操作,无需编写原始的 SQL 语句。这使得代码更易于维护和理解,同时也简化了数据库操作的复杂性。在实际项目中,可以根据需求进一步扩展这些基本...

    flask学习对数据库表操作的项目dome.zip

    在本项目"flask学习对数据库表操作的项目dome.zip"中,主要涉及的是使用Python的Flask框架...这个项目涵盖了数据库模型的定义、数据库连接的配置、以及CRUD操作的实现,是初学者理解和实践Flask数据库操作的好例子。

    Python库 | tornado_sqlalchemy-0.1.1-py3-none-any.whl

    1. **异步支持**:由于 Tornado 是异步的,`tornado_sqlalchemy` 也支持异步数据库操作,这意味着在等待数据库响应时,应用可以继续处理其他请求,从而提高并发性能。 2. **简化集成**:`tornado_sqlalchemy` 提供...

    PyPI 官网下载 | sqlalchemy_connector-0.1.27-py3-none-any.whl

    这个简单的例子展示了如何定义一个 User 模型,然后通过 SQLAlchemy 的 Session 进行数据操作。实际使用中,开发者可以根据具体需求进行更复杂的数据操作和查询。 总结来说,`sqlalchemy_connector-0.1.27-py3-none...

    python orm 框架中sqlalchemy用法实例详解

    总的来说,SQLAlchemy 是 Python 开发者在处理数据库操作时的强大工具,它提供了丰富的 API 和高级特性,使得数据库操作变得简单易懂,同时不失灵活性和性能。通过学习和熟练掌握 SQLAlchemy,开发者可以更高效地...

    Python库 | SQLAlchemy-1.1.9.tar.gz

    SQLAlchemy 的核心是它的 SQL 工具包,允许直接进行低级 SQL 操作,同时也支持通过 ORM 来简化数据库操作,将数据库表与 Python 类关联起来。 在 SQLAlchemy-1.1.9.tar.gz 这个压缩包中,包含的是 SQLAlchemy 的 ...

    sql to sqlalchemy 转换的小例子

    在SQLAlchemy中,它是Python的一个ORM(对象关系映射)库,用于操作SQL数据库。它提供了高级的SQL构造和查询方式,使得开发者可以更方便地在Python代码中编写和执行SQL语句。在这个例子中,我们将看到如何将一个标准...

    flask_sqlalchemy_eg.zip

    SQLAlchemy,则是 Python 中流行的数据库 ORM(对象关系映射)库,它简化了数据库操作,使得开发者可以用 Python 代码来处理数据库事务,而无需直接编写 SQL。 首先,我们需要了解 Flask 的基本结构。Flask 应用由...

    基于Python的使用Flask_SQLAlchemy查询过滤器获取免费课程和收费课程.zip

    SQLAlchemy是Python的一个ORM(对象关系映射)库,它将数据库操作转换为Python对象的操作。通过SQLAlchemy,我们可以定义数据模型,这些模型对应数据库中的表,并且可以用Python类的方式进行操作。例如,我们可以...

    tornado-sqlalchemy:对TornadoSQLAlchemy支持

    Tornado-SQLAlchemy 将 SQLAlchemy 的强大数据库操作能力与 Tornado 的异步特性相结合,提供了以下关键功能: - **异步支持**:在 Tornado 中,你可以使用 `await` 关键字来异步地执行数据库查询,这有助于避免阻塞...

Global site tag (gtag.js) - Google Analytics