Найти - Пользователи
Полная версия: Flask: глобальная переменная для разных пользователей
Начало » Web » Flask: глобальная переменная для разных пользователей
1 2
jam
Пробую разобраться с Фласк'ом и заодно с WEB'ом. Уже думал, что начинаю что-то понимать, однако оказалось, что все по старому и еще хуже.;)
Если мое творение упростить до самого принципа: нажатие кнопки на странице изменяет глобальную переменную (+= 1). И все у меня получалось и работало (на сервере Flask'а), пока не надумал посмотреть на другом браузере. Оказалось, что эта переменная общая для всех браузеров и измения в одном видны в другом…
Вопрос такой - как делаются подсчеты результатов в играх и т.п. отдельно для каждого юзера, каким образом каждый видит свои циферки? Я думал, что этим займется session Flask'а…
Если рассказал не очень понятно, вот пример:
# configuration
DEBUG = True
SECRET_KEY = 'sloi,52za Sloem-i_t;d'

app = Flask(__name__)
app.config.from_object(__name__)

dlya_vhoda = ['pervyj', 'vtoroj', 'tretij']
result = 0


@app.route('/')
def ind():
return render_template('index_su.html')


@app.route('/login', methods=['GET', 'POST'])
def login():
'''Вход'''
error = None
if request.method == 'POST':
if request.form['kod'] not in dlya_vhoda:
error = u"Пароль недействительный"
else:
session['logged_in'] = True
return redirect('/glavnaya')
return render_template('index_su.html', error=error)


@app.route('/glavnaya', methods=['POST', 'GET'])
def plus_odin():
'''Глобальную переменную "result" увеличивает на 1'''
global result
result += 1
return render_template('/glavnaya.html', result=result)

Спасибо!
FishHook
Предлагаю заценить чудовищную по сложности восприятия концепцию: хранение данных в базе данных!
jam
А я так радовался, что делаю аппсик без всяких таких трудновоспринимаемых концепций… просто нажал одну кнопочку - прибавилось, нажал другую - убавилось… просто, быстро и удобно!
Не стоит забывать, что данные пользователя в базе данных - это еще и ознакомление с законодательной базой об охране данных.
В каком месте тут встраивать БД, что в ней должно храниться?
А может все таки можно без нее? А то маячит перпектива провести лето в базе данных… планы были другие.;)
Извиняюсь за такие вопросы, конечно.
4kpt_III
Без БД никак. Соболезную
FishHook
А кто-то обещал, что будет легко? Любое веб-приложение (ну ладно не любое) - это трёхуровневая архитектура, если вы не владеете каким-то одним из уровней у вас ничего не получится.
jam
'President Barack Obama “Computer science isn't for someone else. It's for you, here, now.” - а про эти базы он промолчал, нехороший человек…:)
Если серьезно - как должно выглядеть это мое “плюс минус” приложение? Как то сделать эти переменные для каждого юзера отдельные и хранить их?
FishHook
А тебе разве по китайски сказали?
Попробую еще раз: тебе нужна база данных, в ней ты будешь хранить все результаты расчетов, сессии, пользователей и вообще всё. Какое из этих слов непонятно?
jam
По отдельности понятны почти все, спасибо.:)
4kpt_III
jam
Ну почитайте же официальную документацию. Там даже пример есть простого блога, если я не ошибаюсь. Причем, если с английским проблема, то документацию уже идейные ребята перевели на 80% на русский, т.е. проблем не должно составить никаких. Единственное, что конечно лучше сразу разбираться с SQL и параллельно с ОРМ (по-секрету можно сначала ОРМ, а потом уже дочитать по SQL). Так будет и правильно и производительно
jam
Документацию пролистал (далеко не все понятно), книжки есть, пробовал http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world, но там все правильно и сложно(:)) ,без Github'а тоже не обошлось; просто не думал, что для такой простой вещи нужно так глубоко копать и хочется все делать ОЧЕНЬ просто.
Похоже, придется для начала прочитать пропущенные места на http://opentechschool.github.io/python-flask/… прекрасный урок, по моему.
Уроков хороших немало, да вот где учеников взять хороших.:)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB