Регулярные выражения и пагинатор


Курс по Machine Learning от Andrew Nj из Stanford University пройден

Михаил Попов    06.07.2016 01:17    Алгоритмы     нет комментариев

Ну вот и подошла к концу моя 2,5 месячная эпопея прохождения ставшего давно знаменитым курса Andrew Ng по Machine Learning от‪ ‎Stanford University‬. Хотелось понять, как эта магия устроена изнутри. Оказалось, что это не магия, а просто математика и программирование. Ну что ж, теория с использованием ‪Matlab‬ покорена. Теперь нужно научиться пользоваться на практике распространенными библиотеками на ‪‎Python‬, а также посмотреть на творение от Google - ‪TenzorFlow‬. Тема очень интересная, а глядя на тенденции, происходящие в этом направлении в последнее время, кажется и довольно полезная. Ссылочка на сертификатик - https://www.coursera.org/…/accompl…/certificate/YPTLJ8YWVFNG

Читать полностью

Бизнес-старт для предпринимателей

Михаил Попов    13.05.2016 10:35    1C , Продвижение     нет комментариев

Если кто читал мою страницу в LinkedIn, знают, что я работаю в 1С. Конкретно в команде разработки технологии 1cFresh. На базе этой технологии у нас работает сервис 1С:Предприятие через интернет - 1cfresh.com. И вот сейчас мы запускаем новый сервис - Бизнес-старт....

Читать полностью

Курс "Соло на клавиатуре в английской раскладке" пройден

Михаил Попов    31.03.2016 00:58    Жизнь     нет комментариев

Ура, ура, ура! Наконец то я прошел этот аццкий курс слепого 10 пальцевого набора. Пришлось потратить на него целую вечность и забросить все остальные курсы. Проходил этот курс с 17.02.2016 по 31.03.2016. Итого получилось почти 1,5 месяца.

Читать полностью

Учусь печатать вслепую

Михаил Попов    09.03.2016 15:16    Жизнь     нет комментариев

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

Читать полностью

Про работу и учебу

Михаил Попов    04.02.2016 12:56    Жизнь     нет комментариев

Недавно разместил в закрытой группе по Django пост, мне он показался интересным и я решил его добавить в блог. Читаем...

Я сейчас немного отвлекся от Django, но думаю вернусь сейчас. Нужно Ваши курсы по Django добить и переходить к Статистике и алгоритмам работы с Big Data.

Читать полностью

Модуль views.py

# coding: utf-8
from django.shortcuts import render_to_response

def pages(request, pg_num):
    try:
        pg_num = int(pg_num)
    except ValueError:
        raise Http404

    class Paginator():
        # Параметры пагинатора
        def __init__(self):
            self.pg_num = pg_num
        pg_count = 999 # максимальное количество страниц
        next_pg = min(pg_num + 1, pg_count)
        prev_pg = max(pg_num - 1, 1)
        pg_from = max(pg_num - 3, 1)
        if pg_from > 1:
            pg_from += 1
        pg_to = min(pg_from + 4, pg_count)

    title = 'Страница № {0}'.format(pg_num)
    return render_to_response('page.html', {'title':title, 'paginator': Paginator},
                              context_instance=RequestContext(request))

Модуль urls.py

# coding: utf-8
from django.conf.urls import url

urlpatterns = [
    url(r'^pages/(\d{1,3})/$', pages)
]

Шаблон page.html

{% extends 'base.html' %}
{% load my_filters %}

{% block content %}
Ссылка на эти страницы задается регулярным выражением.<br>
Также ниже используется пагинатор.<br>
<div class="alert alert-warning" role="alert">
  <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
  <span class="sr-only">Error:</span>
  Не заигрывайтесь. Все страницы одинаковые, меняется только заголовок и данные пагинатора.
</div><br>  
Страницы:<br>

<nav>
  <ul class="pagination">
    <li><a href="../{{ paginator.prev_pg }}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>
{% for i in 5|create_range:paginator.pg_from  %}
    <li class="{% if i == paginator.pg_num %}active{% endif %}">
        <a href="../{{ i }}">{{ i }}{% if i == paginator.pg_num %}<span class="sr-only">(current)</span>{% endif %}</a>
    </li>
{% endfor %}
    <li><a href="../{{ paginator.next_pg }}" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li>
  </ul>
</nav>
{% endblock %}

Модуль фильтра templatetags/my_filters.py

# coding: utf-8
from django import template

register = template.Library()

@register.filter
def create_range(value, start_index=0):
    return range(start_index, value + start_index)

Фильтр используется для цикла от x до x + 5 в шаблоне.


blog comments powered by Disqus