Сегодня 8 января, среда ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7278
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
EVILEG - Практическое программирование
EVILEG - Практическое программирование
Голосов: 0
Адрес блога: http://evileg.com/
Добавлен: 2016-12-27 09:39:59
 

Materialized Path в PostgreSQL

0000-00-00 00:00:00 (читать в оригинале)

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

Распространёнными подходами для организации древовидных структур являются:

Adjacency List
Список смежных вершин

Организация структуры данных заключается в том, что каждый объект хранит информацию о родительском объекте, то есть в строке таблицы имеется дополнительное поле, в котором указывается ID объекта, в который вложен данный объект.
Nested Set
Вложенное множество
Вложенные множества хранят информацию не Только о так называемых левом и правом ключе, а также уровне вложенности. Данный вариант организации структуры данных удобен для чтения, но более тяжело поддаётся модификации.
Materialized Path
Материализованный путь
Идея этой структуры данных заключается в том, что каждая запись хранит полный путь к корневому элементу дерева.

Рассмотрение этих структур данных было вызвано необходимостью внедрения на сайт поддержки комментариев для статей.

Статья впервые появилась на EVILEG - Практическое программирование



Получение переменных в шаблоне из файла settings.py в Django

0000-00-00 00:00:00 (читать в оригинале)

В файле settings.py в Django мы храним всю необходимую конфигурационную информацию нашего приложения, в состав которой может входить URL сайта или пути к определённым директориям, в которых хранятся специальный файлы и многая другая информация. 

И иногда требуется данные переменные использовать в шаблонах, тот же самый URL сайта. Но просто прописав в шаблоне эту константу через {{ SITE_URL }}, воспользоваться данной переменной не получится. Одним из способов решения данной задачи является регистрация шаблонных тегов, которые будут выполнять определённый функционал, например забирать атрибут из файла настроек по его имени.

Статья впервые появилась на EVILEG - Практическое программирование



Добавление комментариев на сайт с Django

0000-00-00 00:00:00 (читать в оригинале)

Взявшись за реализацию комментариев на сайте под Django, я с удивлением обнаружил, что Django не предоставляет никаких модулей для реализации комментариев. Вернее он предоставлял его раньше, это был модуль django.contrib.comments, но в версии 1.7 его объявили как deprecated и предложили либо пилить самостоятельно, либо воспользоваться чем-нибудь вроде Disqus. Хорошо, он вроде тоже поддерживает подсветку синтаксиса кода, но... в статьях одна подсветка, в комментариях другая - это будет некрасиво. 

Поэтому будем внедрять собственный велосипед и ловить свои баги.

Для реализации комментариев необходимо:

  • Добавить новую модель, назовём её Comment;
  • Добавить представление, которое будет обрабатывать добавление комментария;
  • Добавить форму для ввода комментария;
  • Воспользоваться для организации древовидной структуры подходом Materialized Path;

Статья впервые появилась на EVILEG - Практическое программирование



Внедрение поиска по сайту с пагинацией результатов

0000-00-00 00:00:00 (читать в оригинале)

Для организации поиска на сайте, который основан на Django, и использует базу данных PostgreSQL можно использовать модуль для поиска по этой базе данных, поставляемый с Django. Тем более, что данный поиск обеспечивает полнотекстовый поиск в достаточной мере для небольшого ресурса. 

Но для того, чтобы выдача поисковых запросов походила больше на главную страницу, добавим возможность пагинации страниц выдачи, а результаты будут выводиться по 10 штук на одной странице. И для этого также будем использовать модуль django_bootstrap3.    

В итоге имеем следующий план действий:

  1. Добавляем приложение для организации поиска;
  2. Добавляем url поиска;
  3. Добавляем форму поиска;
  4. Описываем шаблон страницы поиска.
  5. Описываем представление для обработки выдачи поиска;

Статья впервые появилась на EVILEG - Практическое программирование



Контактная форма на Django

0000-00-00 00:00:00 (читать в оригинале)

Продолжая разработку сайта, хочу поделиться примером кода по добавлению контактной формы на сайте на Django. Уже были статьи с различными формами, например, для добавления комментариев, но раз говорим обо всём процессе в целом, то и не будем обходить и эту тему стороной.

Тем более, что для сайта на Wordpress это было для меня больной темой. Наверное, всему виной была лень, ибо у меня так и не возникло желания начать разбираться с PHP, чтобы набросать контактную форму самостоятельно (в итоге был задействован очередной плагин).

А если учесть, что разработка на Django, предполагает достаточно частую работу с различными формами данных и при этом имеется модуль для работы с почтовыми сервисами, то и добавление подобной формы не представляет особого труда.

Статья впервые появилась на EVILEG - Практическое программирование



Страницы: 1 2 

 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.