当前位置:Gxlcms > 数据库问题 > python连接数据库。

python连接数据库。

时间:2021-07-01 10:21:17 帮助过:9人阅读

-*- coding: utf-8 -*- __author__ = hero import pymssql import xml.dom.minidom import os import sys curPath = os.path.abspath(os.path.dirname(__file__)) rootPath = os.path.split(curPath)[0] sys.path.append(rootPath) class ExchangeData(object): global CONFIGTYPE_RETEST global CONFIGTYPE_PING global CONFIGTYPE_AGETEST global CONFIGTYPE_IPX CONFIGTYPE_RETEST = RETEST CONFIGTYPE_PING = PING CONFIGTYPE_AGETEST = AGETEST CONFIGTYPE_IPX = IPX ###加载数据库连接数据 def loadDBConfig(self,dbType): xmlDoc = xml.dom.minidom.parse(os.getcwd() +\\conf\\/DBConfig.xml‘#此处路径为配置文件的路径 root = xmlDoc.documentElement sql_element = root.getElementsByTagName(dbType)[0] return sql_element def __exchangeDataByDBConnection(self): sqlInfo = self.loadDBConfig(MSSQL) db_host = sqlInfo.getElementsByTagName(HOST)[0].firstChild.data db_database = sqlInfo.getElementsByTagName(DATABASE)[0].firstChild.data db_user = sqlInfo.getElementsByTagName(USERNAME)[0].firstChild.data db_pwd = sqlInfo.getElementsByTagName(PASSWORD)[0].firstChild.data conn = pymssql.connect(user=db_user,password=db_pwd,database=db_database,host=db_host) conn.autocommit(True) return conn ###读取数据### def getDataBySql(self,sqlStr): try: conn = self.__exchangeDataByDBConnection() if not conn: raise(NameError,数据库连接失败) else: cur = conn.cursor() cur.execute(sqlStr) resList = cur.fetchall() conn.close() return resList except Exception,e: print(e) raise(NameError,数据库操作失败) ###更改数据库### def setDataBySql(self,sqlStr): try: conn = self.__exchangeDataByDBConnection() if not conn: raise(NameError,数据库连接失败) return False else: cur = conn.cursor() cur.execute(sqlStr) conn.commit() conn.close() return True except Exception,e: print(e) raise(NameError,数据库操作失败) return False if __name__ == __main__: pn = BYAUX-CTN0003 sqlStr = "select * from producttype where productNo = ‘"+pn+"" edata = ExchangeData() resList = edata.getDataBySql(sqlStr=sqlStr) for dataRow in resList: print(dataRow[0])

 

2.进行增删改查操作,文件

  1 #coding=gbk
  2 
  3 from exchangeData import *
  4 import time
  5 
  6 ###数据库相关操作
  7 class DataBaseOP(object):
  8     ###根据用户名密码,验证用户权限返回值不同,权限不同###
  9     def loginApTester(self,username,password):
 10         loginSql = SELECT rid FROM bdcomemployee WHERE bdcomLoginName = \‘+username+\‘ AND bdcomPassword = \‘+password+\‘
 11         loginSql = self.dbTrim(loginSql)
 12         eData = ExchangeData()
 13         dataRows = eData.getDataBySql(loginSql)
 14         if len(dataRows)==0 or dataRows[0] is None:
 15             return 0
 16         elif dataRows[0][0]==17:
 17             return 2
 18         else:
 19             return 1
 20 
 98    
127     ###修改密码###
128     def resetDBPwd(self,userName,oldPwd,newPwd):
129         igStatus = self.loginApTester(userName,oldPwd)
130         if igStatus>0:
131             setSql = UPDATE bdcomemployee SET bdcomPassword = \‘+newPwd+\‘ WHERE bdcomLoginName = \‘+userName+\‘ AND bdcomPassword = \‘+oldPwd+\‘
132             self.dbTrim(setSql)
133             eData = ExchangeData()
134             return eData.setDataBySql(setSql)
135         else:
136             return False;
137 
138 
139     
155   169 
170     def dbTrim(self,trimStr):
171         return str(trimStr).replace(\t,‘‘).replace(\n,‘‘).replace(\r,‘‘)
172 
173 if __name__ == __main__:
174     dbop = DataBaseOP()
175     dbop.loginApTester(liuke_ap,liuke)

 

3.配置文件

 

1 <?xml version="1.0" encoding="UTF-8"?>
2 <JDBC>
3     <MSSQL>
4         <HOST>192.168.1.1</HOST>
5         <DATABASE>abcd</DATABASE>
6         <USERNAME>root</USERNAME>
7         <PASSWORD>root</PASSWORD>
8     </MSSQL>
9 </JDBC>

 

python连接数据库。

标签:sys.path   path   hal   commit   slist   data   seo   pen   bsp   

人气教程排行