Как не подключаться к базе данных MySQL каждый раз?
Доброго времени суток.
Я начинающий разработчик и это мой первый вопрос на StackOverflow, мастерю бота на python с использованием СУБД MySQL, mysql.connector.
Сейчас я каждый раз подключаюсь к БД по мере того, когда мне нужно изменить базу, можно-ли сделать это однажды и больше не повторять этот кусок кода каждый раз?
Кроме того, меня интересует, можно-ли вот так оставлять пароль в исходном коде бота, залив его на хостинг, безопасно ли это?
Далее код:
@bot.message_handler(func=lambda m: True)
def echo_all(message):
user_id = message.from_user.id
if message.text == 'Создать анкету':
try:
with connect(
host="localhost",
# user=input("Введите имя пользователя: "),
# password=getpass("Введите пароль: "),
user="newuser",
password="255****",
database="forms"
) as connection:
select_forms_query = '''
SELECT chat_id
FROM form
'''
get_user_form = f'''
SELECT name, years_old, title
FROM form
WHERE chat_id = {user_id}
'''
with connection.cursor() as cursor:
cursor.execute(select_forms_query)
result = cursor.fetchall()
if is_user_in_base(result, user_id):
cursor.execute(get_user_form)
user_form = cursor.fetchall()
user_form_out(user_form, user_id)
else:
print(user_id, "- user is not in database")
process_filling_form(user_id)
except Error as e:
print(e)
Как можно сократить этот участок with connect (...) as connection (...) ?
Ответы (1 шт):
Автор решения: Namerek
→ Ссылка
from pymysql import Connection
def connect() -> Connection:
return Connection(
# your connection params
)