Python笔记:连接数据库 2019-12-10

    上次把环境搞定了,把如何安装第三方包也弄清楚了,pymssql也装好,剩下的其实就比较简单的了,百度下,找了段例子。

#coding=utf-8

# sqlserver的连接

import pymssql

class MSSQL:

    def __init__(self,host,user,pwd,db):

        self.host = host

        self.user = user

        self.pwd = pwd

        self.db = db

    def __GetConnect(self):

        """

        得到连接信息

        返回: conn.cursor()

        """

        if not self.db:

            raise(NameError,"没有设置数据库信息")

        self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")

        cur = self.conn.cursor()

        if not cur:

            raise(NameError,"连接数据库失败")

        else:

            return cur

    def ExecQuery(self,sql):

        """

        执行查询语句

        返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段

        """

        cur = self.__GetConnect()

        cur.execute(sql)

        resList = cur.fetchall()

        #查询完毕后必须关闭连接

        self.conn.close()

        return resList

    def ExecNonQuery(self,sql):

        """

        执行非查询语句

        调用示例:

            cur = self.__GetConnect()

            cur.execute(sql)

            self.conn.commit()

            self.conn.close()

        """

        cur = self.__GetConnect()

        cur.execute(sql)

        self.conn.commit()

        self.conn.close()

def main():

    ms = MSSQL(host="LM-PC",user="sa",pwd="12345678",db="example_for_lm")

    resList = ms.ExecQuery("SELECT * FROM sample")

    print(resList)

if __name__ == '__main__':

    main()

    python的书写规范其实跟其他语言差不多,里面的实现技巧也大同小异,用"""" 和""""做跨段注释,用#做本行注释,用:做类开头。我在sql server 2014里建了个数据库"example_for_lm",里面建了个"sample"的表,试着怎么查询然后显示出来。把    ms = MSSQL(host="XX-PC",user="sa",pwd="12345678",db="example_for_me")里面的host改为数据库服务器主机名或ip,user改为数据库用户,pwd为密码,db为连接后的默认数据库,上机运行,成功。python挺好玩,直接就print结果集,简单粗暴。搞清楚整个流程,剩下的只是拼凑ms.ExecQuery后面执行的sql语句了,增删改记录什么的,这些百度一下,都不难搞定。

  注意点:

一、pymssql主要提供的conn(连接)和cursor(操作)两个方法。

二、用完记得把conn关闭掉 close()。


Python笔记:连接数据库 2019-12-10_第1张图片
数据库
python

你可能感兴趣的:(Python笔记:连接数据库 2019-12-10)