美文网首页
python 总结

python 总结

作者: BrianHsu | 来源:发表于2020-04-28 22:22 被阅读0次
python 赋值
  • 切记赋值时使用手欠打上,号,会将原来的数据类型变为tuple类型,执行时出现报错难以查找
a = 1,
print(a)
b = 1
print(b)

output:
print(a) ->(1,)
print(b) ->1
  • 从字段中取值时尽可能的使用get()方法,这样做的好处就是及时查找的值不存在也不会报错,会返回None值,也可以使用get(x, default)给查找不到的key或key值为None赋默认值
a = {'x': 'x', 'y': 'y'}
print(a.get('z'))
print(a.get('z', 1))
print(a['z'])
output:
print(a.get('z')) -> None
print(a.get('z', 1)) -> 1
print(a['z']) -> 报错,key值不存在
python 参数传值
  • 当方法的参数可以使用字典时(尤其是拼接sql时会用到, 目前sqlarchemy 接受的值参数一般为*args:使用tuple传值, kw 使用dict传值),可以使用kwars传递
def dict_test(**kw):
    print(kw.get('a'))
    print(kw.get('b'))
    print(kw.get('c'))


if __name__ == '__main__':
    value = {'a': 1, 'b': 2}
    dict_test(**value)
output:
-> 1
-> 2
-> None
python 三方包pymysql 以及aiomysql 获取主键自增id
  • python 三方mysql包,pymysql 以及aiomysql获取主键的自增id均可通过执行后的结果去除自增id
#  pymysql
import pymysql
connection = pymysql.connect(host='192.168.1.1',
                             port=3306,
                             user='admin',
                             password='admin',
                             db='test',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor,
                             autocommit = True)
with connection.cursor() as cursor:  
        sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
        cursor.execute(sql, ('xxx@163.com', '123456'))
        print(cursor.lastrowid)  # 获取插入后的自增id
connection.close()

# aiomysql
import aiomysql
import asyncio
async def aiomysql_test(loop):
    engine = await aiomysql.sa.create_engine(user='admin', db='admin', loop=loop,
                                                   host='192.168.1.1',
                                                   password='admin',
                                                   autocommit=True, connect_timeout=10, echo=False)
    async with engine.acquire() as conn:
        sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
        inser_result = await conn.execute(sql)
        print(inser_result.lastrowid) # 获取自增id

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(aiomysql_test(loop))
    loop.close()

相关文章

网友评论

      本文标题:python 总结

      本文链接:https://www.haomeiwen.com/subject/eaepwhtx.html