flaskDBUtils4PG.py 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. import datetime
  2. import time
  3. from Functions.DButilsFunction import flightDB
  4. loginsts = 'loginsts'
  5. logintoken = 'logintoken'
  6. infolog = 'infolog'
  7. IpPhoneip='IpPhoneip'
  8. callingPhone='callingPhone'
  9. vin="vin"
  10. class flaskDB(flightDB):
  11. def __init__(self, host, port, user, password, database):
  12. super(flaskDB, self).__init__(host=host,port=port,user=user, password=password, database=database)
  13. # self._dir = './DATABASE'
  14. # self.conn = sqlite3.connect(os.path.join(self._dir,DBName))
  15. # self.c = self.conn.cursor()
  16. def insertManyData(self, sql:str, data_list:list):
  17. self.c.executemany(sql, data_list)
  18. self.conn.commit()
  19. def initIpPhoneip(db:flaskDB):
  20. db.initTable(IpPhoneip, 'ID','INTEGER PRIMARY KEY NOT NULL', {'ip':'text','token':'text'})
  21. result = db.getAlldata(IpPhoneip)
  22. if result == []:
  23. db.insertData('IpPhoneip', {'ID':1,'ip':'None','token':'None'})
  24. def initVin(db:flaskDB):
  25. db.initTable(vin, 'ID','INTEGER PRIMARY KEY NOT NULL', {'VINA':'text','VINB':'text'})
  26. result = db.getAlldata(vin)
  27. if result == []:
  28. db.insertData('vin', {'ID':1, 'VINA': '%s' %time.time(), 'VINB': '%s' %time.time()})
  29. db.insertData('vin', {'ID':2, 'VINA': '%s' %time.time(), 'VINB': '%s' %time.time()})
  30. db.insertData('vin', {'ID':3, 'VINA': '%s' %time.time(), 'VINB': '%s' %time.time()})
  31. def initcallingPhone(db:flaskDB):
  32. db.initTable(callingPhone, 'ID','INTEGER PRIMARY KEY NOT NULL', {'phonenumber':'text','time':'text'})
  33. result = db.getAlldata(callingPhone)
  34. if result == []:
  35. db.insertData('callingPhone', {'ID':1,'phonenumber':'None','time':'None'})
  36. def initLoginsts(db:flaskDB):
  37. db.initTable(loginsts, 'ID','INTEGER PRIMARY KEY NOT NULL', {'sts':'int'})
  38. result = db.getAlldata(loginsts)
  39. if result == []:
  40. db.insertData('loginsts', {'ID':1,'sts':0})
  41. def initLoginToken(db:flaskDB):
  42. db.initTable(logintoken, 'ID', 'INTEGER PRIMARY KEY NOT NULL', {'username':'text','token': 'text'})
  43. result = db.getAlldata(logintoken)
  44. if result == []:
  45. db.insertData(logintoken, {'ID':1, 'username':'None','token':'None'})
  46. def initInfolog(db:flaskDB):
  47. db.initTable(infolog, 'ID', 'SERIAL PRIMARY KEY', {'datatime':'text', 'sts':'text'})
  48. def checkLogin(db:flaskDB):
  49. initLoginsts(db)
  50. result = db.queryTabel(loginsts, 'sts', 'ID=1')
  51. if result[0][0] == 1:
  52. #print('已登录')
  53. return 1
  54. else:
  55. return 0
  56. def logout(db:flaskDB):
  57. initLoginsts(db)
  58. initLoginToken(db)
  59. db.upDateItem(loginsts, {'sts': 0}, 'ID=1')
  60. db.upDateItem(logintoken, {'username': "'None'", 'token': "'None'"}, 'ID=1')
  61. def setIpPhone(db:flaskDB,ip,token):
  62. initIpPhoneip(db)
  63. db.upDateItem(IpPhoneip, {'ip':"'%s'"%ip, 'token':"'{}'".format(token)}, 'ID=1')
  64. def callingphoneUpdate(db:flaskDB,phonenumber,time):
  65. initcallingPhone(db)
  66. db.upDateItem(callingPhone, {'phonenumber':"'%s'"%phonenumber, 'time':"'%s'"%time}, 'ID=1')
  67. def getPhoneNum(db:flaskDB):
  68. initcallingPhone(db)
  69. res = db.queryTabel(callingPhone, "phonenumber", "ID = '1'")[0][0]
  70. return res
  71. def getVin(db:flaskDB,mode,num):
  72. initVin(db)
  73. if num == 1: #昨天
  74. res = db.queryTabel(vin, "VIN%s"%mode, "ID = '1'")[0][0]
  75. elif num == 2: #今天
  76. res = db.queryTabel(vin, "VIN%s"%mode, "ID = '2'")[0][0]
  77. elif num == 3: #明天
  78. res = db.queryTabel(vin, "VIN%s"%mode, "ID = '3'")[0][0]
  79. return res
  80. def updateVin(db:flaskDB,mode,num):
  81. initVin(db)
  82. Vin=time.time()
  83. if num ==1:
  84. db.upDateItem(vin, {'VIN%s'%mode:"'%s'"%Vin}, 'ID=1')
  85. elif num ==2:
  86. db.upDateItem(vin, {'VIN%s'%mode:"'%s'"%Vin}, 'ID=2')
  87. elif num ==3:
  88. db.upDateItem(vin, {'VIN%s'%mode:"'%s'"%Vin}, 'ID=3')
  89. return Vin
  90. def getIpPhoneip(db:flaskDB):
  91. initIpPhoneip(db)
  92. res1={"ip":"","token":""}
  93. res=db.queryTabel(IpPhoneip, "*", "ID = '1'" )
  94. if res[0][2] != None:
  95. res1={"ip":"%s"%res[0][1],"token":"%s"%res[0][2]}
  96. return res1
  97. else:
  98. return res1
  99. def login(db:flaskDB, user, token):
  100. initLoginsts(db)
  101. initLoginToken(db)
  102. db.upDateItem(loginsts,{'sts':1}, 'ID=1')
  103. db.upDateItem(logintoken,{'username':user,'token':"'{}'".format(token)}, 'ID=1')
  104. def getToken(db:flaskDB):
  105. initLoginToken(db)
  106. result = db.getAlldata(logintoken)
  107. #print(result)
  108. return result[0][2]
  109. def insertinfolog(db:flaskDB, datatime, sts):
  110. initInfolog(db)
  111. db.insertData(infolog,{'datatime':"{}".format(datatime), 'sts':"{}".format(sts)})
  112. def updatecheck(db:flaskDB):
  113. now = datetime.datetime.now()
  114. testtime = (now - datetime.timedelta(minutes=6)).strftime("%Y%m%d %H:%M:%S")
  115. log_str = db.queryTabel(infolog, "ID", "datatime >'%s' and sts = '200'" % testtime)
  116. if log_str ==[]:
  117. updatests="0"
  118. else:
  119. updatests="1"
  120. return updatests
  121. def clearinfolog(db:flaskDB):
  122. initInfolog(db)
  123. now = datetime.datetime.now()
  124. passtime = (now - datetime.timedelta(days=1)).strftime("%Y%m%d %H:%M:%S")
  125. log_str = db.queryTabel(infolog, "ID", "datatime <'%s'" % passtime)
  126. if log_str !=[]:
  127. for i in log_str:
  128. db.deleteSingledata(infolog, "ID='%s'" % i[0])
  129. def getinfolog(db:flaskDB):
  130. initLoginsts(db)
  131. result = db.getAlldata(infolog)
  132. #print(result)
  133. return result
  134. def testInsertMany(db:flaskDB):
  135. initInfolog(db)
  136. sql = "insert into infolog (datatime, sts) values (?, ?);"
  137. data_list = []
  138. for i in range(1000):
  139. nowDay = datetime.datetime.now()
  140. nowDayStr = nowDay.strftime("%Y%m%d")
  141. nowStr = nowDay.strftime("%Y%m%d %H:%M:%S")
  142. data_list.append((nowStr, '200'))
  143. time1 = time.time()
  144. db.insertManyData(sql, data_list)
  145. #print("插入多条数据:{}".format(time.time()-time1))
  146. def testInsert(db:flaskDB):
  147. for i in range(1000):
  148. nowDay = datetime.datetime.now()
  149. nowDayStr = nowDay.strftime("%Y%m%d")
  150. nowStr = nowDay.strftime("%Y%m%d %H:%M:%S")
  151. insertinfolog(db, nowStr, '200')
  152. if __name__ == '__main__':
  153. flaskDB = flaskDB(host='192.168.2.65',
  154. port='9527',
  155. #host='101.42.5.211', #测试服务器
  156. #port='5444',
  157. user='user1',
  158. password='a123456s',
  159. database="flaskDatabase"
  160. )
  161. initLoginsts(flaskDB)
  162. # flaskDB.insertData('loginsts', {'ID':1,'sts':1})
  163. # checkLogin(flaskDB)
  164. # login(flaskDB, '022673', '7de7ce62-e02f-4f9e-bcec-03b9084e890d')
  165. # checkLogin(flaskDB)
  166. # logout(flaskDB)
  167. #
  168. # getToken(flaskDB)
  169. testInsertMany(flaskDB)
  170. time1 = time.time()
  171. testInsert(flaskDB)
  172. print('插入时间:{}'.format(time.time()-time1))