MySQL соединение под python3 класс - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь написать код, который подключается к серверу БД и распечатывает список серверов на основе пользовательского ввода. У меня проблемы с доступом к выводу базы данных. Я также хотел бы получить предложения о любых способах улучшения следующего кода.

import mysql.connector

mysql_user = "user"
mysql_pw = "password"
mysql_host = "host"
conn = None
try:
  conn = mysql.connector.connect(host=mysql_host, user=mysql_user, password=mysql_pw, database="unixhosts", charset="ascii")
  print('Connected to mysql at host')
  cursor = conn.cursor()
except Exception as x:
  print("Connection failed. Reason : " + str(x))
  exit(2)

class GenerateList:
    def __init__(self, os, version):
    self.os = os
    self.version = version
    self.query = str("SELECT s.system_name FROM systems s JOIN patch_stat p on s.system_id = p.system_id WHERE s.is_alive = 'Y' AND p.os = " + "'" + str(os) + "'" + " AND p.os_version LIKE " + "'" + str(version) + "%'" + ";")
    self.output = ""

    def generate_list(self):
      #print(self.query)
      cursor.execute(self.query)
      return (x for x in cursor)

if __name__ == '__main__':
  try:
    os = input("Enter OS name. Valid OS are 'RHEL' 'CentOS' 'SuSE'")
    os_ver = input("Enter OS version: ")
    output = GenerateList(os, os_ver)
    print(output)
    #output.generate_list()
    output = None
  except Exception as x:
    print("Error processing request. Reason: " + str(x))
cursor.close()
conn.close()
exit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...