• Можно ли делать фронтенд на языке Python?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    В клиент-серверной архитектуре бэкенд - это то, что работает на сервере. Фронтенд - то, что работает у клиента ("толстый клиент").
    И то и то может быть написано на чём угодно, если есть соответствующие механизмы.

    Бэкенд - Python. Это нормально. Универсальный вариант отдаёт по запросу данные и не парится с тем, как они буду визуализированы. REST, GraphQL, SOAP и т.д.

    Фронтэнд, работая на стороне клиента, визуализирует получаемые данные для пользователя. Тут возможна как нативная отрисовка, так и опосредованная (к примеру через браузер).
    Фронтэнд пишется отдельно от бэка. Инструмент - любой подходящий.
    Для отрисовки через браузер (вот, сайт Тостера, к примеру) надо написать клиента на HTML/CSS/JS. Он будет загружаться в браузер и рисовать его средствами.
    Для нативной отрисовки - любая соответствующая системе либа. Хоть MFC в Винде (хотя это уже некромансия - сейчас .NET-библиотеки в фаворе), хоть Carbon (или что там сейчас на Маке?).
    Из линуковых нативных (они же - кроссплатформенные) подойдут GTK, Qt, FLTK и разные надстройки над ними. WxWidget тот же...
    Это я ещё не трогаю тему мобильных устройств...

    Поэтому если не хочется учить разные языки, а ограничиться Python, то фронт на нём МОЖНО писать. Есть биндинги к GTK и Qt. Есть WxPython. Для мобилок можно погрузиться в дивный и чудный мир Kivy (хотя это, скорее, кроссплатформенное решение - работать будет и на десктопах). BeeWare тоже интересно развивается.

    Но если подразумевается написание именно web-клиента, то изучение JS займет меньше времени, чем бесплодные попытки использовать неподходящий инструмент.
    Ответ написан
    1 комментарий
  • В чём проблема с кодом из книги М.Саммерфилда?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Меня всегда это поражало: зачем люди покупают книги, состоящие из скриншотов, листингов и воды? Вот прямо даже интересно. Стоимость - кошмарная: от 1 до нескольких тысяч. Без гарантии, что осилишь и что это пригодится. Одноразовый, по сути, продукт - если осилишь, то, скорее всего, больше к этому не вернёшься...

    Есть, конечно, "Искусство программирования", Драконова книга и т.д. Но их не много.

    А тут - в книге Python 3.0 и очень странные примеры. Про то, как чуть ли не руками читать/писать XML. Длиннющие портянки кода... Это примеры для начинающего? Зачем? Для профессионала? Он и сам разберется...

    Мой совет - бросай это дело. Если с основами языка разобрался - попроходи https://checkio.org/
    Попробуй порешать практические задачки в той области программирования, в которую нацелился (web, ml, gui big-data и т.д.) Найди интересные проекты тебе проекты на github и разоберись как работает, что можно улучшить...
    Реальная практика всегда лучше выдуманной (из 2009 года :-) )

    Прошу прощения, если резко...
    Ответ написан
    Комментировать
  • Почему не работает djangopackages.org?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Сергей Горностаев прав. Я использую расширение для Хрома "frigate-cdn" и поэтому давно не замечал этой проблемы. Хотя даже с ним иногда приходится руками добавлять сайты в список "всегда ходить через прокси".
    Ответ написан
    Комментировать
  • CreateModelMixin: Method Not Allowed. В чем причина?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    О POST и GET - не знает. Читай документацию внимательно. Если ты наследуешь и используешь GenericViewSet, то у него есть методы create, retrieve, update и т.д. Т.е. он (ViewSetMixin) оперирует понятиями действия (action), а не конкретными методами.

    В urls.py пропиши в вызове магию (как описано в комменте к ViewSetMixin):
    url(r'^ser/vey/$', SurveySessionViewSet.as_view(
                          {
                              'get': 'retrieve',
                              'post': 'create',
                              'patch': 'update',
                          }
                      ), name='sur-vay'),

    или используй роутеры: https://www.django-rest-framework.org/api-guide/ro...
    Это будет правильнее.
    Ответ написан
    Комментировать
  • Как добавить модель в django.contrib.auth.admin?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Непонятно, что ты хочешь добавить.
    1) Модель из другого APP
    2) Динамически создаваемую модель (например со структурой из JSON файла)
    3) Нативную таблицу из БД
    4) ещё что-то?
    От этого зависит направление...
    п.1 - это вообще не вопрос.
    п.3 - нативные таблицы в контексте Django уже где-то обсуждались и не раз.
    п.2 - тут всё равно больше работы по динамическому созданию модели, а в админке оно само отобразится...

    Админка работает со стандартными моделями - это её суть. Если у тебя модель есть - всё решаемо. Если у тебя не модель, а неведомая ерундень с непредсказуемыми API и поведением - тоже решаемо, но просто добавлением ссылки в отдельном разделе админки.

    Если не хватает возможностей стандартной админки - пиши свою.

    Просто надо помнить, что Джанговская Админка - это не для клиента, это для тебя - (почти) прямой доступ к БД.
    Так что если нужна кастомная админка для юзера/менеджера - смотри в сторону, к примеру https://github.com/adamcharnock/django-adminlte2 (в одном стиле можно сделать всё, юзеры и не заметят, что у них свой мир :-) )
    Или смотри в сторону совсем кастомных админок (django-jet, django-admin2)

    мало информации...
    Ответ написан
    Комментировать
  • Почему на операторе elif выдает ошибку синтаксиса?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    elif Otvet == N:
        j=j+1
         import random
           matrix = [[random.randrange(1,100) for y in range(M)] for z in range(M)]
            for im in range(M): print(matrix[im])

    По идее ошибка из-за неверных отступов в строках import random и далее.
    Ответ написан
    Комментировать
  • Что такое item?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Пункты в списке. И, соответственно, подпункты, там где надо.
    Можно ещё представить это как сущность.
    Конкретный перевод будет зависеть от контекста.
    Ответ написан
    Комментировать
  • Как не пускать на сайт при включенном adblock/ublock и прочее?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Нда. Совет коллеги Алексей Арх Алексей Арх вполне рабочий. В одном проекте так и поступали - adv.js, загружаясь, устанавливал переменную. от её значения зависело дальнейшие действия. Но мы не блокировали, а предупреждали, что при включенном адблоке не будем рассматривать претензии по неначислению кэшбэка. Это нормально. Потому что если адблок срезал что-то, по чему партнёры идентифицируют покупателя для назначения этого кэшбэка, то и мы ничем помочь не сможем. Деньги - единственный работающий стимул.

    А за себя скажу - если сайт ставит показ контента в зависимость от моей безопасности (а адблок - это в первую очередь моя приватность и безопасность данных плюс хранит мой мозг от тонн рекламного мусора), то я больше туда не приду. Всё, точка. Исключения очень редки. Лучше подумай над другими способами монетизации своих гениальных мыслей (или они не такие уж гениальные? :-) )

    Кстати, в выдаче гугла часто попадается сайт с, как я понял, переводами материалов stackoverflow. Одно время они зеркально переворачивали текст при включенном фильтре. Ну, не очень-то и надо - читать п английски не проблема. Однако недавно заметил, что больше не переворачивают. Видимо не только я игнорю сайты, требующие от меня публично обнажаться :-)
    Ответ написан
  • Как расформировать адрес?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    согласен с Evgen
    Спроси у гугеля:
    https://maps.googleapis.com/maps/api/geocode/json?key=<ключ_получить_не_сложно>&sensor=false&address=Череповец,%20район%20Индустриальный,%20Вологодская%20область,%20улица%20Маяковского,%209

    Хотя в принципе бардак непобедим - последнюю твою строку не осилило.
    Ответ написан
    Комментировать
  • Как лучше обрабатывать исключения?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Пусть weight это ключ в некотором data, тогда:
    if 'weight' in data:
        for w in data['weight']:
            t = w['type']
            # и т.д.

    Если weight пустой, то цикл не выполнится.
    Так что тут никаких проверок/исключений не надо - у тебя сам ключ - проверка, поскольку это список, который или пустой или нет.
    Ответ написан
    1 комментарий
  • Бесплатный VPS для Python+Django?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    У Django для этого есть встроенный сервер. Просто посмотрите документацию. Даже немного устаревшая переведённая (на djbook.ru) даст все ответы на эти вопросы. Пишите/отлаживайте на здоровье. На локальной машине.
    Вот когда надо будет задеплоить для доступности со всего мира - тогда и думайте о VPS. Но тут надо решить, надо ли оно? Небольшой входной порог в виде денюжек - хороший тест на то, как серьёзно вы относитесь к своему проекту и насколько он может быть кому-то полезен :-)
    100-150р. в месяц это меньше большинства мобильных тарифов, которые люди платят не особо запариваясь. Ищите на https://vps.today/
    Ответ написан
    Комментировать
  • Уязвима ли эта Captcha?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Лучше уж что-то осмысленное: "Сто двадцать пять плюс три", "Сдвиньте красный слайдер", "Как пишется 'не' с глаголами" :-)
    Ну и следи за тем, что передаёшь в подтверждение выбора - именно в этот момент легче всего перехватить/проанализировать/подставить.
    Замечание Алексей Черемисин тоже не забудь учесть.
    Ответ написан
    Комментировать
  • Можете ли вы доходчиво объяснить действие цикла for?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    "Для каждого элемента заданной последовательности выполнить указанное действие"
    Как-то так...
    Ответ написан
    Комментировать
  • Игры на python и kivy, чем пользоваться?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Вот игрушка, к примеру, на Kivy написана:
    https://play.google.com/store/apps/details?id=rock...

    Так что всё можно. Была бы голова на плечах. Судя по вопросу - рано пока Kivy трогать - надо просто на Python научиться программировать. Если Курсы прошёл/книжку какую прочитал - пройди хотя бы пару островов на checkio.org
    Потом уже попробуй с GUI библиотеками разбираться. Хотя лучше сначала что-то без GUI поделать - боты, web...
    Ответ написан
    1 комментарий
  • Кто знает причину ошибки?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Есть мысль, что это связано с неправильной настройкой статики при локальной разработке и включенном DEBUG: https://github.com/wagtail/wagtail/issues/4254#iss...
    Ответ написан
    Комментировать
  • Что означает полоса в pycharm?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Перевод... :-(
    У тебя отступы с помощью табов, а не пробелов. Программируя на Python надо повесить перед глазами распечатанный https://pep8.ru/doc/pep8/ пока не выучится наизусть :-)

    Прочитай по указанной ссылке (там всё по-русски) по поводу правильных отступов и табов с пробелами.
    В PyCharm открой настройки (Ctrl-Alt-S), перейди Editor -> Code Style -> Python и на вкладке Tabs and Indents проверь, чтобы не было галочки на Use tab character

    Ну и потом поправь в коде все такие места. Заменой по тексту или ещё как - разберёшься :-)
    Ответ написан
    Комментировать
  • PyCharm и бесплатное использование в коммерческой разработке?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Тут, как мне кажется, происходить путаница понятий. Лицензия Apache2 относится к коду IDE. Т.е. ту часть кода, которая открыта под этой лицензией можно в соответствии с ней использовать (в своих проектах, к примеру). Например никто не мешает замутить свою супер-IDE на базе PyCharm CE. Для, к примеру, языка Forth. Или сделать на её основе крутой бесплатный инструмент для разработки всякого AI.

    Это всё не имеет отношения к тому, под какой лицензией будут ваши разработки. Тут надо смотреть на лицензии используемых вами библиотек и не налетать на нарушение GPL, например, используя такие либы в коммерческих продуктах с закрытыми исходниками. У QT по этому поводу, к примеру, свои правила...

    Так что не парься, reishi - твори!
    Ответ написан
    Комментировать
  • Почему в django 1.9 у меня при makemigrations появляются миграции которых я не ожидаю?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Значение поля с choices формируется статически на этапе миграции. Просто в этот момент происходит интерпретация твоего list comprehension, формируется список и поле им обновляется. Тот факт, что с прошлого раза ничего не изменилось при миграции не отслеживается.
    Если не хочешь видеть каждый раз эту миграцию - задай список валют статически, руками.
    Если предполагается изменение "на лету" - сделай лучше связь со справочником валют (через ForeignKey или ManyToManyField)

    Ну или каждый раз исправляй миграцию перед применением, удаляя это поле.

    Или удаляй эту миграцию, если изменение этого поля в ней - единственная операция.
    Ответ написан
    Комментировать
  • Django и как организовать характеристики товаров?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Для этого придумали парадигму EAV, как и написал @sergey-gornostaev
    У решения есть и плюсы и минусы. Посмотри или оригинальный пакет для Django в посте Сергея или, вот, из свежего и доработанного (форк): https://github.com/sromero84/django-eav
    Ответ написан
    Комментировать
  • Kак исправить эту ошибку:IntegrityError at /accounts/register/ UNIQUE constraint failed: accounts_userprofile.user_id?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Вы пытаетесь создать второй Профиль к пользователю, а там, скорее всего, стоит OneToOneField (или ForeignKey с unique=True).
    Делайте проверку: Если профиль есть, то берём и апдейтим. Если нет - создаём. Хотя лучше создавать профиль одновременно с созданием Пользователя и потом всегда только обновлять запись, не пытаясь создавать.

    А так - да, без трейса, кода и списка использованных пакетов можно только общие слова говорить...
    Ответ написан
    Комментировать