Допустимо ли написание кода модели без ORM в классе модели ORM?

Сброс CSS (или «Сброс CSS») - это короткий, часто сжатый (миниатюрный) набор правил CSS, который сбрасывает стиль всех HTML-элементов на согласованную базовую линию.

В случай, который вы не знали, у каждого браузера есть своя таблица стилей «пользовательский агент» по умолчанию, которую он использует, чтобы сделать неустановленные веб-сайты более четкими. Например, большинство браузеров по умолчанию делают ссылки синими и посещенными ссылками фиолетовыми, дают таблицы определенное количество границ и отступов, применяют переменные размер шрифта к H1, H2, H3 и т. Д. И некоторую величину заполнения для почти всего. Вы когда-нибудь задавались вопросом, почему кнопки Submit выглядят по-разному в каждом браузере?

Очевидно, это создает определенное количество головных болей для авторов CSS, которые не могут понять, как сделать их сайты одинаковыми в каждом браузере.

Используя Сброс CSS, авторы CSS могут заставить каждый браузер сбросить все его стили до нуля, тем самым избегая различий между браузерами как можно больше

blockquote>

. http://www.cssreset.com/what-is-a-css-reset/

0
задан davidism 14 March 2019 в 05:55
поделиться

1 ответ

TL; DR: нормально поместить функцию в класс модели, однако, если вы хотите защищенного входа в систему, вам нужно будет передать информацию для входа в систему в токене, используя что-то вроде Flask-Login (я не уверен, что эквивалентно расширение для django).

Размещение функции внутри класса - это хорошо, однако это не очень безопасно для входа в систему, поэтому я бы посоветовал следовать руководству по реализации расширения безопасного входа в систему.

Например, в одном из моих проектов функция представлений для страницы входа в систему выглядит следующим образом:

@user.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm(next=request.args.get('next'))

    if form.validate_on_submit():
        u = User.find_by_identity(request.form.get('identity'))

        if u and u.authenticated(password=request.form.get('password')):
            if login_user(u, remember=True) and u.is_active():
                # Handle optionally redirecting to the next URL safely.
                next_url = request.form.get('next')
                if next_url:
                    return redirect(safe_next_url(next_url))
                return redirect(url_for('user.settings'))
        else:
            flash('Identity or password is incorrect.', 'error')

return render_template('user/login.html', form=form)

Обратите внимание, что u.authenticated - это функция в моем классе модели пользователя, которая проверяет хэш пароля пользователя. правильно:

    def authenticated(self, with_password=True, password=''):

    #Ensure a user is authenticated, and optionally check their password.
    if with_password:
        return check_password_hash(self.password, password)

    return True
0
ответ дан polymath 14 March 2019 в 05:55
поделиться
Другие вопросы по тегам:

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