SQLAlchemy使用

Posted dongml

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLAlchemy使用相关的知识,希望对你有一定的参考价值。

SQLAlchemy 是Python 社区最知名的 ORM 工具之一,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。支持几种主流的数据库(Orace,mysql,SQLServer,Postgres,SQLite)

安装方法:pip install SQLAlchemy

使用SQLAlchemy操作mysql

如果连接方式使用pymysql的的方式则还需要另外执行命令 pip install pymysql

# -*- coding: utf-8 -*-
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String,ForeignKey
from sqlalchemy.orm import sessionmaker,relationship
from sqlalchemy import create_engine
#连接字符串
engine = create_engine("mysql+pymysql://用户名:密码@ip:端口/数据库名?charset=utf8", max_overflow=5,encoding=‘utf-8‘,convert_unicode=True)
#例如 engine = create_engine("mysql+pymysql://root:@127.0.0.1:3306/blogs?charset=utf8", max_overflow=5,encoding=‘utf-8‘,convert_unicode=True)

Base = declarative_base()

#创建表基础基类Base
##文章表
class Article(Base):
__tablename__=‘article‘
id=Column(Integer,primary_key=True)
name=Column(String(64),unique=True)
__table_args__={"mysql_charset":"uft8"}

##测试
if __name__ == ‘__main__‘:
#Base.metadata.drop_all(engine) #删除表
#Base.metadata.create_all(engine) #创建表
# 创建session对象:
# 创建DBSession类型
DBSession = sessionmaker(bind=engine)
session = DBSession()

##添加操作
#obj = Article(id=4,name=u‘我爱北京天安门‘)
#session.add(obj)
#session.commit()
##删除操作
session.query(Article).filter(Article.id==4).delete()
session.commit()
##修改操作
#session.query(Article).filter(Article.id==4).update({"name":"jack"})
#session.commit()

##查询
# ret = session.query(Article).all()
# ret = session.query(Article.name, Article.id).all()
# ret = session.query(Article).filter_by(name=‘alex‘).all()
# ret = session.query(Article).filter_by(name=‘alex‘).first()


以上是关于SQLAlchemy使用的主要内容,如果未能解决你的问题,请参考以下文章

从 python 使用 TSQL(SQL Server 上的 mssql)时,如何为 SQLAlchemy 自动生成 ORM 代码?

如何使用 sqlalchemy 计算平均数?

SqlAlchemy - 按关系属性过滤

使用 sqlalchemy 时如何选择特定列?

Django ORM和SQLAlchemy类比

SQLAlchemy Upsert无法找到表“已排除”