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:%[email protected]: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.查询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()
原文出处:csdn -> https://blog.csdn.net/baixue6269/article/details/77712395
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。