vessels
@vessels
Ни черта не понял, но очень интересно!

Возможно ли провернуть что-то подобное в python?

Добрый вечер, работал я над сайтом и подумал как облегчить обращение к базе, да-да я знаю про sqlalchemy и тд. но так как я новичок мне нужно изучить всё!
class Set(object):
	def __init__(self, table, column, value, value_id):
		conn = db.connect()
		cursor = conn.cursor()
		cursor.execute('''UPDATE %s SET %s = %s WHERE id = %s''', (table, column, value, value_id))
		conn.commit()


@Init.route('/')
def init():
	Set(table = "app", column = "state", value = "true", value_id = 1)
	return ('success')

Тут есть экземпляр класса, в который я передаю все нужные переменные, так-же функция инициализации принимает все эти переменные и уже работает с ними с библиотекой Flask-MySQL, снизу у меня есть роутер который передаёт саму информацию нужную для работы класса.

К моему сожалению, ничего не вышло, трейсбэк выглядит так:
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''app' SET 'state' = 'true' WHERE id = 1' at line 1")

Я так понимаю жалуется на
Set(table = "app", column = "state", value = "true", value_id = 1)
а именно на кавычки, MySQL их не принимает, а если пробовать без них то это равносильно присваивании переменной к переменной.

Так вот, можно что-то подобное провернуть в python?
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 1
alternativshik
@alternativshik
если state в базе как BooleanField то и передавать туда надо не строку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы