Задать вопрос
@MCfun

Я пишу сайт на flask, как сделать сохранение настроек, чтоб когда переходил на нужную страницу, чекбоксы были прожаты?

Пример из html:
{% extends "index.html" %}  
{% block html %} 
<div>Скрыть аватар <input type="checkbox" name="invis_1_bt" {{ old_settings[0] }}></div>
{% endblock %}


Пайтон:
class ACCAUNTS(account_db.Model):
    acc_id = account_db.Column(account_db.Integer, primary_key=True, nullable=False)
    acc_login = account_db.Column(account_db.String, nullable=False)
    acc_password = account_db.Column(account_db.String, nullable=False)
    acc_name = account_db.Column(account_db.String, nullable=False)
    acc_is_banned = account_db.Column(account_db.Boolean, default=False)
    acc_description = account_db.Column(account_db.String, nullable=False, default="")
    acc_avatar = account_db.Column(account_db.String, nullable=False, default="")
    acc_bg = account_db.Column(account_db.String, nullable=False, default="")
    acc_group = account_db.Column(account_db.String, nullable=False, default="USER")
    acc_favourites = account_db.Column(account_db.JSON, default={})
    acc_likes = account_db.Column(account_db.JSON, default={})
    acc_dislikes = account_db.Column(account_db.JSON, default={})
    acc_subs = account_db.Column(account_db.JSON, default={})
    acc_friends = account_db.Column(account_db.JSON, default={})
    acc_settings = account_db.Column(account_db.JSON, default={})
    acc_date = account_db.Column(account_db.DateTime, default=datetime.datetime.utcnow)
    def __repr__(self):
        return 'ACCAUNTS %r' % self.acc_id
.....
@app.route('/login/settings', methods=["POST", "GET"])
def login_settings():
    if check_acc(request.cookies.get('login'), request.cookies.get('password')):
        get_us = get_user_login(request.cookies.get('login'),request.cookies.get('password'))
        return render_template("acc_settings.html",
        old_description=get_us.acc_description,
        old_login=get_us.acc_login,
        old_password=get_us.acc_password,
        old_name=get_us.acc_name,
        old_avatar=get_us.acc_avatar,
        old_bg=get_us.acc_bg,
        old_settings=get_us.acc_settings
        )
    else:
        return redirect("/login")
@app.route('/login/settings_accept', methods=["POST", "GET"])
def settings_accept():
    if check_acc(request.cookies.get('login'), request.cookies.get('password')):
        get_us = get_user_login(request.cookies.get('login'),request.cookies.get('password'))
        invisibles = []
        for i in range(10):
            json_for_save = request.form.get("invis_" + str(i+1) +"_bt")
            if json_for_save:
                invisibles.append("checked=" + json_for_save)
            else:
                invisibles.append("Null")
            if i+1==10:
                print(invisibles)
                get_us.acc_settings = invisibles
                if get_us.acc_settings[9]:
                    print(get_us.acc_settings)
            return redirect("/login/settings")
    return redirect("Тони, ты хочешь взломать сайт?")


Проверки в самом питоне проходят, но попробовав что-то в html вывести, ничего нет. Что делать?
  • Вопрос задан
  • 26 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Фронтенд-разработчик
    11 месяцев
    Далее
  • Академия Эдюсон
    Веб-разработчик Базовый
    9 месяцев
    Далее
  • Skillbox
    Веб-вёрстка
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Использовать БД, печеньки или локальное хранилище, а для установки состояния элемента ввода — соответствующий аттрибут.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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