лучший метод для python3, если elif else db update script - PullRequest
0 голосов
/ 10 мая 2018

мой код работает, как и ожидалось ниже, но я буду использовать его как «шаблон» для продвижения вперед, и прежде чем создавать гигантский файл, я хотел сделать его «чище», так как считаю, что делаю это неправильно, хотя он работает.

Вверху моего скрипта я могу указать соединения с базой данных, а затем просто сослаться на них в следующих функциях?

   def db_update(x):
if x < 30:
    connection = MySQLdb.connect (host= "localhost", REDACTED)
    cursor = connection.cursor()
    sqlcommand = """REDACTED"""
    cursor.execute(sqlcommand)
    cursor.fetchone()
    connection.commit()
    cursor.close()
    connection.close()
elif x > 270 :
    connection = MySQLdb.connect (host= "localhost", REDACTED)
    cursor = connection.cursor()
    sqlcommand = """REDACTED"""
    cursor.execute(sqlcommand)
    cursor.fetchone()
    connection.commit()
    cursor.close()
    connection.close()
else:
    connection = MySQLdb.connect (host= "localhost", REDACTED)
    cursor = connection.cursor()
    sqlcommand = """REDACTED"""
    cursor.execute(sqlcommand)
    cursor.fetchone()
    connection.commit()
    cursor.close()
    connection.close()

Мне интересно, смогу ли я сделать так, чтобы это выглядело так.

def db_update(x):
connection = MySQLdb.connect (host= "localhost", REDACTED)
cursor = connection.cursor()
if x < 30:
    sqlcommand = """REDACTED"""
elif x > 270 :
    sqlcommand = """REDACTED"""
else:
    sqlcommand = """REDACTED"""
cursor.execute(sqlcommand)
cursor.fetchone()
connection.commit()
cursor.close()
connection.close()

или, что еще лучше, будет ссылаться на него из глобального сценария или сценария импорта, например:

def run_sql():
    connection = MySQLdb.connect (host= "localhost", REDACTED)
    cursor = connection.cursor()
    cursor.execute(sqlcommand)
    cursor.fetchone()
    connection.commit()
    cursor.close()
    connection.close()

def db_update(run_sql, x):
    if x < 30:
        sqlcommand = """REDACTED"""
    elif x > 270 :
        sqlcommand = """REDACTED"""
    else:
        sqlcommand = """REDACTED"""
    runsql()

Я очень новичок в этом вопросе, поэтому будьте осторожны иЕсли есть хорошие учебные ссылки, пожалуйста, не стесняйтесь поделиться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...