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

Как сделать перебор данных из бд Flask-MySQL?

Добрый день, создаю форму входа на сайт, юзаю Flask-MySQL.
Как сделать перебор данных из базы, с использованием данной библиотеки?
Или всё-таки посоветуете использовать SQLAlchemy?
Так же слышал про Flask-security, но использовать его крайне не хочется.

Код:
@app.route('/test', methods = ['GET','POST'])
def test():
	if request.method == 'POST':
		user = request.form['user']
		key = request.form['pass']
		cur.execute('SELECT * FROM `user`')
		usr = cur.fetchall()
		for us in usr:
			if user and key == us:
				return redirect('/admin')
			else:
				return redirect('/404')
	return render_template('pages/test.html')

Заранее большое спасибо за помощь!
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
@pcdesign
Или всё-таки посоветуете использовать SQLAlchemy?

Имхо, в вашем случае пока не надо. Напишите один проект на голом Flask-MySQL, чтобы в голове устоялось как это все работает, а потом уже можно на алхимию переключится.

Так же слышал про Flask-security, но использовать его крайне не хочется.

С одной стороны, вы делая свою авторизацию изобретаете велосипед и еще и небезопасный велосипед.
И с точки зрения безопасности лучше использовать Flask-security.
С другой стороны надо учится и уметь писать авторизацию без модулей.
Палка о двух концах.

По поводу вашего кода. Вы там в строке SELECT * FROM `user` забрали всех юзеров, а потом сравниваете есть такой юзер или нет. А есть будет 100500 миллиардов юзеров? То что что делать? Каждый раз крутить такой ужас.

Обычно делают:
cur.execute("""select id from user where login=%s   and pass=%s""", (login, passw))
If cur.fetchone().get('id'):
    return redirect(url_for('admin'))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы