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()
相关文章推荐
- Oracle用户密码含有特殊字符导致无法登陆解决方法
- Oracle用户密码含有特殊字符导致无法登陆解决方法
- Oracle用户密码含有特殊字符导致无法登陆解决方法
- java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
- JQuery的选择器对控件ID含有特殊字符的解决方法-涨姿势了!
- 在URL上传递参数,如果含有特殊字符必须对其进行编码
- 将用户输入的字符串转换为可换行、替换Html编码、无危害数据库特殊字符、去掉首尾空白、的安全方便代码
- java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
- ajax参数传递时含有特殊字符解决(否则只获取一部分字符,或者出错)
- 解决微信登录时昵称中包含特殊字符,不能存入数据库问题
- 静态页面如何接收参数以及解决特殊字符的编码问题
- 数据库查询中遭遇特殊字符导致问题的解决方法
- windows下密码含有@字符的数据库连接
- Oracle更新表字段时内容中含有特殊字符&的解决方法
- Oracle更新表字段时内容中含有特殊字符&的解决方法
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- 指定mysql的数据库保存路径及忘记root密码的解决方法
- js链接中含有+号特殊字符处理,不能传到后台