Сброс CSS (или «Сброс CSS») - это короткий, часто сжатый (миниатюрный) набор правил CSS, который сбрасывает стиль всех HTML-элементов на согласованную базовую линию.
В случай, который вы не знали, у каждого браузера есть своя таблица стилей «пользовательский агент» по умолчанию, которую он использует, чтобы сделать неустановленные веб-сайты более четкими. Например, большинство браузеров по умолчанию делают ссылки синими и посещенными ссылками фиолетовыми, дают таблицы определенное количество границ и отступов, применяют переменные размер шрифта к H1, H2, H3 и т. Д. И некоторую величину заполнения для почти всего. Вы когда-нибудь задавались вопросом, почему кнопки Submit выглядят по-разному в каждом браузере?
Очевидно, это создает определенное количество головных болей для авторов CSS, которые не могут понять, как сделать их сайты одинаковыми в каждом браузере.
Используя Сброс CSS, авторы CSS могут заставить каждый браузер сбросить все его стили до нуля, тем самым избегая различий между браузерами как можно больше
blockquote>
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