Форум сайта python.su
Пробую разобраться с Фласк'ом и заодно с 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)
Офлайн
Предлагаю заценить чудовищную по сложности восприятия концепцию: хранение данных в базе данных!
Офлайн
А я так радовался, что делаю аппсик без всяких таких трудновоспринимаемых концепций… просто нажал одну кнопочку - прибавилось, нажал другую - убавилось… просто, быстро и удобно!
Не стоит забывать, что данные пользователя в базе данных - это еще и ознакомление с законодательной базой об охране данных.
В каком месте тут встраивать БД, что в ней должно храниться?
А может все таки можно без нее? А то маячит перпектива провести лето в базе данных… планы были другие.;)
Извиняюсь за такие вопросы, конечно.
Отредактировано jam (Май 28, 2015 11:26:43)
Офлайн
Без БД никак. Соболезную
Офлайн
А кто-то обещал, что будет легко? Любое веб-приложение (ну ладно не любое) - это трёхуровневая архитектура, если вы не владеете каким-то одним из уровней у вас ничего не получится.
Офлайн
'President Barack Obama “Computer science isn't for someone else. It's for you, here, now.” - а про эти базы он промолчал, нехороший человек…:)
Если серьезно - как должно выглядеть это мое “плюс минус” приложение? Как то сделать эти переменные для каждого юзера отдельные и хранить их?
Офлайн
А тебе разве по китайски сказали?
Попробую еще раз: тебе нужна база данных, в ней ты будешь хранить все результаты расчетов, сессии, пользователей и вообще всё. Какое из этих слов непонятно?
Офлайн
По отдельности понятны почти все, спасибо.:)
Офлайн
jam
Ну почитайте же официальную документацию. Там даже пример есть простого блога, если я не ошибаюсь. Причем, если с английским проблема, то документацию уже идейные ребята перевели на 80% на русский, т.е. проблем не должно составить никаких. Единственное, что конечно лучше сразу разбираться с SQL и параллельно с ОРМ (по-секрету можно сначала ОРМ, а потом уже дочитать по SQL). Так будет и правильно и производительно
Отредактировано 4kpt_III (Май 28, 2015 22:12:41)
Офлайн
Документацию пролистал (далеко не все понятно), книжки есть, пробовал 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)
Офлайн