Новичок. Тренируюсь. Могу путаться в терминах.
Пробую сделать простое приложение, которое выполняет операции CRUD (это слово я узнал благодаря форумчанам, спасибо за науку ))
Код для выполнения задач строю следующим образом:
1. Web -страница отправляет запрос в приложение на соотв рут
2. В руте выполняются некие действия с базой данных, например (код черновой, без обработки исключений и пр., чисто для примера)
3. Ну и куда-то отдается результат (в зависимости от задачи)
То есть каждый раз, когда в рут идет запрос я создаю коннект с базой данных, выполняю над ней какой-то SQL запрос, делаю commit и закрываю соединение до следующего запроса.
Вопросы:
1. Правильно ли я делаю?
2. Возможно ли разместить команду
connection = sqlite3.connect("db/xxl.db")
в области для глобальных переменных приложения, чтобы не делать connect и close при каждом вызове каждого рута, или это бессмыслица по каким-то причинам?
Пробую сделать простое приложение, которое выполняет операции CRUD (это слово я узнал благодаря форумчанам, спасибо за науку ))
Код для выполнения задач строю следующим образом:
1. Web -страница отправляет запрос в приложение на соотв рут
2. В руте выполняются некие действия с базой данных, например (код черновой, без обработки исключений и пр., чисто для примера)
Python:
connection = sqlite3.connect("db/xxl.db")
cursor = connection.cursor()
cursor.execute('INSERT INTO users (username,hash,surname,fname,sname) VALUES (?,?,?,?,?)',(request.form.get("username"),hash,request.form.get("usersurname"),request.form.get("userfirstname"),request.form.get("usersecondname")))
userid = cursor.lastrowid
print(userid)
connection.commit()
connection.close()
То есть каждый раз, когда в рут идет запрос я создаю коннект с базой данных, выполняю над ней какой-то SQL запрос, делаю commit и закрываю соединение до следующего запроса.
Вопросы:
1. Правильно ли я делаю?
2. Возможно ли разместить команду
connection = sqlite3.connect("db/xxl.db")
в области для глобальных переменных приложения, чтобы не делать connect и close при каждом вызове каждого рута, или это бессмыслица по каким-то причинам?