Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » Flask: глобальная переменная для разных пользователей [RSS Feed]

#1 Май 28, 2015 10:38:19

jam
От:
Зарегистрирован: 2012-01-13
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

Пробую разобраться с Фласк'ом и заодно с 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)

Спасибо!



Офлайн

#2 Май 28, 2015 10:41:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

Предлагаю заценить чудовищную по сложности восприятия концепцию: хранение данных в базе данных!



Офлайн

#3 Май 28, 2015 11:23:02

jam
От:
Зарегистрирован: 2012-01-13
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

А я так радовался, что делаю аппсик без всяких таких трудновоспринимаемых концепций… просто нажал одну кнопочку - прибавилось, нажал другую - убавилось… просто, быстро и удобно!
Не стоит забывать, что данные пользователя в базе данных - это еще и ознакомление с законодательной базой об охране данных.
В каком месте тут встраивать БД, что в ней должно храниться?
А может все таки можно без нее? А то маячит перпектива провести лето в базе данных… планы были другие.;)
Извиняюсь за такие вопросы, конечно.



Отредактировано jam (Май 28, 2015 11:26:43)

Офлайн

#4 Май 28, 2015 11:29:59

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

Без БД никак. Соболезную

Офлайн

#5 Май 28, 2015 11:32:23

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

А кто-то обещал, что будет легко? Любое веб-приложение (ну ладно не любое) - это трёхуровневая архитектура, если вы не владеете каким-то одним из уровней у вас ничего не получится.



Офлайн

#6 Май 28, 2015 11:41:30

jam
От:
Зарегистрирован: 2012-01-13
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

'President Barack Obama “Computer science isn't for someone else. It's for you, here, now.” - а про эти базы он промолчал, нехороший человек…:)
Если серьезно - как должно выглядеть это мое “плюс минус” приложение? Как то сделать эти переменные для каждого юзера отдельные и хранить их?



Офлайн

#7 Май 28, 2015 11:55:02

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

А тебе разве по китайски сказали?
Попробую еще раз: тебе нужна база данных, в ней ты будешь хранить все результаты расчетов, сессии, пользователей и вообще всё. Какое из этих слов непонятно?



Офлайн

#8 Май 28, 2015 21:31:48

jam
От:
Зарегистрирован: 2012-01-13
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

По отдельности понятны почти все, спасибо.:)



Офлайн

#9 Май 28, 2015 22:11:52

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

jam
Ну почитайте же официальную документацию. Там даже пример есть простого блога, если я не ошибаюсь. Причем, если с английским проблема, то документацию уже идейные ребята перевели на 80% на русский, т.е. проблем не должно составить никаких. Единственное, что конечно лучше сразу разбираться с SQL и параллельно с ОРМ (по-секрету можно сначала ОРМ, а потом уже дочитать по SQL). Так будет и правильно и производительно

Отредактировано 4kpt_III (Май 28, 2015 22:12:41)

Офлайн

#10 Май 29, 2015 01:14:01

jam
От:
Зарегистрирован: 2012-01-13
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask: глобальная переменная для разных пользователей

Документацию пролистал (далеко не все понятно), книжки есть, пробовал http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world, но там все правильно и сложно(:)) ,без Github'а тоже не обошлось; просто не думал, что для такой простой вещи нужно так глубоко копать и хочется все делать ОЧЕНЬ просто.
Похоже, придется для начала прочитать пропущенные места на http://opentechschool.github.io/python-flask/… прекрасный урок, по моему.
Уроков хороших немало, да вот где учеников взять хороших.:)



Отредактировано jam (Май 29, 2015 01:20:34)

Офлайн

  • Начало
  • » Web
  • » Flask: глобальная переменная для разных пользователей [RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version