Архив метки: Django

Django Two Factor Face Authentication

Django Two Factor Face Auth — это модуль аутентификации, который обеспечивает дополнительный уровень безопасности с помощью распознавания лиц. Модуль предоставляет как внутренний, так и внешний код, необходимый для регистрации и регистрации пользователя с обнаружением и распознаванием лиц. Построен с использованием face_conition и ‘Современное распознавание лиц, построенное с глубоким обучением. Модель имеет точность 99,38% на метках Faces в диком тесте. Быстрый старт Добавьте «django-two-factor-face-auth» в настройку INSTALLED_APPS следующим образом: INSTALLED_APPS = [ … ‘django_two_factor_face_auth’, ] Включите URLconf django-two-factor-face-auth в ваш проект urls.py следующим образом: путь ( ‘/’, включает ( ‘django_two_factor_face_auth.urls’ ) ), запустить python manage.py migrate создать модели django-two-factor-face-auth. Теперь вы можете запустить сервер и получить доступ accounts/register ( создать новую учетную запись с идентификатором лица ) и accounts/login URL ( для входа в систему с использованием имени пользователя / пароля и идентификатора лица ) Прочитайте подробную документацию, чтобы переопределить шаблоны по умолчанию и правильно настроить приложение Статья взята с сайта: https://github.com/filipzelic/django-two-factor-face-auth

Пользовательская аутентификация без пароля в Django

Бэкэндс аутентификации позволяет изменить метод проверки учетных данных ваших пользователей. Для веб-сервисов, то есть аутентификации Facebook, у вас нет доступа к пользовательским данным, таким как пароль. Без пароля ( не похоже на случайную строку ) мы не сможем создать пользователя в django. Подключение Facebook предоставляет вам информацию о текущем аутентифицированном пользователе. Бэкэндс аутентификации позволяет изменить метод проверки учетных данных ваших пользователей. Пример использования пользовательского бэкэнда аутентификации: Для веб-сервисов, то есть аутентификации Facebook, у вас нет доступа к пользовательским данным, таким как пароль. Без пароля ( не похоже на случайную строку ) мы не сможем создать пользователя в Джанго. Подключение Facebook предоставляет вам информацию о текущем аутентифицированном пользователе. Но для поддержания декоратора login_required или пользователя request.user вам все равно нужно, чтобы они вошли в систему с помощью Django.  Вот где приходит бэкэнд аутентификации. from django.contrib.auth.backends import ModelBackend from peeldb.models import User class PasswordlessAuthBackend(ModelBackend): «»»Log in to Django without providing a password. «»»… Читать далее »

Добавление личных сообщений и чатов на сайте — Часть 2 (Счётчик диалогов и чатов с непрочитанными сообщениями)

Выдалось свободное время, чтобы подкорректировать личные сообщения на сайте. Данный функционал используется не особо часто, поэтому не прилагаю больших усилий к его улучшению, хотя пора уже привести данный функционал к адекватной работе. Раньше имелась очень большая недоработка, которая заключалась в том, что не показывался счётчик диалогов с непрочитанными сообщениями, что приводило к тому, что пользователей, которому присылали сообщение, просто не обращал на него внимания, поскольку не знал об этом сообщений. Теперь я наконец исправил этот недостаток. И в рамках предыдущего кода покажу, какие были добавлены исправления. Я размышлял над двумя вариантами организации счётчиков непрочитанных сообщений. Вернее одним вариантов и его более продвинутой версией. При каждом запросе проверять все чаты, выбирать из них последние сообщения и проверять, является ли автором авторизованный пользователь, для которого нужно проверить данное сообщение. Если он не является автором, то проверяем, прочитано ли данное сообщение, если нет, то данный диалог для данного пользователя считаем непрочитанных. Количество таких диалогов будем считать… Читать далее »

Добавление личных сообщений и чатов на сайте — Часть 1

По сложившейся традиции расскажу о своих опытах по внедрению нового функционала на сайте. На данный момент этим функционалом являются личные сообщения между пользователями. Конечно, это сейчас работает не так хорошо, как в известных социальных сетях… но в итоге всё будет работать. Главное фидбек на форуме , пожалуйста. Итак. Очень хотелось добавить личные сообщения на сайте, тем более, что я уже обмолвился об этом полгода назад. Оставался вопрос, как вообще это реализовать. При поиске по интернету удалось наткнуться на вариант, когда формируется следующая модель данных. Id сообщения from_user — отправитель to_user — получатель pub_date — дата сообщения message — контент сообщения Попытался реализовать данный вариант, но меня остановило то, что вдруг после личных сообщений я захочу сделать чаты? Так почему бы сразу не заложить основу для чатов? Модели Chat и Message Это был бы отличный вариант для дальнейшего развития ресурса. Но в данном случае требуется создать две модели Chat и Message . # -*- coding: utf-8 -*-   from django.db import models from… Читать далее »

Django работа с переменными в шаблоне

