您的位置:首页 > 数据库

sqlalchemy 链接数据库,指定编码,解决密码含有特殊字符

2017-08-30 11:35 483 查看
# coding=utf-8
from urllib import quote_plus as urlquote
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKey
import MySQLdb


创建数据库连接

用此方法链接可以指定UTF8编码,同时解决密码中含有特定字符,比如含有@,则把密码部分进行URL编码

echo=True 会显示每条执行的 SQL 语句

max_overflow 最大链接数

connstr = "mysql+mysqldb://root:%s@127.0.0.1:3306/dbname?charset=utf8" % urlquote('password')
engine = create_engine(connstr,echo=True,max_overflow=5)


获取元数据

metadata = MetaData()


定义表

user = Table('user', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(20)),
)

color = Table('color', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(20)),
)


创建数据表,如果数据表存在,则忽视

metadata.create_all(engine)


创建链接

conn = engine.connect()


增删改查

#插入数据
engine.execute(
"INSERT INTO color( name) VALUES ('test');"
)
result = engine.execute('select * from color')

print(result.fetchall())

conn.execute(user.insert(),{'name':'test'})

sql = user.insert().values(name='test2')
conn.execute(sql)

#删除一条user表里的 条件是id大于1的
#sql = user.delete().where(user.c.id > 1)
#执行
#conn.execute(sql)

#更新
#把名字为test的修改为aaa
#sql = user.update().where(user.c.name == 'test').values(name='aaa')
#conn.execute(sql)

print "查询user表里的内容"
sql = select([user, ])
res =conn.execute(sql)
print res.fetchall()

print '查询user表下的id'
sql = select([user.c.id, ])
res =conn.execute(sql)
print res.fetchall()

print '查询user表和color表的name,条件是user表的id1=color的id1'
sql = select([user.c.name, color.c.name]).where(user.c.id==color.c.id)
res =conn.execute(sql)
print res.fetchall()

print '查询user表的name,并按照条件排序'
#按照名字排序
sql = select([user.c.name]).order_by(user.c.name)
res =conn.execute(sql)
print res.fetchall()

print '按照id排序'
sql = select([user.c.name]).order_by(user.c.id)
res =conn.execute(sql)
print res.fetchall()

print '查询user表的name,并按照条件分组'
sql = select([user]).group_by(user.c.name)
res =conn.execute(sql)
print res.fetchall()


关闭链接

#关闭链接
conn.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 sqlalchemy
相关文章推荐