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


Начал Java, а изучил GoLang

Михаил Попов    15.11.2021 19:21    GoLang     нет комментариев

Удивительно, но когда я делал картинку предыдущего поста, то не знал, что на ней изображен символ языка GoLang.

В общем Java вообще ни как не пошла. Прошел курс для чайников -- 

Зато очень понравился курс по GoLang - https://stepik.org/course/54403 и даже удалось получить сертификат с отличием - https://stepik.org/cert/1178372  Чему я очень рад.

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

Начал изучать Java

Михаил Попов    15.06.2021 09:41    Java     нет комментариев

Выбрал базовый курс по Java на Stepic.org

Пока что все выглядит, как в анекдоте "Два плюс два равно четыре, а теперь решите тригонометрическое уравнение."

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

Зачем мне Java, не случиться ли с ней тоже самой что с Machine Learning или Django? Надеюсь, что нет.

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

Бложья косметика

Михаил Попов    24.01.2021 23:35    Жизнь     нет комментариев

Решил немного освежить сайт с блогом. Убрал какие-то странные пункты меню и оставил только разделы блога.

Очень давно не программировал на Python, и уж тем более забыл, как работает Django. В моей рабочей практике этот инструмент не пригодился. Жаль, что полученные знания пропали, и если уж взглянув на код на Python я еще смогу в чем-то разобраться, так как периодически смотрю на код в нашем CI, то вспомнить, как устроен фреймворк Django вряд ли смогу.

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

Курс по 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. И вот сейчас мы запускаем новый сервис - Бизнес-старт....

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

Модуль 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