Работа с переменными в шаблоне Django требует некоторых манипуляций, следовательно в данной статье мы их и разберем Создайте тег шаблона: Приложение должно содержать templatetagsкаталог, на том же уровне models.py, views.pyи т.д. Если это уже не существует, создайте его — не забудьте __init__.pyфайл , чтобы обеспечить каталог рассматривается как пакет Python. Создайте файл с именем define_action.pyвнутри каталога templatetags со следующим кодом: from django import template register = template.Library() @register.assignment_tag def define(val=None): return val Примечание.@register.assignment_tag используется в Djnago1.9 в Djnago2.0 данный метод устарел и можно воспользоваться @register.simple_tag Примечание. Сервер разработки не будет автоматически перезагружен. После добавления templatetagsмодуля вам нужно будет перезагрузить сервер, прежде чем вы сможете использовать теги или фильтры в шаблонах. Затем в вашем шаблоне вы можете присвоить значения контексту следующим образом: {% load define_action %} {% if item %} {% define «Edit» as action %} {% else %} {% define «Create» as action %} {% endif %} Would you like to {{action}} this item? Пример использования проверки последовательности: from… Читать далее »

Django Debug Toolbar установка

Установка Каждый из следующих шагов должен быть настроен, чтобы Django Debug Toolbar работал корректно Полуить код Рекомендуемый способ установить Django Debug Toolbar через pip: $ pip install django-debug-toolbar Если вы не знакомы с pip, вы также можете получить копию каталога debug_toolbar и добавить его к библиотекам Python. Это можно осуществить с помощью следующей команды: $ pip install -e git+https://github.com/jazzband/django-debug-toolbar.git#egg=django-debug-toolbar Предпосылки Убедитесь, что django.contrib.staticfiles настроен правильно, и добавьте debug_toolbar в настройку INSTALLED_APPS: INSTALLED_APPS = [ # … ‘django.contrib.staticfiles’, # … ‘debug_toolbar’, ] STATIC_URL = ‘/static/’ Если вы выполняете обновление с предыдущей версии, вам следует просмотреть журнал изменений и найти конкретные инструкции по обновлению. Настройка URLconf Добавьте URL панели отладки в URLconf вашего проекта следующим образом: from django.conf import settings from django.conf.urls import include, url # For django versions before 2.0 from django.urls import include, path # For django versions from 2.0 and up if settings.DEBUG: import debug_toolbar urlpatterns = [ path(‘__debug__/’,… Читать далее »

Полная инструкция установки Python Django Postgres Nginx

sudo nano /etc/default/locale LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LC_TYPE=en_US.UTF-8 locale-gen en_US.UTF-8 dpkg-reconfigure locales Создаем нового пользователя: root@servername:#> useradd username -s /bin/bash -g sudo -m -p pass root@servername:#> passwd username Ставим nginx (на хостинге, скорее всего уже установлен): sudo apt-get install nginx Ставим супервизор (будет запускать проект, в случае падения): sudo apt-get install supervisor Устанавливаем postgreSQL, virtualenv, Django и пр. sudo apt-get install postgresql sudo apt-get install postgresql-server-dev-all sudo apt-get install python-dev sudo apt-get install python-setuptools sudo apt-get install virtualenv sudo apt-get install libjpeg8 libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev sudo apt-get install python-pip Разворачиваем виртуальное окружение и запускаем его virtualenv /home/my_env cd /home/my_env source bin/activate Ставим Джангу, Гуникорн, разворачиваем проект и приложение pip install django gunicorn django-admin startproject my_project cd my_project django-admin startapp my_app Ставим адаптер для postgreSQL pip install psycopg2 Если критует пробуй это sudo apt-get install python3-dev Текстовый редактор и библиотека для картинок, остальное — по желанию pip install django-ckeditor pip install… Читать далее »

Django 1.8. Авторизация через социальные сети с помощью django-social-auth

Авторизация на сайтах через социальные сети очень удобна, не надо заполнять регистрационные формы и т.д., вам достаточно нажать на соответствующую кнопку и вас авторизует сам сайт, при этом нужные данные он сможет получить с сайта источника (той социальной сети, с которой выполняется авторизация). На своих проектах я использую клёвую библиотеку django-social-auth, до неё пробовал django-ulogin, но сам сервис uLogin мне не понравился (мои сумбурные заметки об этом). На пыхе также обсуждали другие библиотеки, в частности loginza, но отзывы о ней плохие, поэтому даже не пробовал. В любом случае сервисы — это сервисы, и зависимость от сервисов это больше проблема (частые падения сервисов, убогие виджеты и внешний вид без кастомизаций и т.п.) чем зависимость от библиотеки, которая проксирует запросы к конечным «социальным сетям». Далее будем обсуждать только django-social-auth. Вообще, нам интересно два репозитория: Основной, от omab; И второй, со свежой поддержкой русских социалок от krvss, в который я пулял фиксы. Регистрации в сетях Для начала нам надо получить ключи от необходимых… Читать далее »