• Работа с железом через web на python?

    @nirvimel
    каждый запрос к странице производит прямой запрос к устройству на порту

    Довольно плохое решение.
    Во-первых, веб-сервер и работающая с железом программа должны запускаться в разных процессах.
    Во-вторых, для коммуникации между процессами можете взять что-то типа pyzmq причем со стороны веб-сервера это нужно делать асинхронно, например, с использованием gevent + gevent-zeromq
    Ответ написан
    Комментировать
  • Простая корзина на Django?

    @KIN1991
    Python, PHP developer
    Все просто при нажатии на кнопку купить, вам следует отправлять в сессию корзины id-ик картины, когда переходите к оформлению заказа просто делаете запрос к базе с выводом необходимой вам инфы по id-ам которые у вас есть в сессии.
    <a href="#" data-id="1">Название картины</a>
    Вьюха корзины
    def cart(request,id):
        if 'cart' not in request.session:
            request.session['cart'] = list()
        request.session['cart'].append(int(id))
        ....
        return ...

    Ну и вьюха оформления
    def checkout(request):
        cart = Images.objects.filter(pk__in=request.session['cart'])
        ....

    Как то так
    Ответ написан
    4 комментария
  • Как НЕ учить языки?

    onqu
    @onqu
    weasy
    Все просто, чуть более чем очень. Нужно понимать, как можно решить задачу (в вашем случае это программирование) и знать, как пользоваться инструментом (в вашем случае это язык) для ее решения. Решений и инструментов может быть больше одного. Также решения могут зависеть и от инструментов, то есть зная, как решить с одним инструментом у вас не будет знаний, как решить с другим, более того, третий инструмент может решать задачу совершенно другим способом, а четвертый - бессилен.

    Декомпозировали.

    Берем понравившуюся вакансию, по которой желаем работать. Придумываем себе аналогичные задания из пункта обязанностей. Для решения заданий используем инструменты из пункта требований. Развлечение со сборниками задач вам могут ничем и не помочь в том, с чем вы собираетесь работать. Зато развлечетесь.

    Ave!
    Ответ написан
    1 комментарий
  • Где пройти курс по "Design patterns в python"?

    @endemic
    Посмотрите эти книги. Это конечно не курсы, но как раз Паттерны + Питон

    Англ
    Перевод
    Ответ написан
    Комментировать
  • Какой самый популярный "язык" для шаблонов?

    @bIbI4k0
    Питоню
    twig/jinja2
    Ответ написан
    Комментировать
  • Зачем нужен RESTful API?

    @marazmiki
    Укротитель питонов
    Вы вот тут про REST пишите, а имеете в виду, вероятно, django-rest-framework (лучшее, на мой взгляд, существущее решение для организации RESTful API для джанги).

    Для начала ответьте себе на вопрос: а нужен ли вообще API Вашему сайту. Если объективно нужен (например, с сайтом взаимодействует мобильное приложение, причём не только читает данные, но и отправляет; или фронтэнд построен таким образом, что от сервера требуются только данные, а отрисовка HTML происходит на клиенте; или Вы предоставляете информацию "неживым" пользователям — роботам), то RESTful API хороший выбор. И DRF, соответственно, тоже.

    Если всего этого нет и Вас вполне устраивает схема, когда бэкенд генерирует весь HTML и отдаёт его клиенту, то DRF, REST, да и вообще API в целом не нужны.
    Ответ написан
    1 комментарий
  • Как на CSS сделать блоки "нестандартной" (не прямоугольной) формы?

    @GreatRash
    Интерактивный туториал: там вверху жмите кнопку "Next Step"
    Ответ написан
    Комментировать
  • Как установить нужный timezone для datetime?

    ur001
    @ur001
    Программист. Искатель. Сноб. Социальный ассоциатор
    Для получения текущего времени с временной зоной (локализованное время) нужно использовать now() не из datetime, а из django.utils.timezone:

    from django.utils.timezone import now

    Чтобы преобразовать уже локализованный datetime в другую временную зону (например во временную зону пользователя):

    from django.utils.timezone import now, pytz
    user_timezone = pytz.timezone(user.timezone or settings.TIME_ZONE)
    now().astimezone(user_timezone)

    Если у вас нелокализованный datetime и вы хотите добавить ему информацию о временной зоне:

    from datetime import datetime
    from django.utils.timezone import pytz
    user_timezone = pytz.timezone(user.timezone or settings.TIME_ZONE)
    user_timezone.localize(now())

    Для того, чтобы Djagno использовало временные зоны для полей Date/Datetime нужно, они должны быть включены в настройках:

    TIME_ZONE = 'Europe/Moscow'
    USE_TZ = True
    Ответ написан
    Комментировать
  • Создать демона на python 2.7 ?

    icCE
    @icCE
    youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
    >И работатет в фоновом режиме без терминала и прочего. Тоесть только показивет собщение ?
    Извените, а куда он будет вам показывать сообщение ? Только если в лог писать.
    Или вы в X выводите инфомацию ?

    В любом случаи вот вам как писать демонов
    stackoverflow.com/questions/473620/how-do-you-crea...
    habrahabr.ru/post/176067

    Для запуска при старте системы надо написать скрипт для старта вашей программы. В теории можно и на bash забацать демона. Если вам интересен этот вариант, я дам пример скрипта.
    Ответ написан
  • Парсим страницу. Как из относительного урла получить полный урл?

    @xandox
    https://docs.python.org/2/library/urlparse.html#ur...

    Там много чего может встретиться, лучше готовым пользоваться сразу
    Ответ написан
    Комментировать
  • Как создать exe файл в питоне?

    @zedxxx
    cx_Freeze
    Ответ написан
    Комментировать
  • Как выполнять отложенные задачи на бекенде?

    Альтернативный подход - вообще не хранить текущий статус пользователя. Вместо этого, хранить журнал изменений этого статуса и вычислять его текущее значение по требованию. Мне привычно рассуждать в терминах Django, на её ORM и будем ориентироваться. Пусть у вас есть своя собственная модель для пользователя - User в приложении my_auth. Пусть у него может быть два значения статуса: пустое (None) и premium - для тех, кто оплатил подписку на год. Журнал изменений статуса:

    from django.db import models
    from my_auth.models import User
    
    class StatusEvent(models.Model):
        EVENT_TYPES = [
            ('subscription', 'User subscribed to premium')
        ]
        user = models.ForeignKey(User, related_name='events')
        time = models.DateTimeField(auto_now_add=True)
        type = models.CharField(max_length=16, choices=EVENT_TYPES)
    
        class Meta:
            ordering = '-time'


    Функция вычисления статуса определена в модели User:

    from datetime import datetime
    from django.contrib.auth.models import User as DefaultUser
    
    class User(DefaultUser):
        @property
        def status(self):
            event = self.events.filter(type='subscription').first()
            if event and datetime.now() - event.time < self.subscription_duration:
                return 'premium'


    Здесь subscription_duration - длительность действия подписки, значение типа datetime.timedelta. Ну или relativedelta из dateutil можно использовать, оно удобней. Да, это влечёт постоянные проверки статуса, но не думаю, что это такая уж большая проблема в сравнении с тем, чтоб городить ещё один процесс крона или Celery, чрезмерно усложняя систему.
    Ответ написан
    Комментировать
  • Различия между классом и объектом?

    Weageoo
    @Weageoo
    Класс = срособ организации полей, методов и пр. = инкапсулированный «кусок» функциональности, описание структуры будущих объектов + своё пространство имён внутри.

    Статическая составляющая класса — static-методы и static-поля — это логический способ организации функциональности, общей для любого объекта выделенной сущности. Тут значение имеет логическая составяющая — например, статический метод Parse есть и в классе int, и в классе Guid — но его функциональность различна и соответствует выделенной сущности. Для static-составляющей класса, в принципе, его можно воспринимать как пространство имён. Но пространсто имён нельзя инициализировать, нельзя создать объект пространства имён.

    Объект = экземпляр класса = объект, типом которого является какой-то класс = класс после инициализации = сущность в памяти, обладающая поведением, способная изменять своё состояние.
    Ответ написан
    Комментировать
  • Различия между классом и объектом?

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

    Некоторые функции в классе могут быть использованы только с набором данных (т.е. объектом), который передается неявно, когда вы указываете $object->method().

    Другие функции не требуют объекта, поэтому могут быть вызваны напрямую из класса.

    С этой точки зрения очень логично выглядит Python, где у любого метода есть явный аргумент self, указывающий на объект, из которого был вызван метод. А запись object.method(5) является краткой записью ObjectClass.method(object, 5).
    Ответ написан
    1 комментарий