sqlalchemy链接数据库,指定编码,解决密码含有特殊字符
# 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()
url编码处理定义表
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)),
)
创建数据表,如果数据表存在,则忽视
创建链接
conn = t()
增删改查
#插⼊数据
"INSERT INTO color( name) VALUES ('test');"
)
result = ute('select * from color')
print(result.fetchall())
sql = user.insert().values(name='test2')
#删除⼀条user表⾥的条件是id⼤于1的
#sql = user.delete().id > 1)
#执⾏
#ute(sql)
#更新
#把名字为test的修改为aaa
#sql = user.update().ame == 'test').values(name='aaa')
#ute(sql)
print"查询user表⾥的内容"
sql = select([user, ])
res =ute(sql)
print res.fetchall()
print'查询user表下的id'
sql = select([id, ])
res =ute(sql)
print res.fetchall()
print'查询user表和color表的name,条件是user表的id1=color的id1'
sql = select([ame, ame]).id==id)
res =ute(sql)
print res.fetchall()
print'查询user表的name,并按照条件排序'
#按照名字排序
sql = select([ame]).order_ame)
res =ute(sql)
print res.fetchall()
print'按照id排序'
sql = select([ame]).order_id)
res =ute(sql)
print res.fetchall()
print'查询user表的name,并按照条件分组'
sql = select([user]).group_ame)
res =ute(sql)
print res.fetchall()
关闭链接
#关闭链接
conn.close()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。