03.24 python连接mysql django的安装






创建表:
#导入数据库
import pymysql
def createtable():
conn=pymysql.connect("localhost","root","123456","myschool")    #建立连接
  mycursor=conn.cursor()       #得到cursor 对象
sqlstr='''
      create table test(
             id int primary key auto_increment,
             name varchar(20) not null,
             sex char(2)
         )default charset utf8;'''
    mycursor.execute(sqlstr) #执行SQL语句
     conn.close()#关闭连接对象
createtable()


插入内容:
def inserttable():
     conn1=pymysql.connect("localhost","root","123456","myschool")#建立连接
     mycursor1=conn1.cursor()
     sql2='''insert into test(name,sex) values('李苗','女')'''
     try:
               result=mycursor1.execute(sql2)
                      print(result)
               conn1.commit()
                 except:
                conn1.rollback()
     conn1.close()
inserttable()


封装连接数据库的方法:
def getconn():
    conn=pymysql.connect("localhost","root","123456","myschool")  #建立连接
    mycursor=conn.cursor()   #得到cursor 对象
    return [conn,mycursor]


删除
def deltable():
    conn=getconn()
    sqlstr='''delete from test where id=1'''
     try:
        print(conn[1].execute(sqlstr))
        conn[0].commit()
     except:
        conn[0].rollback()
     conn[0].close()
deltable()


改:
def updatetable():
    conn=getconn()
    sqlstr='''update test set name='刘超' where id=2 '''
     try:
        print(conn[1].execute(sqlstr))
        conn[0].commit()
     except:
        conn[0].rollback()
     conn[0].close()
updatetable()




封装方法,单写SQL语句:
def operationtable(sqlstr):
    conn=getconn()
    try:
        print(conn[1].execute(sqlstr))
        conn[0].commit()
    except:
        conn[0].rollback()
    conn[0].close()


sqlstr='''delete from test where name="张三"'''
sqlstr='''insert into test(name,sex) values("杨乃文","男")'''
sqlstr=''' update test set name="周周" where id=6'''
operationtable(sqlstr)#将SQL语句传进去




查询(封装)


class Test():
    def __init__(self,id=None,name=None,sex=None):
        self.id=id
        self.name=name
        self.sex=sex
    def __str__(self):
        return "id:"+str(self.id)+",name:"+self.name+",sex:"+self.sex
#查询
def querytable():
    list=[]
    conn=getconn() #调用公共连接方法
    sqlstr='''select id,name,sex from test''' #查询内容
    conn[1].execute(sqlstr)  #执行SQLstr
    rs=conn[1].fetchall()  #rs是返回的结果,是一个元组
    for row in rs:
        test=Test(row[0],row[1],row[2])#调用上面的方法,生成的对象
        list.append(test)#将对象添加到列表
        #print("id:%d,name:%s,sex:%s"%(row[0],row[1],row[2]))#遍历输出结果
    conn[0].close()#关闭
    return list#返回列表
testlist=querytable()
for row in testlist:

    print(row)#row 重写了str








PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。
在cmd中输入或在pycharm中terminal中输入:pip install PyMySQL  进行安装
环境变量:配bin的路径
可在Python环境下,shift右键打开窗口输入:pip install PyMySQL     注意:最好是pip3


PyMysql操作:
1、导入PyMySQL模块
2、建立连接    Conn=pymysql.connect("localhost","root","123456","myschool")
3、得到cursor 对象
4、写SQL语句
5、执行SQL语句   mycursor.execute(sqlstr)
6、关闭连接    conn.close()

7、create 返回1或0

8、select 返回一个虚拟表


Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。


fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
fetchall(): 接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。


连接数据库注意事项:
1、已创建该数据和表
2、连接数据库用户名和密码



cursor.execute('select varsion()')调用execute执行SQL查询,返回版本号


**获取执行的结果,如果创建表的语句则返回none
***乱码:1在原码里更改;2在连接是后面加上charset='utf8'; 3在创建表的时候,在后面跟上default charset utf8。

猜你喜欢

转载自blog.csdn.net/gaoshiqi5322688/article/details/79706860