• Какие есть бесплатные IDE для Python?

    YardalGedal
    @YardalGedal
    yeah boy
    Sublime Text 3
    Ответ написан
    Комментировать
  • Как найти удалённую практику для начинающего python программиста?

    sim3x
    @sim3x
    while not is_person_working:
       Ходить на собеседования и узнавать, что нужно компаниям и людям
       Учить, то что они хотят не переставая ходить на собеседования
    Ответ написан
    3 комментария
  • Как использовать bootstrap при работе с Django?

    @Lorloz
    вот хорошая батарейка
    https://github.com/dyve/django-bootstrap3
    использую во всех проектах, сильно упрощает разработку :)
    Ответ написан
    Комментировать
  • Какие знания нужны для Python Junior-а?

    alxpy
    @alxpy
    Мне когда-то на подобный вопрос дали развернутый ответ (еще раз спасибо этому человеку). Я не смог найти ссылку на тот форум, но сам ответ у меня был сохранен:
    Вот список знаний, которыми должен обладать потенциальный Junior Python developer:

    Уметь самообучаться, находить нужную информацию.

    Иметь общие представления о том, что такое ОС и зачем она появилась.
    Понимать что такое процесс и как он “живёт” в ОС.
    Понимать что такое поток.
    Понимать что такое сокеты и зачем они нужны.
    Иметь представление о том, как устроен стек протоколов TCP/IP.

    Понимать что такое Linux.
    Уметь работать в sh.
    Понимать что такое виртуализация и знать какие бывают типы.
    Уметь настраивать виртуальные машины через vagrant или подобные инструменты.
    Уметь работать с GIT(создавать ветки, разрешать конфликты, etc)

    Понимать что такое ООП, на чём он основан и почему им удобно пользоваться.
    Понимать что такое императивный и декларативный стиль.
    Понимать что такое MVC
    Понимать что такое декоратор(стандартный вопрос на собеседовании) и зачем он нужен.
    Понимать что такое замыкание.
    Понимать что такое интроскпекция.
    Понимать асинхронную концепцию программирования.

    Уметь работать с БД(хотя бы CRUD, join)
    Уметь работать с nginx(хотя бы проксирование настроить)

    (можно просто написать - “прочитать Лутца”, но выделю пару вопросов)
    Знать чем отличаются new style классы от old style.
    Знать чем отличаются Python2 от Python3
    Знать чем отличается str от unicode и почему в программе нужно работать с unicode.
    Понимать алгоритм импорта модулей в Python.
    Понимать что такое генераторы и итераторы.
    Понимать что такое дескрипторы.
    Понимать что такое GIL и зачем он нужен.
    Понимать что такое WSGI и зачем он появился.

    + Уметь писать тесты, понимать зачем это нужно.
    + Практические и теоритические основы по framework.

    + выполнить норматив по ГТО
    + не пить и не курить.

    Так же можешь потренироваться по заданиям Юры Юревича.

    Заданиям Юры Юревича - тыц.
    Ответ написан
    4 комментария
  • Как использовать paginator?

    sim3x
    @sim3x
    Делаем все исходя из того что ты делаешь все через CBV. Тот мануал, что ты проходишь касается простых вью-функций.
    Стоит попробовать писать как CBV так и функциональные вью.

    0. Установи django-debug-toolbar
    1. Потыкайся по всем вкладкам дебуг тулбара. Это важная часть разработки
    2. Пошарься по переменным, которые у тебя передаются в темплейт. Тебя заинтересуют такие переменные как object_list, post_list. Это синонимы того списка, что тебе выдал queryset.
    Второе название (пост_лист) это переменная из модели из подкласса Meta
    verbose_name_plural + '_' + 'list'
    class PostsListView(ListView):
        queryset = Post.objects.all().order_by('-datetime')
        # context_object_name это та переменная о которой я говорил выше
        # можно задать свое имя
        # context_object_name = "car_list"    
        paginate_by = 10  # количество постов на страницу


    доплинк
    stackoverflow.com/a/5910325/1346222

    замечание по поводу модели

    class Post(models.Model): 
        title = models.CharField(max_length=255)
        datetime = models.DateTimeField(u'Дата публикации')
        content = models.TextField(max_length=10000)
    
    # было
    # def unicode(self):
    #    return self.title
    
    # Надо
    def __unicode__(self):
        return self.title
    
    
    # было
    # def get_absolute_url(self):
    #   return "/blog/%i/" % self.id
    
    # а стоит использовать всю магию джанго
    # в urls.py есть вот такое
    # url(r'^/blog/(?P<pk>\d+)/$', PostDetailView.as_view(), name='blog_post'), 
    # и можно сделать так, чтобы любое изменение urls.py было подхвачено 
    # в модели автоматом
    # те модель сама узнает как стоит делать ссылку на блогпост
        @models.permalink
        def get_absolute_url(self):
            return 'blog_post', (), {'pk': self.pk}


    upd:
    {% if is_paginated %}
    <ul class="pagination">
      {% if post_list.number != post_list.previous_page_number %}
        <li><a href="?page={{ post_list.previous_page_number }}">&larr;</a></li>
      {% endif %}
    
      {% for page in post_list.paginator.page_range %}
        {% if page != post_list.number %}
          <li><a href="?page={{ page }}">{{ page }}</a></li>
        {% else %}
          <li class="active">{{ page }}</li>
        {% endif %}
    
      {% endfor %}
      {% if post_list.number != post_list.next_page_number %}
        <li><a href="?page={{ post_list.next_page_number }}">&rarr;</a></li>
      {% endif %}
    </ul>
    {% endif %}


    Вот такая конструкция
    ?page={{ post_list.previous_page_number }}
    просто добавляет к текущему урлу ?page=
    Под урлом я понимаю site.com/blog/
    Ответ написан
    8 комментариев
  • Какие книги или материалы стоит изучить для полного понимания программирования?

    Matvey-Kuk
    @Matvey-Kuk
    Разработчик в Cisco, CA.
    Р. Мартин. "Чистый код"
    Ответ написан
    Комментировать