Category index for “python”

  • SQLALchemy vs Django ORM

    SQLALchemy vs Django ORM

    Если большую часть времени вы работаете с Django ORM и вам надо перейти на SQLALchemy - то вы встретите ряд концептуальных отличий. В этом посте опишу часть из них, на мой взгляд заметных больше всего.

    Все примеры для SQLAlchemy буду приводить в асинхронном коде, в контексте PostgreSQL. Версия Django - 4.2, SQLALchemy - 2.0.

    Полные примеры можно найти тут https://github.com/st4lk/sqlalchemy-vs-django-orm, в тексте для краткости код приведен не полностью.

    Коментарии Читать далее
  • Sublime Text и Language Server Protocol

    Sublime Text и Language Server Protocol (LSP)

    Language Server Protocol (LSP)

    Language Server Protocol (LSP) - протокол для общения между IDE и языковым сервером. Сервер предоставляет такие функции, как автокомплит, переход к функции (goto) и прочее. Т.е. когда IDE нужно показать автокомплит на языке, скажем, python - происходит запрос к специальному серверу. В ответе возвращаются необходимые данные, которые IDE уже может отобразить. Радует то, что это инициатива крупной компании - Microsoft.

    Коментарии Читать далее
  • Python tips & tricks

    Python tips & tricks

    Недавно прочитал книгу Марка Лутца “Learning Python”, 5-ое издание. Привожу список самых интересных фишек (по моему мнению) оттуда, что-то вроде конспекта.

    Коментарии Читать далее
  • Python logging на каждый день

    В процессе написания программы, скрипта, часто бывает нужно вывести какую-либо отладочную информацию или сообщить о каком-то событии. Известно, что для этих целей есть встроенный модуль logging. Однако обычно у меня бывает так: времени в обрез, а все эти настройки логов (handlers, loggers, formatters и пр.) никак не могу запомнить, и на скорую руку вставляю просто print. Потом, если скрипт используется часто или его надо отдать заказчику - хочется чтобы все эти сообщения записывались в файл для последующего анализа. И приходится все переделывать с использованием logging. Так вот, чтобы не держать в голове все настройки логирования, пишу этот пост с необходимыми для работы параметрами.

    Коментарии Читать далее
  • Форматирование unicode строк

    Вы знали, что если одно из значений строкового выражения с оператором % - unicode, то вся результирующая строка будет тоже unicode?

    >>> "Hello, %s" % u"Alex"
    u'Hello, Alex'
    >>> "Hello, %s" % u"Алексей"
    u'Hello, \u0410\u043b\u0435\u043a\u0441\u0435\u0439'
    
    Коментарии Читать далее
  • Парсинг url'а, содержащего unicode параметры, используя urlparse.parse_qs

    Задача: получить словарь параметров URL’a. Например, имеем адрес:

    http://example.com/?key=value&a=b
    

    и нужно получить такой словарь:

    {'key': ['value'], 'a': ['b']}
    

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

    In: http://example.com/?key=value&a=b&a=c
    Out: {'key': ['value'], 'a': ['b', 'c']}
    
    Коментарии Читать далее
  • Функции с изменяемыми значениями по умолчанию в python'e

    Python mutable default arguments

    В python’е значения функции по умолчанию создаются в момент выполнения инструкции def, а не при каждом вызове функции. Если значение - неизменяемый объект (например строка, целое число, кортеж), то никаких подводных камней здесь нет. А вот если объект изменяемый (например список), то есть возможность попасть в ловушку. Вот пример:

    def foo(l=[]):
        l.append('x')
        return l
    

    Казалось бы, при каждом вызове foo() будет возвращаться список [‘x’]. Но:

    Коментарии Читать далее
  • Скрипт для скачивания музыки вконтакте

    Скрипт для скачивания музыки вконтакте

    Беглый поиск соответствующего скрипта на python’е не дал результов. В статье на хабре ссылка не работает. Решил написать свой велосипед, он доступен здесь.

    Запуск (нужен установленный python интерпретатор):

    python vkcom_audio_download.py
    

    Проверял на python 2.6 и 2.7. Никаких дополнительных библиотек не требуется.

    Коментарии Читать далее
  • MobileESP: Скрипт определения мобильного устройства посетителя

    Скрипт полезен, если вы хотите показывать разные версии сайта для обычных компьютеров и мобильных устройств. Большое количество методов для определения вида девайса. Доступен на разных языках программирования, включая python. Собственно порт на python был написан мной по просьбе freelance заказчика.

    Коментарии Читать далее
  • Отладка django проекта с помощью встроенного python отладчика pdb

    Я использую sublime-text в качестве редактора python кода. В нем нет встроенного отладчика, поэтому для отладки django проектов я в основном делал так:

    print var_name
    

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

    Это можно сделать с помощью встроенного python отладчика pdb:

    import pdb; pdb.set_trace()
    
    Коментарии Читать далее
  • Облачный сервис Openshift

    Облачный сервис Openshift

    Я знаю немного хостингов с бесплатным тарифом и с поддержкой python. Это Google App Engine и Alwaysdata. И вот недавно узнал про замечательный проект Openshift от RedHat, на котором и работает этот блог. Для начала небольшой обзор упомянутых хостингов.

    Коментарии Читать далее