zoukankan      html  css  js  c++  java
  • python之操作数据库

    一、操作mysql

    首先,python3操作mysql.需要安装第三方模块pymysql,在python2中则使用的是pysqldb。这里使用pymysql.

    直接使用pip install pymysql或python3 setup.py install安装。

    1.1连接mysql

    import pymysql
    #数据库连接信息
    host='127.0.0.1'
    user='db'
    password='123456' #密码只能是字符串
    db='db'
    port=3306#端口号只能写int类型
    charset='utf8'#只能写utf8,不能写utf-8
    conn = pymysql.connect(host=host,password=psassword,
                    user=user,db=db,port=port,
                    charset=charset,autocommit=True
                    )#建立连接
    #autocommit=True往数据库写数据时,需要commit下,这个参数表示自动提交。
    cur=conn.cursor#创建游标
    sql='select * from app_users limit 5;'
    cur.execute(sql)#只是执行sql语句,并不返回执行sql的结果
    print(cur.fetchall())#执行上述mysql语句,把结果放到cur,通过fetchall将执行sql后的结果取出来,默认返回的是二维元组
    print(cur.description())#获取这个表里所有字段的属性信息
    cur.close()#关闭游标
    conn.close()#关闭连接
    #创建游标,操作设置为字典类型,返回结果为字典格式!不写默认是元组格式!
    cur=conn.cursor(cursor=pymysql.cursors.DictCursor)
    #接收数据有三种方式:
    res = cursor.fetchone()  #接收返回的第一行数据
    ret = cursor.fetchmany(n) #接收返回的前n行数据,数组格式
    req = cursor.fetchall() #接收返回的所有数据,数组格式
    #获取最新的自增ID
    new_id=cursor.lastrowid
    print(new_id)
    conn.rollback()#回滚当前游标的所有操作

    1.2创建数据库表

    import pymysql
    host='127.0.0.1'
    user='jxz'
    password='123456' #密码只能是字符串
    db='jxz'
    port=3306#端口号只能写int类型
    charset='utf8'#只能写utf8,不能写utf-8
    conn = pymysql.connect(host=host,password=password,
                    user=user,db=db,port=port,
                    charset=charset,autocommit=True
                    )#建立连接
    #autocommit=True往数据库写数据时,需要commit下,这个表示自动提交。
    cur= conn.cursor() #建立游标
    sql='create table LYH (username char(20),age int,sex char(20))'
    cur.execute(sql)
    print(cur.fetchall())
    cur.close()
    conn.close()

    1.3插入数据

    import pymysql
    host='127.0.0.1'
    user='jxz'
    password='123456' #密码只能是字符串
    db='jxz'
    port=3306#端口号只能写int类型
    charset='utf8'#只能写utf8,不能写utf-8
    conn = pymysql.connect(host=host,password=password,
                    user=user,db=db,port=port,
                    charset=charset,autocommit=True
                    )#建立连接
    #autocommit=True往数据库写数据时,需要commit下,这个表示自动提交。
    
    cur= conn.cursor() #建立游标
    sql='insert into LYH (username,age,sex) VALUES ("liuyihan",18,"女")'
    cur.execute(sql)
    cur.close()
    conn.close()

    二、操作redis

    redis是一种nosql数据库,是一种高性能的key-value数据库。其特点有以下三个:

    • 数据可持久化地保存在磁盘中,重启时可再次加载使用
    • value可存储string,list,set,hash等数据结构
    • 支持master-slave数据备份

    通过redis desktop manager连接工具,也操作redis数据库。具体方法如图:

    通过python操作redis,首先安装redis模块。

    import redis
    import random
    ip='127.0.0.1'
    password='******'
    r=redis.Redis(host=ip,password=password,port=6379,db=1)
    #操作string类型的值
    # res=r.get('liuyihan')
    # print(res)
    # s='ss'
    # print(s.encode())#将字符串变成bytes类型,二进制类型
    # print(res.decode())#将二进制类型转变成字符串类型
    # r.flushdb()#清空所有表
    # r.set('lyh','ftt',50)#50指定key50S后失效
    # r.delete('gta')#删除指定的key
    # r.setex('lyh','233',40)#40是指定value40S后失效
    # token:lyh#冒号前的表示文件夹
    r.set('message:lyh','excel,word')#冒号:前的是文件夹,冒号:后的是key,‘excel,word'是values
    # print(r.keys())#获取数据库中的所有key,返回一个列表
    #hash类型,二层字典
    # token={'lyh':{'age':'18','firm':'DJ'}}
    r.hset('Message','LYH',"Shenzen")
    print(r.hget('jnz_stus','cm'))
    # res=r.hgetall('jnz_stus')
    # print(res)
    # new={}
    # for key,value in  enumrate(res):
    #     new[key.decode()]=value.decode()
    # print(new)
  • 相关阅读:
    隔离级别
    分析Hello2代码
    正则表达式
    Filter and servlet
    部署描述符
    Annotation
    LDAP and Implementation
    Restful levels and Hateoas
    servlet injection analysis
    隔离级别
  • 原文地址:https://www.cnblogs.com/balllyh/p/9823415.html
Copyright © 2011-2022 走看看