Flask Academy · Урок

Защита представлений с помощью login_required

Закрывайте маршруты и перенаправляйте анонимных пользователей.

Урок 4 из 413 шагов

«Защита представлений с помощью login_required» — бесплатный урок Flask Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Flask Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Flask Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Some Pages Need a Guard

A dashboard or settings page should never load for a stranger. You protect such routes so only a logged-in user can reach them.

The login_required Decorator

Flask-Login hands you a one-line gate: the login_required decorator. Stack it on any view and anonymous visitors get bounced away.

from flask_login import login_required

Apply It to a Route

Place login_required just below the route decorator. Order matters, so the auth check wraps the view that Flask actually calls.

@app.route("/dashboard")
@login_required
def dashboard():
    return "Welcome back"

What Happens to Strangers

If an anonymous user hits a guarded route, Flask-Login does not show the page. It redirects them to your login view instead.

Tell It Where Login Lives

For the redirect to work, set login_view on the manager. Give it the endpoint name of your login route so it knows the target.

login_manager.login_view = "login"

The next Parameter

Flask-Login appends a next query parameter to the login URL. It remembers where the user wanted to go before being redirected.

Send Them Back After Login

In your login view, read request.args.get for next and redirect there once they sign in. The user lands exactly where they started.

dest = request.args.get("next") or url_for("index")
return redirect(dest)

Customize the Message

You can set login_message to control the flash shown when access is denied. A friendly note beats a confusing silent redirect.

login_manager.login_message = "Please log in first."

Use current_user Inside

Inside a guarded view you can trust current_user is real and authenticated. No need to re-check, the decorator already did it.

@login_required
def profile():
    return current_user.email

Protecting Many Routes

For a whole admin area you can apply login_required per view, or attach it to a blueprint's before_request so every route is covered.

Beyond Just Logged In

login_required only checks that someone is authenticated. For role checks like admin-only, you add your own logic on top inside the view.

Quick Check

An anonymous visitor opens a login_required route. What does Flask-Login do?

Recap

You guarded routes with login_required, set login_view for redirects, and used next to return users home. Your protected pages are locked down. 🛡️

Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Защита представлений с помощью login_required» бесплатный?

Да — полный текст урока «Защита представлений с помощью login_required» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Flask Academy, подпишись на CoddyKit PRO. Курс Flask Academy содержит 4 уроков всего.

Чему я научусь в уроке «Защита представлений с помощью login_required»?

Закрывайте маршруты и перенаправляйте анонимных пользователей. Ты практикуешь Flask Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Flask Academy?

Предыдущий опыт не требуется. Flask Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Защита представлений с помощью login_required»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Flask Academy?

Да. Каждый урок Flask Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Хеширование паролей: никогда не храните открытый текст
  2. Загрузчик пользователей и UserMixin
  3. login_user, logout_user и сеансы
  4. Защита представлений с помощью login_required
← Назад к Flask Academy