Python. Библиотека flask-sqlalchemy. Часть 3

Начало — Часть 1, Часть 2

4. Авторизация пользователей

Приведу некоторые соображения, а потом выложу весь код архивом.

1. Для реализации авторизации используем дополнительную библиотреку  flask-login, которую предварительно устанавливаем командой pip install flask-login.

2. Из модуля flask-login используем класс UserMixin для созданяи объекта User. При этом оказалось (по крайней мере я так понял), что идентификатор должен обязательно назваться id. Поэтому я внес это изменения в базу данных.

3. После прохождения авторизации в шаблоны вносим такой код, чтобы гостям и авторизованным пользователям показывать разный текст. Привожу содержимое файла base.html

<html>
  <head>
    {% if title %}
    <title>{{title}} </title>
    {% else %}
    <title>Наши новости</title>
    {% endif %}
  </head>
  <body>
<a href = "/">Главная </a>&nbsp
<a href = "/list"> Список пользователей</a>&nbsp

{% if current_user.is_authenticated %}
 Вы вошли как  <a class="navbar-brand" href="/logout">{{ current_user.name }}</a>
{% else %}
 <a href = "/reg">Регистрация </a>&nbsp
<a href = "/login">Войти </a>
{% endif %}
    {% block content %}{% endblock %}  </body>
</html>

В данном случае в шапке будет написано, что Вы вошли как … И на имени будет кнопка выход.

5. Весь код до аворизации

Код my_news

6. Что дальше?

Надо еще дописать:

  • модуль добавления статьи — делается легко на основе авторизации, только поля другие, можно для начала рубрику не указывать;
  • удаление записи — у меня в функции list закоментировано как удалять записи, единственно надо получить ключ удаляемой записи;
  • редактирование.

 

Поделиться:
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Facebook
  • Twitter
  • LiveJournal
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • StumbleUpon
  • Technorati
  • БобрДобр
  • Memori.ru
  • МоёМесто.ru

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.