Вы видите копию треда, сохраненную 4 ноября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
>Как можно посмотреть, какой код находится внутри {{ form.as_p }}
Посмотри на код отрендеренной HTML страницы, там у полей формы должен быть атрибут id - можешь написать свои стили для полей. Должно быть что-то типа "id_<имя поля>"
Или, наверное, можно в пределах тега <form> всем инпутам задавать стили оформления. Добавь форме какой-то свой id и можешь менять стили только для нее.
Можешь еще форму отображать просто как {{ form }}. В это случае поля не будут обернуты в тег <p> - возможно, тебе это поможет.
Че он хочет от меня-то блядь? У меня форма авторизации, которая отправляет логин-пароль.
Решено с помощью Bulk Rename Utility.
разобрался
return render_to_response('store/index.html',
{'books': latest_books_list,
'username': auth.get_user(request).username})
Внутри темплейта вьюхи у меня есть {{ username }}, он нормлаьно отображает юзера. Как сделать так, чтобы активного юзера можно было передать в main.html? У меня в main.html бар, в котором должен отображаться юзернейм.
Хуйня, не пашет, че только не перепробовал, ни в какую. В чем может быть проблема?
Да, забыл сказать, что нужно еще добавить в настройках шаблонов строку 'django.template.context_processors.request'
В файле settings.py TEMPLATES --> OPTIONS --> context_processors - там увидишь
После этого ты будешь иметь доступ к объекту request из любого шаблона
Дай угадаю, ты тот самый поехавший, что в прошлом треде написал прогу, выбирающую из двух YOB?
А разве не очевидно. Чем вообще можно будет заняться после прохождения курса SoloLearn? У меня уже половина пройдена.
Эксепшен сам вылезет IndexError: list index out of range.
Индекс должен быть один интеджер, твой array[-1,x] не сработает.
а вот и нет
Вывод поселению строку, либо последний символ
Я одминю по жизни, а любой админ - немножко кодер: написать гуёвину на чём-нибудь попроще для каких-нибудь настроекв моём случае Delphi/Lazarus, наваять скриптовое полотенцеVB/sh/Perl и т.п. Есть пара своих проектов, которые начинались на Delphi, потом были подправлены для Lazarus, но на самом деле с того момента, как закончил универ толком не кодил.
Сейчас думаю о том, чтобы освоить Пайтон в первую очередь для своих проектов, а там, может, для своего сайта вместо пыхи, да скрипты универсальные получить, и, что немаловажно для меня - для моего смартфона на SailfishOS можно писать на PyQt, но это потом. Собственно, отсюда и вопрос: допустим я написал прогу с гуём на своём лине, например, на ПайКьют, но я хочу выложить её в паблик в том числе для виндузятников, смогу ли я просто выложить exe/exe+dll или что-нибудь в этом роде, чтобы потенциальным пользователям не пришлось ставить Python? Винды для компиляции и тестирования я найду.
Вообще можно ли как-то без заморочек распространять софт на питоне и в общих чертах (детали найду сам, когда понадобится) - как это выглядит?
Надеюсь, достаточно понятно сформулировал.
Здесь далеко не всем нужно писать поддерживаемый код для повторного использования. Да и один хуй без знания PEP никакие шармы тебе не помогут сделать правильно.
>py2exe win
>py2app osx
Это надёжный и рабочий метод без сбоев? И просто интересно, но не критично - можно ли потом из бинарника вырвать текст скрипта?
Можно конечно, это же питон. Чтоб прям нельзя было выдернуть, это наверное только какой-нибудь cython поможет.
Прав был Штирлиц - запоминается последнее. Меня выдираемость сырцов интересует постольку-поскольку, тупо на уровне "есть ли риск, что выложенный таким образом код окажется на govnokod.ru" (а шансы, что если его увидят, то запостят велики, всё-таки скил маленький). Не то, чтобы меня это сильно беспокоило, просто интересно.
Но куда больше мне интересно - насколько этот способ работает и не придётся ли дополнительно что-то изобретать. Ну да ладно. Надеюсь, всё получится, пошёл изучать.
UPD: Пока двощ был в заложниках у абезьяна выяснил, что по версию 5.3 торрент-клиент BitTorrent был написан на Питоне (с версии 6.0 переписан на кресты), значт, в принципе, мои хотелки реализуемы. Начал читать Лутца, нашёл ответ и на второй вопрос. Итак, при запуске py-скрипта от сначала транслируется в байт-код и сохраняет его в файле .pyc, а потом уже этот скомпилированный байт-код выполняется в специализированной "виртуалке" PVM (Python Virtual Machine) и Py2exe упаковывает не "весь Python" + ".py-скрипт", а .pyc + PVM и получить из этого сырцы уже не так просто, как из exe, собранного старым Lazarus'ом Lazarus очень долго добавлял тонны отладочной инфы в exe, включая сырцы и много чего ещё, из-за чего 'Helo world' мог весить 10-20 метров, в комплекте шли тулзы для уменьшения объёма, потом чекбокс "включать информацию для отладки" появился в опциях, а теперь он ещё и снят по умолчанию..
Я упаковывал с помощью pyInstaller. Там вообще делать ничего не надо - просто запустил, и он сам упакует. Но размеры получаются по 1-2 мегабайта на хелловорлд (потому что это питон). Попробуй ребол. Он и проще и функциональности побольше, да и твой говнокод там вполне идиоматичен будет. И в exe тоже можно экспортировать через XpackerX.
ПОчему оно не циклится на c([])?
ПОчему сразу возвращает []?
PyInstaller. Просто как два пальца сломать. Просто поставь, через 5 минут чтения туториала у тебя уже будет билд на руках.
Бугурт только будет от размера приложения. Пару метров будет сам питон, плюс метров 60 будет для каких-нибудь кутей, на которых ты свой двухкнопочный гуй для настроек запилишь. Фиг знает, вроде оптимизируется, но вряд ли до положенных толщин.
Так что сразу разрабатывай огромные программы, чтобы никто не лошил за размер дистрибутива.
Что я делаю не так?
>написать гуёвину на чём-нибудь попроще для каких-нибудь настроек
В 2k16 это большая проблема, единственное, что могу посоветовать это wxWidget
> чтобы потенциальным пользователям не пришлось ставить Python?
Сейчас такого дерьма почти нету увы(?)
java/c#/python/ruby/nodejs/php/lisp всем нужна VM
>pyInstaller
>просто запустил, и он сам упакует
>Просто поставь, через 5 минут чтения туториала у тебя уже будет билд на руках
Хорошо. Буду иметь в виду.
Кстати, посмотрел внимательнее. У Лутца называется три инструмента - py2exe для винды, PyInstaller помимо этого умеет в линь и "способен производить самоустанавливающиеся исполняемые файлы" и некий freeze.
>>847863
>Пару метров будет сам питон, плюс метров 60 будет для каких-нибудь кутей, на которых ты свой двухкнопочный гуй для настроек запилишь
ПИЗДЕЦ.
Чё, серьёзно? о_О
Нет, я всё понимаю, но ведь те же Delphi и Lazarus упихивают в несколько мегабайт свои VCL/LCL и это весит не то чтобы очень много, далеко не 60 метров. Их, пардон, не только по почте не кинуть (в смысле по старинке, вложением к письму), даже на ргхост без реги не залить, там 50 метров лимит напиздел, сейчас - 100, видимо, повысили, но это не отменяет заоблачного объёма!
У меня есть знакомый, который на Delphi переписывал программы без использования VCL на WinAPI и экономил несколько метров в бинарнике, но 60... Да и как я буду писать гуёвый кроссплатформерный софт без кьюта? Правда, у Лутца упоминается некий Tk GUI API (tkinter), но при этом как правило, если заходит речь про GUI и Python сразу же говорят PyQt (у меня выбор в пользу PyQt ещё потому, что на мобиле гуй на кьюте пишется).
Нет, гуй, конечно, будет не двухкнопочным, но, например, я хочу один свой студенческий проект ещё -- решалку для судоку дополнить эвристическими алгоритмами (чисто из интереса, а то тогда она у меня не тянула некоторые особо сложные головоломки), там гуя - 9*9 TEdit'ов + пара TList'ов для отладки, которые в релизе на самом деле не нужны + кнопка "решить". Это может весить 1-5-6 метров. Ну, потолок - 8, но никак не 60.
>>847898
>В 2k16 это большая проблема, единственное, что могу посоветовать это wxWidget
Это вообще не проблема. Ни на каком языке. Ещё до такой популяризации PS я с нашим главным одмином справедливости ради - начал и основную часть работ произвёл он, я скорее шлифовал набросали прогу для добавления пользователя в домен с генератором паролей и созданием почты и шары со всеми правами на Delphi, потом я уже самостоятельно писал прогу для заполнения пользователями дополнительных панелек на телефонах, которая отправляла хотелки на специально выделенную доменную группу распространения. Пользователи те ещё пидарасы были, из какой-нибудь приёмной могли позвонить, потребовать к себе телефониста и дать ему, когда он придёт написанный на куске явно использованной салфетки с остатками то ли кончи, то ли соплей список фамилий со словами "вот этих хотим видеть на телефоне", а уж найти их контакты и прочее - типа наша головная боль, пришлось приучивать к проге.
Такие вполне админские задачи - далеко не верх кодерского мастерства. Для иных задач можно и на AutoIt что-нибудь сочинить, например.
>всем нужна VM
Это детали. Ты же, например, если напишешь программу на C# не будешь кидать юзеру ничего дополнительного, обойдёшься просто экзешникомну да, .net-то у него уже есть наверняка... А вообще .EXE нормального размера + dll/установщик, который нужные либы распихает по системе/что-то в этом духе выглядело бы даже серьёзнее. Может, от PyInstaller'а этого можно добиться.
>ruby/nodejs/php/lisp
Вообще не видел, как такие программы распространяются. В работе видел только PHP и то на апаче, а вопрос кагбе именно в дистрибуции.
>pyInstaller
>просто запустил, и он сам упакует
>Просто поставь, через 5 минут чтения туториала у тебя уже будет билд на руках
Хорошо. Буду иметь в виду.
Кстати, посмотрел внимательнее. У Лутца называется три инструмента - py2exe для винды, PyInstaller помимо этого умеет в линь и "способен производить самоустанавливающиеся исполняемые файлы" и некий freeze.
>>847863
>Пару метров будет сам питон, плюс метров 60 будет для каких-нибудь кутей, на которых ты свой двухкнопочный гуй для настроек запилишь
ПИЗДЕЦ.
Чё, серьёзно? о_О
Нет, я всё понимаю, но ведь те же Delphi и Lazarus упихивают в несколько мегабайт свои VCL/LCL и это весит не то чтобы очень много, далеко не 60 метров. Их, пардон, не только по почте не кинуть (в смысле по старинке, вложением к письму), даже на ргхост без реги не залить, там 50 метров лимит напиздел, сейчас - 100, видимо, повысили, но это не отменяет заоблачного объёма!
У меня есть знакомый, который на Delphi переписывал программы без использования VCL на WinAPI и экономил несколько метров в бинарнике, но 60... Да и как я буду писать гуёвый кроссплатформерный софт без кьюта? Правда, у Лутца упоминается некий Tk GUI API (tkinter), но при этом как правило, если заходит речь про GUI и Python сразу же говорят PyQt (у меня выбор в пользу PyQt ещё потому, что на мобиле гуй на кьюте пишется).
Нет, гуй, конечно, будет не двухкнопочным, но, например, я хочу один свой студенческий проект ещё -- решалку для судоку дополнить эвристическими алгоритмами (чисто из интереса, а то тогда она у меня не тянула некоторые особо сложные головоломки), там гуя - 9*9 TEdit'ов + пара TList'ов для отладки, которые в релизе на самом деле не нужны + кнопка "решить". Это может весить 1-5-6 метров. Ну, потолок - 8, но никак не 60.
>>847898
>В 2k16 это большая проблема, единственное, что могу посоветовать это wxWidget
Это вообще не проблема. Ни на каком языке. Ещё до такой популяризации PS я с нашим главным одмином справедливости ради - начал и основную часть работ произвёл он, я скорее шлифовал набросали прогу для добавления пользователя в домен с генератором паролей и созданием почты и шары со всеми правами на Delphi, потом я уже самостоятельно писал прогу для заполнения пользователями дополнительных панелек на телефонах, которая отправляла хотелки на специально выделенную доменную группу распространения. Пользователи те ещё пидарасы были, из какой-нибудь приёмной могли позвонить, потребовать к себе телефониста и дать ему, когда он придёт написанный на куске явно использованной салфетки с остатками то ли кончи, то ли соплей список фамилий со словами "вот этих хотим видеть на телефоне", а уж найти их контакты и прочее - типа наша головная боль, пришлось приучивать к проге.
Такие вполне админские задачи - далеко не верх кодерского мастерства. Для иных задач можно и на AutoIt что-нибудь сочинить, например.
>всем нужна VM
Это детали. Ты же, например, если напишешь программу на C# не будешь кидать юзеру ничего дополнительного, обойдёшься просто экзешникомну да, .net-то у него уже есть наверняка... А вообще .EXE нормального размера + dll/установщик, который нужные либы распихает по системе/что-то в этом духе выглядело бы даже серьёзнее. Может, от PyInstaller'а этого можно добиться.
>ruby/nodejs/php/lisp
Вообще не видел, как такие программы распространяются. В работе видел только PHP и то на апаче, а вопрос кагбе именно в дистрибуции.
>ну да, .net-то у него уже есть наверняка
Тем не менее, его надо в инсталлер включать.
Я уже всерьез подумываю о плюсах, из-за этого дерьма
неужели никто не пользуется пичармом? знаю что не пользуются, но ведь наверняка установили
Дегрод, такую то хуйню высрал, даже лень пояснять.
#Govnokod prilagaetsya.
root = Tk()
tx = Text(root,width=40,height=20,font='12')
scr = Scrollbar(root,command=tx.yview)
tx.configure(yscrollcommand=scr.set)
tx.grid(row=0,column=0)
scr.grid(row=0,column=1)
root.mainloop()
Все, разобрался.
dir показывает что метода colors нет, есть colurs
['_Base__CAPITAL_SPLIT', '_Base__TYPE_MAP', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'api_url', 'badge_url', 'colours', 'convert_date', 'convert_float', 'convert_float_list', 'convert_hex', 'convert_int', 'date_created', 'description', 'from_xml', 'id', 'image_url', 'name_from_tag', 'num_comments', 'num_hearts', 'num_views', 'num_votes', 'rank', 'tag', 'title', 'url', 'user_name']
a.colours выдает:
['#6f627a', '#eb0e82', '#ff8080', '#f5d998', '#c8cc95']
*colours
Да, ты чертовски прав, это работает.
Какой-то вообще кучерявый модуль. Индексатор пайшарма вообще методы не видит для него, в документации ошибки. Как это прошло в пакэджиндекс неясно.
Уже собственно написал. Допиливаю.
Генератор обоев из ascii животных. Все это в фласковой обертке. Вот встал вопрос выбора хороших контрастных цветов, и нашел пару сервисов. Самые лучшие - колорловерс и адобе колорс. Адобе охуенен, но он выдает дату только жабаскриптом, так что там или фантомЖс подключать чтоб кровлить либо искать замену. Вот так вышел на то поделие.
Осталось сейчас прикрутить генератор цветов и задеплоить в хероку. К вечеру выкачу сюды на пощелкать.
Наверное :)
За то, що я тебя ненавижу.
Кратко: https://asciiwp.herokuapp.com/
Длинно:
После небольшой ебли с хероку, я наконец даю на тест это чудо быдлокода от человека, который не хочет учить питон, но хочет что-то на нем делать.
Суть проста: вы выбираете нужный размер и получаете замечательную уникальную минималистичную (или нет) обоину с преставителями фауны нашей планеты.
Животные берутся из апи, их число неустановлено, ибо выдается одно рандомное за раз. Цветовая палитра парсится с замечательного агрегатора палитр ColourLovers. Цвета принадлежат одной палитре(каждый раз новой), что должно отсеять уебищные и сливающиеся цвета.
Отдельное спасибо хочется сказать мейнтейнерам Pillow, которые до сих пор не могут замержить однолетний патч для многострочного textsize().
Верстка делалась на коленке, ибо десктоп с маком и нужным софтом сейчас недоступен. Слепил из стартеркита бутстрапа.
Вещает через gUnicorn.
Крутота! Я уже 24 штуки сгенерировал. Ты молодец.
Кстати комбинации все-таки бледные-хуевые. Нужно будет эксперементировать с ключевиками для поиска палитр.
Аки Бог смолвил
Спасибо!
В дальнейшем можно будет добавлять свой ascii арт для генерации картинки?
Кидайте идеи, я буду пробовать это делать. Как раз научусь решать реальные задачи.
вот этому бамп
Кратко: https://github.com/thisfieldmustbefilled/ascii-wp
https://asciiwp.herokuapp.com/
Всю дикость привел в порядок, прикрутил контоль версий и настроил PyCharm.
Пробросил автоматический пайплайн из гитхаба сразу в хероку. Все изменения на гитхабе сразу пуш-деплоятся на работающий сайт.
Желающие дописать/подправить мой быдлокод могут делать это штатными методами гит (хотя можно и через тред лол). Хотелось бы не "ты ### твой код ###", а "нужно так а не так".
С темплейтами полное говно, но сейчас я не настроен их делать.
>>848276
Я только сейчас понял что ты хотел. Для этого нужно прикручивать БД, ORM и лепить модели для нее. Это хорошее упражнение, я займусь им. Если охота что-то свое сгенерить то пока костыль: https://asciiwp.herokuapp.com/custom .
При 30 минутах неактива на фри аккаунте Heroku валит воркеры, так что если сайт долго отвечает, значит погодите сервак авоматически подымается (~10сек).
Мимо ваш зеленый питонщик.
Почему так вяло в треде? .hk не резолвится и все забыли про зеркала?
А чего убрал кнопки, чтобы сразу генерировать картинки для ноутов и десктопов? Было удобно.
Все дело в том, что обработчик форм из короба не умеет в несколько форм, постящих на один и тот же урл. Нужно либо содавать дополнительные маршруты, либо писать более изящный костыль. Я вчера только заметил что кнопка для десктопа выдавала 1366x768 и цсрф токен был у нее тот же. Добавлю фичу в следующем коммите.
Да, я это и имел в виду.
Отсюда [ http://www.colourlovers.com/palettes ] через API берется одна произвольная палитра цветов с тегом 'spring'. Далее из нее произаольно выбираются два неодинаковых цвета (для фона и для текста). Это можно посмотреть в "lovers.py"
Да, невозможно толком застраховаться от вырвиглазных паллетов и паллетов из оттенков одного цвета. Я не вижу принципа для создания выборки. В топ-палетах полно кислоты, по ключевикам тоже проскакивает всякое.
UPD. Добавлен более каноничный для ASCII-арта шрифт "Fixedsys". Выбрать можно в форме. Подумываю прикрутить вебфонты или какой-то источник чтобы можно было самому выбрать моношрифт по душе.
character maps to <undefined>"
Как это можно исправить?
https://github.com/FutureLinkCorporation/fann2/issues/11#issuecomment-105330040
Наверное, есть смысл взять готовый .whl.
http://www.lfd.uci.edu/~gohlke/pythonlibs/#fann2
https://asciiwp.herokuapp.com/
https://github.com/thisfieldmustbefilled/ascii-wp
Можно выбирать положение арта на обоине.
Разобрался с пиллоу, размер текста определяется верно.
Свернул генератор в одну функцию.
>>848574
Рад что сработало на этот раз. Но на винде питонить не лучшее решение, ящитаю.
А смысл какой? Кинул в закладки, если вдруг поддержат.
Питоняши, почему не пашет код из раздела "блочный макет" ?
http://python-3.ru/page/layout-management-in-pyqt5
Кнопки создаются одна под другой (сначала думал что создается просто 1 кнопка, но потом поменял размер и одна из под другой вылезла), да и выравнивание идет не по тому углу
Пикути в глаза не видел никогда, но статья написана в марте 2015. Может быть этот код уже не подходит.
Разобрался
Сайт гитхаб если что, там была годная ветка со всякими ништяками, а сегодня захожу, а там пусто, 6 часов назад чувак, которому она принадлежит всё почистил. Печально ведь.
Привет, это говно из моей жопы. Одно из приложений моего сайта. Посмотрите на этот быдлокод. Если я приложу такой код к своему портфолио, он подарит мне вечный иммунитет к работе?
Зацените манипуляции с json при создании коммента. Это супер-костыль когда впадлу юзать поля postgresql
не, это рили костыльное говно. Мне просто интересно, насколько оно костыльное, и ест ли вообще смысл выкладывать это куда-то кроме двощей.
govno = 'huyhuyhuy'
pizda ={'huy1': ['huy', 'huyhuy'], 'huy2': ['huyhuy', 'huy', 'huyhuyhuy']}
for x in pizda:
if govno in pizda.get(x):
print('Sucess')
print('Poshel nahuy')
Бля, пока допёр, что через гугл щитс можно табличку сделать со всеми ссылками, на гугл щитс не ругается. А потом wgetом выкачать мб.
Блядь, всё, только дописал, всё работает, думаю да бля, в чём ошибка то, решаю проверить руками, а всё уже и из кэша удалено. Пиздец. Как нарочно блядь.
> govno = 'huyhuyhuy'
> pizda ={'huy1': ['huy', 'huyhuy'], 'huy2': ['huyhuy', 'huy', 'huyhuyhuy']}
я спокоен
Не знаю, как у остальных, а у меня нет возможности всё время сидеть на борде из-под тора.
Собираюсь подаваться на python junior dev, либо на django dev.
Для этого учу питон (ныне админю линухы).
Мне ООП надо? В вузе 3 года назад писал лабы на c# и что есть ООП представляю.
Функционально познать питон будет достаточно, или нахуй иду, когда дело дойдет до джанги?
Читай Лутца. У него в "Изучаем..." три главы по сути этому посвящены. Даже совсем-совсем аутист поймёт.
мимо начинающий начать
https://github.com/thisfieldmustbefilled/ascii-wp
https://asciiwp.herokuapp.com/
Пофиксил размещение и размер текста. Теперь /custom может сгодиться еще и для генерации неиндексируемых пиков с номером телефона, e-mail и другой приваси даты.
Поясните, можно ли как-то избавиться от повтора строк до цикла и в нем:
https://github.com/thisfieldmustbefilled/ascii-wp/blob/master/generator.py#L15
Бр-тян пикрелейтед :)
Кстати перед запуском для всех досок тестил это на муваче. Все jsonы просмотрел и никаких ошибок не вывело.
> А что ещё он может вернуть если я прямо в коде пишу json? 404?
> Кстати перед запуском для всех досок тестил это на муваче. Все jsonы просмотрел и никаких ошибок не вывело.
Еще раз повторю. Лови исключение и смотри, что находится в content'е и status_code'е.
Весь контент выводить неудобно, а с исключениями работать я пока не умею. Кстати и правда похоже на 404. Спасибо.
У тебя там походу какая-то хуйня с формированием ссылки на тред. Попробуй повыводить ссылки на которые запросы посылаешь
А ты хорош. Сначала освой ЯП с супер-строгой типизацией и тысячей защит от стрельбы по ногам, чтобы потом ломануться в объектный в паскале нет объектов, в отличие от FPC(который в Lazarus'е) и Delphi/Object Pascal скриптовый язык, активно срущий на всё, настолько гибкий, что из рук выскальзывает.
Я просто подумал что конченые аутисты не знают что такое переменная вот и предложил начать сначала.
Ты неверно используешь слово "аутист".
В твоем случае имеет место просто некомпетентность или глупость.
После того, как человек освоит Pascal с его наследниками он понимает, что это годный язык, на котором можно сделать что угодно, но на практике выяснится, что на таком языке всё пишется хорошо, но не слишком быстро. Скорее даже утомительно медленно, что быстро выбьет энтузиазм (впрочем, аутистм как раз похуй, из них получаются самые крутые гении кодинга на чём угодно).
А у того же Лутца, да и вообще в любом учебнике, не рассчитанном на профи, суть переменных, циклов, условий и прочего будет объяснена достаточно подробно.
Извините,пару часов изучаю
Я пользуюсь. Очевидно, что ты вышел в код дебагера. Там же даже название твоего файла в stream есть.
def append_to_list(list_name):
q = input('Добавить?')
if q == 'yes':
word = input('слово')
list_name.append(word)
print('Теперь в списке {} слов'.format(len(list_name)))
return list_name
l=['1', '2']
print(append_to_list(l))
Лутц - Изучаем Пистон
Лутц - Программируем на Пистоне т.1
Лутц - Программируем на Пистоне т.2
Если ничего не знаешь - пойдёт и неплохо.
Если, например, знаешь кресты, но хочешь вкатиться - хватит и чего-нибудь типа этого самоучителя и потом других примеров с этого сайта:
https://pythonworld.ru/samouchitel-python
Про код дебагера понятно, но какого хуя туда перекидывает когда я делаю step out? эта функция вообще работает?
документация + гугл. В документации вообще есть ВСЕ.
##############
ГОС ОЧКИ
----------------
RUS216
BYR125
BYR110
UKR85
RUS25
NLD0
UKR0
##############
Программа должна выполняться построчно:
Берет данные из строки ГОС(например RUS) и проходится по списку. Если rus>100 и при этом встречается rus<100, то слово RUS выплевывается в консоль. Вторая строка - оба BYR>100, в консоль ничего не идет. Третья строка - UKR<100, сразу скипается. То есть, если элемент из столбца ГОС >100 и при этом встречается <100, то данные идут в консоль.
Как это сделать? Прочитать файл построчно, создать двумерный массив? Я не понимаю. Помоги, анон. Надеюсь, понятно объяснил. В пайтоне новичок.
http://pastebin.com/KeJYcFfd
Придумай другое имя для переменной 'time' - ты ведь уже импортировал модуль с таким именем. Не стоит так делать.
или:
from time import strftime
time = strftime("%Y %m %d")
Но лучше придумай другое имя для переменной.
Ни в коем случае.
Отучился в радиотехническом вузике, но работаю обычым планктоном. Думаю взяться за решение задачки, а заодно подкачаться в пайтоне.
Понимаю, что данные можно забить в мускл, и оттуда уже выдернуть селектом, но хочется без мускл.
Спасибо
Ты хоть какой-нибудь код напиши, а то выглядит, будто ты хочешь не научиться, а чтобы за тебя все сделали.
Идеальный вариант. Спасибо
Что за ересь с двумя пистон-трендами, периодически вылетающими на нулевую вместе? В прошлом перекат-ссылка на этот.
нет, все основы на месте.
Всё просто, сеттеры/геттеры никогда.
1. Мне надо запустить корутину `coro` через определенное время `n`:
На ум приходит `loop.call_later` но он запускает обычный коллбэк. Можно извратится и сделать
`loop.call_later(n, loop.create_task, coro())`
но тут возникает п.2
2. Должна быть возможность остановить корутину.
`.call_later` возвращает Handle, но Handle.cancel() убивает только запланированный запуск, уже запущенная корутина неуязвима.
Ничего лучше не придумал, чем запускать корутину через loop.create_task(coro()) и спать в ней, сколько надо. Мне кажется, что await asyncio.sleep(n) не должен ничего нагружать, но надо замерить использование памяти при одновременном запуске множества таких корутин.
Какие мысли, анон?
Не очень понял зачем тебе слип до запуска корутины, но в таком случае делать слип в ней — нормальное решение, ничего не нагружается, не ссы.
Любой VDS/VPS/dedicated где железо не в роиссе. В остальном смотри на цены и плюшки (тип виртуализации, нужность-ненужность панели управления и т.п., версию ОС - вдруг ты угорел по ubuntu 16.04, а там только 12.15...)
А так особой разницы нет.
https://github.com/pyanchesko/wallpapers_update
Понравились фотки в паблике одном, захотелось их на обои ставить. Каждый день новую.
Написал скрипт который скачивает оттуда фотку, и ставит ее на рабочий стол. Думаю ее кроном запускать.
Ubuntu
Я не этот >>851212 анон, но отвечу
Можно было сделать как-то так http://pastebin.com/0tcRXpF7
Спасибо Анон, а то рили чуханский код был
Поясните за Джанго. Это вроде как крутой фреймверк, с кучей готовых фич. Можно ли в нем писать как в похапе (т.е. банальные динамические страницы)? Или там все совсем по другому? И какую версию питона он поддерживает? Хочу курсач пилить, но как бы не обосали.
Случайно запостил в старый тред.
Запостил по ошибке в старый тред, поэтому репостну сюда
Привет, ночной питонач. На связи ультраньюфаг.
Решил освоить хотя бы азы кодинга, начал с питона. Я и раньше пытался его учить, но надолго не хватало. А тут вот взялся основательно. Нашел видеоуроки от майкрософт для полных чайников, но на свою беду, я пытаюсь понять фундаментальные вещи, причем сразу. Не терпится чет.А там многое оставляют без объяснения, тип делайте не задавая вопросов.
Так вот.
Вот вроде бы функция - ты ей параметры, она тебе возвращает результат.
Но что мать его происходит, когда внутри функции еще одна функция, да еще блджад с какими-то точками, как в случае с:
a = "Абырвалг"
print ( a.upper() )
То есть тут функция и print() и upper() тоже? А точка? Как зачем и почему эта точка?
Только что качнул "укус питона", и тут тоже с самого начала предмет моего вопроса без пояснений. (7.4.6)
Блин, мб стоит расслабить булки и получать удовольствие? Может я слишком спешу заглянуть вперед?
Пока не вдуплишь основы на кодекадеми укус будет непонятен, пока не прорешаешь все с синк пайтон - не будешь знать куда конкретно питон этот пихать.
А лутц чисто почитывай фоном где что конкретное непонятно.
>кодекадеми
Аа, так в скобочках было не перечисление вариантов, лол.
А есть альтернатива кодекадеми? Я прост хоть и учу английский, но пока не настолько уверенно им владею, чтобы чему-то учиться на нем.
Анон, что лучше использовать: конструктор класса def __init__() или @staticmethod?
Счёт строчек делай через цикл. Данные разбей через ".split" (variable.split(SYMBOL)). Потом значение переведи в тип int (int(digit_string)).
Спасибо.
Не уходи. Я тебя блинами угощу.
что подсказать-то?
Я использую множества, из которых постепенно убираю по определённым правилам неподходящие мне варианты, примерно так:
X={'a', 'b', 'c'}
X.discard('a')
X.discard('c')
Потом, когда остаётся единственно верный вариант, мне нужно его получить. Сейчас это выглядит так:
if len(X) == 1: for i in X: res = i
Но мне кажется, что это ну просто пиздец, какой костыль. Можно это сделать как-то приличнее?
res = next(iter(X))
или:
res = list(X)[0]
или (если этот сет тебе больше не нужен, потому что pop() удалит элемент из сета):
res = X.pop()
>res = X.pop()
При тестировании выглядит идеально. Видимо, я неправильно понял, как работает pop, когда читал help по нему. Вернее пропустил «and return».
Правда, в коде я сразу начал ловить ошибку «unhashable type: 'set'»…
>if len(possibles) == 1:
>k = possibles.pop
>vals = k
>for j in range(9):
> possibles[j].discard(k)
когда сделал так:
>k = str(possibles[j].pop)
>print(k)
В выводе получил «<built-in method pop of set object at 0x0054A198>».
В итоге использовал list(X)[0], как более понятный конструкт, а очищается множество окончательно всё-равно отдельно, в цикле, discard'ом. Но хочется понять на будущее — в чём прикол.
>res = next(iter(X))
Какое-то непонятное пока колдунство.
http://pastebin.com/masB9evt
моё решение не проходит на седьмом тесте.
мб кто-то подскажет, где ошибка?
всё, решил через трай .. ексепт
в модельки книги есть поле текущего рейтинга и количества голосов
вощем, решил в модели прям забабахать методу для обновления что-то типа такого
def upd_rating(new_vote, self):
new_rating = (self.rating * self.votes + new_vote)/(self.votes +1)
self.votes += 1
self.rating = new_rating
self.save(update_fields=['rating', 'votes'])
меня вот больше всего интересует механизм записи изменений, save же должен сработать?
Напоминает Чарли.
Нужно запилить примитивный бэк на питоне, пара http запросов и работа с бд.
Как это сделать проще всего?
Вроде должен. Насколько помню, save сам определяет - обонвить ему данные или записать новые
Спасибо.
Просто сравниваю с рубишкой где `command` или system "command" и результат получаешь сразу, а в питоне код возврата.
Как-то бесячивно это.
Цель - применение библиотек уровня sci-kit и nltk без боли в анусе от каждой ошибки.
В программу передаются:
Количество фалов и папок, которые нужно создать.
Глубина вложенности папок.
Т.е. файлы и папки должны быть раскиданы по структуре рандомно.
Уже тут пару часов бьюсь, не могу придумать как это реализовать.
>>851720
если бы я интересовался кишками змеи, я бы стал учить си и читать исходники. какую вам книгу по си посоветовать?
дак это в соседний тред
Вы знаете питон?
Необходимо написать парсер исходного файла с данными: JSON, CSV, XLS (на выбор). По структуре данные представляют собой Группу (Регион), параметр (Страна) и Значение. Группы содержат в себе ряд параметров, у каждого из которых есть свое числовое значение. Эти данные нужно записать в базу данных.
Реализовать вывод имеющихся данных в виде столбикового графика. Выбор библиотеки на Ваше усмотрение. Например, HighCharts, AnyChart, AmCharts, либо любая другая библиотека графиков. Над графиком выпадающий список с Группами. При переключении группы в графике выводятся соответствующие данные, т.е. Параметры и их Значения (по осям графика), присущие выбранной Группе.
По результатам выполнения этого задания определятся ваша скорость и качество кода, которые повлияют на возможность дальнейшей работы.
Дали тестовое задание сегодня
Крутяк
Из бд надо читать данные и выводить на график? Какой-то питоно фреймворк будешь использовать?
типа такого http://pastebin.com/80Gz82sB отлаживать было влом, так что хз как работает, но пару раз вроде сработало)
Джанго
ну ничего сложного, дольше с темплейтом/jquery возиться
На пакет из ~15 файлов и ~500 строк кода 15 строк пояснений, все джангисты так и прогают, копируя код, понимая только зачем он нужен?
"Начал учить джанго, оказалось что по самому популярному фреймворку питона почти нет актуальной информации..."
дальше не читал. ты в очи долбишься.
Список твоих проблем:
1. не знаешь английский
2. не можешь в документацию
3. не можешь в stackoverflow
4. не можешь в чтение и разбор исходников
ты не с того начал, начни с изучения самого питона.
1. Могу, но не таком уровне, что бы читать без напряга хотя бы 50 + слов в минуту, да и зачем, если есть русская документация?
2. Лол, я про документацию и расписал
3. Еще вопросы маил ру посоветуй
4. Хз о чем ты, поясни, я должен сам понять вот это: MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
?? В уроках, которые идут с документацией, эти строки проигнорированы полностью, мне просто скопировать и идти писать резюме о поиске работы сеньера девелопера?
Сам питон тоже должен быть написано на питоне? Никаких модулей на си?
> 2. Лол, я про документацию и расписал
> я должен сам понять вот это: MIDDLEWARE = [
5 ceкунд в гугле:
https://docs.djangoproject.com/en/1.10/topics/http/middleware/
> 3. Еще вопросы маил ру посоветуй
Да ты же неадекват.
конечно можно, фреймворки же написаны на питоне. только в итоге ты напишешь свои фреймворки.
и кстати, это увлекательно и очень познавательно. например, начни писать "легкую" джангу, но не переусердствуй в своем аскетизме! активно используй стандартную библиотеку.
программирование это тебе не увлечение на недельку и потом 300к в секунду. это серьезная профессия, одна из сложнейших, с большими трудозатратами. года уйдут у тебя до сеньора. поэтому иди сука пидор и читай про каждую сука пидор строчку сука пидор. а когда поймешь какой ты здесь фейл устроил, приходи и задавай адекватные вопросы.
Ну, для небольшого сайта, который мне сейчас нужен, мне хватит работы с БД на простейшем уровне, а если захочу что-то серьёзное, например, стендэлон-блог, то наверняка воспользуюсь чем-то готовым. Или, чем чёрт не шутит, может и до своего дойду, вон у lleo (Леонид Каганов) таким образом весьма нихуёвый биноникл вырос на пыхе со временем.
> это серьезная профессия, одна из сложнейших,
Забавно, вчера видел как какой-то хуй-петонист на хабре хабре, написал статью о том, что мол можно в мидла за 3 месяца (или что-то в подобном духе).
А тут на двачике, люди за сурьезность топят.
Сюрреализм, блядж.
можно, конечно, но зачем оно надо?
Фишка питона именно в быстрой разработке. Тебе не надо описывать много ненужной мишуры, ты просто взял готовый инструмент и используешь его.
В твоем случае, если не хочеться разбираться с django, вникать в mvc и тд. можно взять тот же flask и быстренько наклепать проект на нем.
Порог вхождения там почти нулевой, всякие либы для комфортной работы тоже присутствуют
pandas-кун
сайтик-хуяйтик - понятно, но если есть время и желание разобраться в языке\технологиях глубже, то...
2ch - SERIOUS BOARD
Если дали задание по данных, то это с вероятностью 99% будет работа с библиотекой pandas. Возможно, если они не упомянули ее в задании, то подойдет ответ на чистом питоне, но если ты сделаешь на панде, тебя точно пригласят на собеседование. Вообще, я собирался немного популяризировать pandas на дваче, так как работаю с ней уже порядка года, так что буду рад помочь ( в рамках треда, конечно)
pandas-кун
ага, тот самый. Неофиты наслушаются петуханов, а потом как то внезапно вырастет очередное поколение индусов, с которыми тебе работать придется.
думается проблема кроется в культурном слое:
1) легкие деньги!
2) почему легкие?- потому что вон на западе пацаны по 18лет неокончили ВУЗ, написали фейсбуки,... и на порше гоняют!
3) не такой как все (не быдло) - романтика! я хакер епта!
и это удручает. и так везде между прочим, например, долго искали нормального, не криворукого паркетчика... это пиздец! - 3 раза переделывали.
>Фишка питона именно в быстрой разработке.
Вот это мне и понравилось. Сейчас по-тихоньку переписываю один институтский проект с дельфей на пайтон для тестов, за пару вечеров с кайфом наваял то, над чем сидел пару недель, такими темпами через недельку реализую всё, что там было (пока что кроме гуя) и начну расширять функционал. Конечно, я сейчас старше и опытнее и понимание алгоритмов какое-то есть, но тогда-то я кодил постоянно, а с тех пор уже сколько лет - скрипты от случая к случаю и всё.
>если не хочеться разбираться с django, вникать в mvc и тд. можно взять тот же flask
Суть ясна - можно, но смысла мало. Значит, поковыряю фреймворки, когда с десктопным более-менее разберусь.
>>851868
>есть время и желание разобраться в языке\технологиях глубже, то...
...можно написать и свой фреймворк, lol. Шучу. Ясно, проще пользоваться фреймворками. Правда, несколькими потами выше один товарищ уже бугуртил с джанго, на что ему сказали:
>ты не с того начал, начни с изучения самого питона.
То есть, чтобы работать с серьёзными фреймворками, нужно уже иметь некий скилл.
Пойду его набирать, всем спасибо!
pandas-кун
Туториалы есть, но в большинстве своем эти туториалы для людей знакомых с data-science, я же хочу показать, как pandas можно использовать в более обычных задачах, где, казалось-бы, можно обойтись и чистым питоном, но на панде это получается решить быстрее и эффективнее в плане производительности приложения
Не думаю, что будут такие штуки, не хочу слишком усложнять и без того не простой туториал.
не, пиши конечно, дело то хорошее. только предметности какой нибудь бы, например: "распределенная система обработки данных на архитетуре SOA\Microservice". кстати, могу посодействовать в архитектуре, давно мысль запилить микросервис архитектуру..
да
Очень интересно
Сам чуть игрался ими в рамках быстро дропнутого курса ШАД на и курсере, понял что это как уютный эксельчик, но на том и все
очень интересно
Даже не знаю как сказать спасибо! Не знаю, веришь ли ты в карму, но, в общем, я новенький в программировании, над этой штукой бился сегодня полдня, толком ничего не получалось, не то всё выходило, спасибо тебе огромное!
> Можешь расписать подробей или скинуть где про это почитать?
Хоть бы Кнута по алгоритмам осилил, прежде чем такие вопросы задавать.
Туториалы не нужны, тем более pandas сама рисует графики. Хз какому дебилу это будет интересно.
спрашивали про внутреннее устройство словарей, списков, что будет если два раза импортнуть один и тот же модуль, что-то еще было, вспомню напишу. Про работу with спрашивали еще.
пожалуйста)
print(i)
if math.isnan(minimax):
pass
else:
if minimax < 0:
minimax.pop(i)
Зорким змеям будет видно, что проблема в том, что список постоянно теряет в длине и выдает ошибку out of range. Есть ли способ починить не прибегая к использованию второго списка?
Мне больше понравилась конструкция "if...elif".
Данный код, правда, сокращается до двух строк:
>a = input()
>print(a.isdigit())
Булева переменная тут не нужна, нечего плодить сущности, ясно, что дело не в принте, поэтому лучше так:
>a = input()
>if a.isdigit:
> statement1()
>else:
> statement2()
проект
- проект
- приложение
- static
-- css
-- img
-- и тд
в settings.py указано:
>STATIC_URL = '/static/'
>STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
>MEDIA_URL = '/media/'
>MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
в urls.py:
>if settings.DEBUG:
>....urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
>....urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
в шаблоне:
>{% load staticfiles %}
><img src="{% static "img/logo.png" %}"
сорс картинки получаю вида:
http://127.0.0.1:8000/static/img/logo.png
что в принципе правильно, только картинка не отображается и по прямому запросу 404
Буду крайне признателен
проект
- проект
- приложение
- static
-- css
-- img
-- и тд
в settings.py указано:
>STATIC_URL = '/static/'
>STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
>MEDIA_URL = '/media/'
>MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
в urls.py:
>if settings.DEBUG:
>....urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
>....urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
в шаблоне:
>{% load staticfiles %}
><img src="{% static "img/logo.png" %}"
сорс картинки получаю вида:
http://127.0.0.1:8000/static/img/logo.png
что в принципе правильно, только картинка не отображается и по прямому запросу 404
Буду крайне признателен
Ну же, судари, я уверен с этой хренью так или иначе все сталкивались, я и сам пару раз делал но рытьё в старых проектах нифига мне не дало почему-то, что-то проёбываю или в джанго 1.10 что-то поменяли
У тебя вся статика лежит в отдельной папке, а не в приложениях, как я понял.
Попробуй в настройки добавить
>STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
nginx или еще что-нибудь, что будет быстрее (пересобранный nginx, где выкинута куча ненужного говна).
>nginx
А, ну это ясно. Я думал, ты сейчас про что-нибудь новое расскажешь.
В продакшене, само собой, он будет nginx использовать. Тут же речь идет о том, чтобы только во время разработки обрабатывать статику встроенным сервером.
> обрабатывать статику встроенным сервером
Нахуя? Сделать реверс-прокси и готово. Впрочем, твоё дело.
Как в джанге это делать не ебу, сам не пользовался её сервером для такой цели.
спасибо что хоть без бовера, гульпа и прочей ебалы. тоже не "прошлый век."
Хмм.. Ну я тогда не знаю.
Перезапуcти сервер. А потом обнови страницу CTRL+F5
Проверь всё, может опечатка где-то есть.
>if settings.DEBUG:
Эта строка не нужна
>STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
Слеш убери. Он вроде никак не влияет, но и не нужен
STATIC_ROOT - это вообще должна быть пустая папка, в которую ты соберешь всю статику со всех приложений для того, чтобы обрабатывать ее потом сервером типа nginx'а, когда деплоить проект будешь. Переименуй, например, в 'collected_static' или или еще как-то.
не помогло. буду дальше развлекаться.
когда они блядь это починят, уже год я из раза в раз ебусь с этой придурошной хуйнёй. и да, она простая, всё ж не memory leak'и ловить, но какого блядь хуя.
Тоже временами ебусь то с этим, то с подключением собственных приложений - легко упустить какую-нибудь деталь.
В принципе, могу щас тоже взглянуть на твой проект, если выложишь куда-нибудь свой код.
да ёбаный нахуй, магия блядь, шайтан арба!
короче, на тестовом сервере collectstatic делать категорически нельзя.
Бери django-allauth
Самый толковый ответ, спасибо.
Вчерашний пожар закончился, буду на выходных курить мануалы, а пока кто мне объяснит, зачем все таки нужен stackoverflow? Уж явно не для того, что бы скролить в надежде найти ответ на интересующий вопрос
В Pages хранится что-то типа настроек отображения страницы, ну например description
Вот пример модели Pages:
>class Page(models.Model):
>..page_name=models.CharField(max_length=100)
Вот пример модели BlogPages другого приложения, Blog:
>from pages.models import Page
>class BlogDetails(Page):
>..pass
таким образом но должно по-идее наследовать все свойства модели из app Pages. И наследует, в админке например.
Во вьюшке blog/view.py:
def post_list(request):
posts = Post.objects.all().order_by('created')
settings = BlogDetails.objects.first()
return render(request, 'blog/blog.html', {'posts': posts, 'settings': settings})
я вроде как вполне нормально вызываю инфу о BlogDetails объекте, он там всё равно один и других добавлять запрещено, как и удалять.
но когда в шаблоне я запрашиваю {{ settings.page_name }} я получаю ебаное ничего
В чём я обосрался?
как это хоть загуглить-то?
BlogDetails - это что ттакое? Если модель, то должна наследовать моделс.Модел. Или у тебя пейдж - это абстрактная модель? Или же тебе нужно наследование типа Блог - страницы? Тогда это делается через ForeignKey. У тебя какая-то непонятная хуйня, крч.
>settings = BlogDetails.objects.first()
Оно ведь QuerySet возвращает, не?
Попробуй в шаблоне:
{% for s in settings %}
{{ s.page_name }}
{% endfor %}
вот тулю я в шаблон {% url "blog" %}
мне и нужен "^blog/$" в принципе
чё оно от меня ещё хочет? дописывал как во view оно называется, и url blog:post_list и 'blog' 'post_list' и ещё пара вариаций - или темплейт эррор или no_reverse_match
url 'blog.views.post_list' тоже писал
разумеется в INSTALLED_APPS всё есть и в urls.py проекта пусть к приложению занесён
типа аргумент какой-то нужен, но какой блядь аргумент когда с другой стороны функция без аргументов? не понимать
name указан в урл паттерне? Типа так:
>(r'^blog/', blog_view, name='blog'),
и в шаблоне потом
>{% url 'blog' %}
Перебирать список с конца?
говнокод
http://pastebin.com/uee5YmH0 - моё решение
https://olymp.hse.ru/data/2016/10/05/1122855045/Демо отбора 2016-2017.pdf - задания
Перепиши с нормальными названиями переменных, аутист ебучий.
есть категории, есть продукты
как в шаблон вывести их все, типа
>категория1:
>-продукт1
>-продукт4
>категория2:
>-продукт2
>-продукт3
в шаблоне вообще как-то фильтровать можно вообще?
А все, разобрался
> {% for category in categories
> ..{% for product in category.products_set.all
> .....
как его впердолить в base.css
я так понимаю {% include "deal/hotdeal.html %} не обрабатывает запросы, а тупо выгребает хтмл
Тогда что делать?
в base.html конечно же
http://rosettacode.org/wiki/Brace_expansion#Python
Есть ли обратный алгоритм, который бы пусть не самым оптимальным образом, но оптимизировал бы плоские листы в подобные древовидные структуры?
Интересует свёртка регулярных выражений такого типа:
пидор|исидор
(п|ис)идор
Только начал учить питон (неделю), ибо язык вроде топовый. Сейчас читаю Byte of Python. Потом буду поглощать Луцмана и Саммерфилда. В день уделяю этому один-два часа. Есть ли какие-то шансы выучить его на уровне составления каких-то более менее программ среднего уровня до конца года?
И еще в этом году диплом. Решил в дипломном проекте составить программу на питоне для юр.фирмы(знакомые). Можете подсказать какие-нибудь идеи программы, чтобы она могла как-то использоваться на данном предприятии?
Заранее спасибо.
Да, может успеешь.
Дочитав Синк Пайтон ты сможешь написать почти что угодно на питоне.
CRMку им напиши. Или поисковик по документам на elastic search/solar с беком на боттле или еще чем постом.
>{% include "deal/hotdeal.html %} не обрабатывает запросы
Что ты имеешь в виду?
Можно наследовать шаблон hotdeal.html от шаблона base.html:
{% extends 'base.html' %}
Или что ты хочешь сделать?
Я хотел как в php с инклудами - инкуднул и оно прогнало шаблон по его вьюшке, выгребло данные из бд, вставило.
Питон так не делает, он инклуднуть может конечно но не парясь, безо всяких данных, только то что в самом шаблоне есть ото и его
В итоге я просто во все нужные страницы теперь вставляю блок и во вьюхи соответствующее. Окей.
Думаю, я тебя понял. Наверное тебе нужны inclusion tags https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/#inclusion-tags
Создаешь свой шаблонный тег, который состоит из функции (которая может дергать данные из бд, например) и шаблона, в который рендерится результат работы функции. Потом в любой шаблон можешь включать этот тег.
А если тебе нужно отображать эту информацию на всех страницах, то может быть будет лучше свой context processor написать.
https://docs.djangoproject.com/en/1.10/ref/templates/api/#writing-your-own-context-processors
Пишешь функцию, которая возвращает словарь, добавлешь ее в список context_processors в настройках и у тебя во всех шаблонах будет доступна переменная - результат работы твоей функции.
Спасибо тебе большое
В джанго нужно создать страничку с файлами, и авторизацию к этой страничке исключительно для одного пользователя.
В идеале даже что бы по прямой ссылке на файл никто кроме этого пользователя скачать не мог.
Куда рыть в таком случае?
Если используешь nginx, глянь https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/
Спасибо, нашёл https://github.com/johnsensible/django-sendfile - я так понял это и есть обёртка для нгинкса. Но не уверен.
Бегло взглянул - кроме энжиникса поддерживает и другие сервера, но для nginx-a использует как раз тот самый x-accel
Так что тебе должно подойти
мне просто интересно хули там дискассить
Удваиваю вопрос.
>Есть ли какие-то шансы выучить его на уровне составления каких-то более менее программ среднего уровня до конца года?
На самом деле зависит от того, что ты уже умеешь. Если изучаешь с нуля, то навряд ли. Нужно, чтобы мозг понял, как вообще кодить, нужна практика и шишки, а это за пару месяцев не получишь.
Ну, может балабольство про технологии без их понимания и плоские двачерские шутки действительно для кого-то классно.
Совершенно не то, увы. Что лемматизация сделает с инпутом вроде этого самого "пидор исидор"? Правильно, ничего.
Я нагуглил вчера frak, он под кложуру. Вот мне примерно такое требуется, но необязательно, чтобы форматировало в регексп.
Всё не то. См. пикчу.
Мне нужна функция, в которую можно было бы задать букву, а она при запуске имитировала нажатие этой буквы на клавиатуре.
Да, я так и хотел. Не знал только что именно гуглу скармливать.
Модель джанго, поле
>colors = models.CharField(choices=colors_list)
хочу в choices добавить html
ну типа
>colors_list = (('red': '#f44336'),('blue': '#2196f3'))
есть какой-то вариант в джанго-админку запихивать это всё например с style="background-color:#xxxxxx" в подложке каждого пункта списка? Как это делать вообще?
Вот это попробуй http://stackoverflow.com/a/21297539/5201699
Если не получится, то вот вариант посложнее, потому что тебе, видимо, придется шаблоны админки переопределятьhttp://stackoverflow.com/a/2836295/5201699
Спасибо большое.
Есть список категорий с подкатегориями. Дальше идут принадлежащие им item'ы. Всё как обычно, всё работает, заебись.
Теперь выясняется что item'ы отдельных категорий должны иметь разные списки характеристик, частично пересекающиеся.
Важно: конечное количество категорий и все конечные характеристики для итемов известны.
Вопрос как это грамотно организовать. Конечные значения известны, поэтому какой-то фабрики не требуется.
Достаточно ли просто сделать абстрактный класс для item, имеющий все пересекающиеся поля, и от не наследоваться остальным? Или это пиздец, потому что по сути придется написать десяток-два моделей вручную, у каждой из которых еще связь с общей таблицей категорий?
Сам он, по его словам, с докиром дел никогда не имел, но считает что "вообще наверное это нужно".
я базовым классом модели сделал, потому что не известно количество и содержание моделей, но некоторые пересекающиеся поля есть, к тому же для каждой модели еще и форму надо... поэтому получается так что при добавлении новой сущности хочешь-не хочешь, а код писать придется.
Суть подобных мероприятий в одной пикче
Вот я сделал две модельки,
>class File(model.Model):
>..file = models.FileField(upload_to="bin/")
>class FilesForUser(model.Model):
>..files = models.ManyToManyField(PrivateFile)
>..user = models.ForeingKey(User, db_index=True)
в админке сделал
>class UserFilesAdmin(admin.ModelAdmin)
>..filter_horizonstal=('files',)
Как мне добавить возможность прямо с админской UserFieldsAdmin не просто фильтровать, но и загружать Files?
можно даже без фильтрации, а просто MultiSelect какой-нибудь но на загрузку файлов
Что делать-то блин?
Благодарю.
Тебе нужна возможность загружать новые файлы со страницы со списком файлов, правильно?
Гугли как переопределять стандартные (и добавлять новые) вьюхи и темплейты в админке.
Наверное, на странице со списком файлов можешь поместить кнопку "Upload files". Кликаешь на нее и перенаправляешься на страницу добавления файлов с формой (может быть это будет новая вьюха, а может и ту, которая у тебя уже есть получится использовать). После загрузки файлов редиректишься обратно.
Ну или на страницу со списком файлов запихай форму, но, наверное, тогда тебе стандартную вьюху надо будет переписать, чтобы она еще и загрузку фалов обрабатывала.
Вот тебе решение для загрузки нескольких файлов https://docs.djangoproject.com/en/1.10/topics/http/file-uploads/#uploading-multiple-files
Сам такого не делал, но мне кажется должно сработать.
Там суть не в двойных стандартах, а в том что индивид - неразбирающийся колхозник без образования (даже "тест" пишет постоянно через "э") и уже несколько лет как без практики, при этом вешающий лапшу на серьёзных щах.
Это отдельный вид петушков, позиционирующих себя как специалистов, при сидящих на какой-то должности в конторке где они такому же говноеду-начальнику смогли навязать свою охуительность и незаменимость. Постоянно наталкиваюсь на таких, если ищешь работу и видишь что-то подобное - беги и не оглядывайся.
Не, мне прям с админки
Есть моделька страницы с файлами, она зарегана в админке, вот нужно прямо из неё загружать файлы
Ну так я тебе про это и говорю ведь, кажется. Или я неправильно понял?
Есть у тебя страница в админке со списком файлов, там фильтры какие-то у тебя еще что-то.. Вот туда и зафигач кнопку или форму.
https://vorillaz.github.io/devicons/#/cheat
Как впихнуть эти чары в питоновый стринг? u'\eXXX' не работает.
Спасибо!
Первый вариант работает. Остальные что-то не то возвращают, там модуль пытается сделать им сплит но не может, рейзится атрибутэррор.
Первый - это символ, второй и третий возвращают integer значение юникодного символа
chr(ord('\ueXXX')) == '\ueXXX'
>>847091 (OP)
>>839462 (OP)
ИТТ долбаёб, изучайющий питон уже полгода и до сих пор не могущий в настройку правильной версии.
У меня убунта стоит, в ней прошит 2.7. Я хочу работать в версии 3.5.
Как вы вообще работаете с разными версиями? Или проще снести бубунту и перейти на дистрибутив, у которого изначально расововерная версия питона? Несколько часов сегодня проебал, пытаясь в этом вопросе разобраться Я знаю, что долбоёбПомогите убогому
Спасибо
Возможно питон3 у тебя установлен, просто он не дефолтный.
Проверь: python3 -V
Скриптики свои можешь запускать так: python3 script.py
Еще погугли virtualenv - в сети куча всего про это написано.
cd ~/projects_python3/yoba3
virtualenv -no_site_packages -prompt="python3" -p=/usr/bin/python3.5 venv
source ~/projects_python3/yoba3/venv/bin/activate
#you are now python3`eezed
deactivate
cd ~/projects_python2/yoba2
virtualenv -no_site_packages -prompt="python2" -p=/usr/bin/python2 venv
source ~/projects_python2/yoba2/venv/bin/activate
#you are now python2`eezed
deactivate
после активации одного из виртуальных окружений (source activate), pip ставит, удаляет, обновляет пакеты только в этом окружении и не трогает ни гловальное, ни какое либо еще.
sudo apt-get install python-pip
sudo pip install --upgrade virtualenv
virtualenv это отдельно стоящее окружение для питона и всех библиотек которые хочешь
pip - это установщик библиотек для питона
находишь место где будешь складировать "окружения" созданные virtualenv и хуяришь там
virtualenv -p /usr/bin/python3 yourenv
потом пишешь в консольке $ source yourenv/bin/activate и вуаля!
как надо будет переключить окружение на другое или выйти тупо $ deactivate
нахуя это нужно - что бы не захламлять папочку питона самой убунты, и под каждый проект отслеживать чё за пакты наставил, а не всё в куче
>>853508
Тут рулит наследование, можешь обращаться к ним косвенно
допустим
class Book(model.Model):
..s_kartinakami = model.BooleanField
Author.object.first().s_karitnkami , ну ты понел короче
Проблема не со скриптами, а с джанго.
С виртуальной средой я поебался и что-то нихуя в итоге не вышло. Гайдов понятных так и не нагуглил. Подумываю снести систему, чтобы поставить сразу с дефолным питоном нормальным. Есть также аккаунт на pythonanywhere, но как там сменять дефолнтую версию я тоже нихуя не понял.
Если ты за полгода на убунте не освоил основы работы с виртуальными окружениями - бросай это дело вообще.
Время сэкономишь.
согласен
конечно надо все нахуй снести! но сноси внимательно и вдумчиво! минимум 3 раза нужно снести! все нахуй сноси только!
больше хуярь по книжкам, меньше тыком. по крайней мере пока что.
головатый - django by example - test-driven development with python
а я не согласен! сначала надо головатого снести!
sudo apt-get install python3.5-venv python3.5-pip python3.5-dev
cd proj
python -m venv venv
source venv/bin/activate
Да просто вы дичь городите все тут, линуксоиды хреновы. Сами не понимаете какие пакеты соотносятся с какой версией, какие либы есть в репах и как они называются.
Я бы и сам запутался.
Спасибо огромное, анончик! Твоя инструкция помогла.
А как ты сам разбирался в этом вопросе? Я просто хотел бы понять методологическую свою ошибку, чтобы в следующий раз не бежать на двачи плакаться Или это нормально и все так по началу делали? Ты гуглил и по официальным мануалам учил или книжки какие? Или также советы спрашивал в своё время?
Там сразу третий бидон.
И вообще как система он лутше убунту.
Сейчас все на арче сидят кто в теме.
Можешь кстати поставить PyCharm и из него создавать свои окружения, инсталить пакеты и не тащить библиотеки в систему в принципе.
есть мануал как в виртуальном окружении ее запустить!?
зато питоноконф дохуя! по 20 штук в день создается
не помню уже.
так, на вскидку, рано в джанго суёшься если эту штуку не понимаешь.
классическое обучение питону где-то такое:
codecademy - a byte of python - think python -- и всё это почитывая параллельно лутца
потом джанго по >>853526 вот этой схеме
у меня где-то месяца 4 ушло на всё это с нулевого знания программинга и линукса, и я фигачил нифига не по пять часов в сутки
plan9 жи
uvuntu 16.04
ubuntu 16.04 с оформлением от яблока.
Проиграл.
>>853516
Вдогонку, если кто работал с либой multiprocessing и ее Pool, можете подсказать, в асихронном режиме его потоки будут лопатить передаваемый в параметрах список одновременно или ждать завершения друг дружки?
>>853565
Gentoo на форчане посоветовали, когда я музыку искал в поездку, они на все там пишут install gentoo
Тут местный apt-get написан на питоне, плюс есть eselect, чтоб между версиями переключаться одной кнопкой.
Арч
запуск ^потока^ процесса через мультипроцессинг никак не влияет на твой асинхронный код, как напишешь так и будет
как создавать contex processors?
раньше просто было папку создаёшь, туда файлы с импортами из моделей, и в настройках пропискать
сейчас вообще в 1.10 контекс процессоров не вижу
и кстати, executor = concurrent.futures.ProcessPoolExecutor(
max_workers=3,
)
max_workers - по умолчанию количество ядер, потому можешь не определять
спасибо большое.
Да забей, все равно кругом докер с вагрантом.
project
-project_dir
--settings.py:
>TEMPLATES = [
>..OPTIONS': {
>....'context_processors': [
>......'context_processors.deals.deal', - вот он, сука
-context_processors
--deals:
>def deal(request):
>..context = {'deal': Deal.objects.last() }
>..return context
в шаблоне просто:
{{ deal.event }}
и ёбанный в рот нихуя
как только не пробовал, и блядь по-старому через render, render_to_responce, и через блядь from django.template import Context, Template и Template.render(Context(context))
что за ёбанный нахуй в рот и жопу блядь, у меня уже сука зла нехватает
попробуй создать ctx = Context(context) поставь точку останова в своей йоба иде и посмотри что в ctx.
ебать я лох бессонный, я внезапно обнаружил что сам с шаблона потёр этот блок. пиздец.
дайте мне медальку дауна.
Генту-фанбои подтянулись?
cпасибо, всё равно. а то я и ночь мог ебаться.
models.py
>class Feedback(models.Model):
>..message = models.TextField()
forms.py
>class FeedbackForm(form.Form):
>..message = forms.CharField(required=True, widget=forms.Textarea)
>..def save(self):
>....instance = super(FeedbackForm, self).save(commit=False)
>....instance.message = self.message.clean()
>....instance.save()
>....return instance
base.html
><form>
><textarea id="message"></textarea>
>{% csrf_token %}
><button type="submit" name="submit">Отправить</button>
></form>
щито я упускаю?
Зачем ты переопределяешь save()? Ты ведь не делаешь никаких кастомных валидаций, а только вызываешь clean(), который, по сути, и так вызовется.
Что у тебя во view.py?
Если делать дополнительные проверки, то переопределять clean() тогда уж
Смотри, дружище, всё что есть:
feedback/models.py
>class FeedBack(models.Model):
>..date = models.DateTimeField(blank=True)
>..name = models.CharField(max_length=140)
>..mail = models.EmailField()
>..message = models.TextField()
feedback/forms.py
>class FeedBackForm(forms.ModelForm):
>..name = forms.CharField(required=True)
>..mail = forms.CharField(required=True)
>..message = forms.CharField(required=True, widget=forms.Textarea)
>
>..class Meta:
>....model = FeedBack
>....fields = ('name', 'mail', 'message')
feedback/context_processor.py
>def feedback_form(request):
>..form = FeedBackForm()
>..return {'form': form}
templates/base.html
>{% block feedback %}
>..{% include "feedback/feedback.html" %}
>{% endblock %}
feedback/templates/feedback/feedback.html
><form role="form" action="" method="post">
>..{% csrf_token %}
>..{{ form.as_p }}
>..<button type="submit" class="btn">Отправить</button>
></form>
Не сохраняет нихуя. У меня уже и башка не соображает.
Смотри, дружище, всё что есть:
feedback/models.py
>class FeedBack(models.Model):
>..date = models.DateTimeField(blank=True)
>..name = models.CharField(max_length=140)
>..mail = models.EmailField()
>..message = models.TextField()
feedback/forms.py
>class FeedBackForm(forms.ModelForm):
>..name = forms.CharField(required=True)
>..mail = forms.CharField(required=True)
>..message = forms.CharField(required=True, widget=forms.Textarea)
>
>..class Meta:
>....model = FeedBack
>....fields = ('name', 'mail', 'message')
feedback/context_processor.py
>def feedback_form(request):
>..form = FeedBackForm()
>..return {'form': form}
templates/base.html
>{% block feedback %}
>..{% include "feedback/feedback.html" %}
>{% endblock %}
feedback/templates/feedback/feedback.html
><form role="form" action="" method="post">
>..{% csrf_token %}
>..{{ form.as_p }}
>..<button type="submit" class="btn">Отправить</button>
></form>
Не сохраняет нихуя. У меня уже и башка не соображает.
Если это все, что есть, то тебе наверное не хватает вьюхи, которая будет обрабатывать POST запрос? Типа:
>def handle_form(request):
>if request.method == 'POST':
>....form = FeedBackForm(request.POST)
>....if form.is_valid():
>........form.save()
>........return HttpResponseRedirect('/success_url/')
Получается, ты форму рендеришь на более, чем одной странице, раз ты context_processor сделал? Тогда тебе еще надо атрибут action у формы указывать, чтобы слать данные на урл той вьюхи, которая будет брабатывать форму
><form role="form" action="/handle-form-url/" method="post">
И в url.py как-то так:
>urlpatterns = [
>....url(r'^handle-form-url/$', views.handle_form),
>]
у меня модель
class Book(model.Model)
____genre = model.ForeignKey(Genre)
____author = model.ForeignKey(Author)
есть еще
class Genre(model.Model)
____тут их поля
аналогично для Author
я во вьюху отдаю книгу. У Genre и Author есть свои поля, я их тоже хочу показать в темплейте, как мне выдать на темплейт именно связанные объекты с той книгой, которая у меня идет на вьюху мою?
Ну тебе анон ведь правильно подсказал - через точки
>book = Book.objects.select_related().get(pk=1)
select_related() нужно для того, чтобы сразу связанные объекты подтянуть - чтобы, когда ты будешь запрашивать автора, лишних запросов к бд не было
И дальше, например:
>author_name = book.author.name
Или в шаблоне
>{{ book.author.name }}
В этом файле лежат zlib-архивы. Но в файле нет никаких метаданных типа размера/количества файлов/оффсетов и т.п, вообще нихуя нет, кроме архивов. Даже разделителей между ними нет, они тупо идут друг за другом. Но сжатие у всех одинаковое, так что хедер (CMF+FLG) тоже и по нему можно понять где начало нового архива. Количество и размер файлов тоже неизвестен.
Так вот, нужно как-то прочитать ВСЕ архивы из файла и распаковать их. И вот на этом-то я и застрял. Прочитать самый первый получается без проблем, а вот как остальные за ним - вообще не ебу.
Программач, подскажи чего-нибудь?
[code lang=python]
for filename in sys.argv[1:]:
with open(filename, 'rb') as compressed:
with open(filename + '-decompressed', 'wb') as expanded:
data = zlib.decompress(compressed.read())
expanded.write(data)
print compressed.tell()
[/code]
Что выбрать? Как правильнее это всё организовать?
https://www.youtube.com/watch?v=RN8PdCB__lQ
В начале видео немного о вагрант, но на элементарном уровне и без должного объяснения.
ебать. Если так, то охуенно. Спасибо
>Как вы вообще работаете с разными версиями?
Ну я, например, на дебиане не парюсь и просто явно указываю версию (python3 вызывает самую свежую трёшку, python - самую свежую двушку), проверено, что на маках работает так же.
Некоторые тяжёлые либы долго и/или сложно собрать из исходников (opencv, например). Поэтому приходится использовать "системную" версию питона из-за бинарных пакетов.
ЕБАТЬ СПАСИБО, ЩА ЗАТЕСТИЛ, ВСЕ ЗАЕБИСЬ.
Блядь, так бы и сидел как даун, если бы не спросил. Пойду читать доку целиком наверное наконец.
Вряд ли, в производительность всё упрётся.
Пример задачи.
О всемогущий Aнон можешь ли ты мне пояснить, почему в ответ на код:
>s = 'd x d x d + d x d'
>re.findall('d(x d)*', s)
интерпретатор отвечает мне
>[' x d', ' x d']
заместо православного
>['d x d x d', 'd x d']
Подскажи, о могучий, где я налажал и как это исправить.
RTFM блджад
>Return all non-overlapping matches
>non-overlapping
Поэтому никаких 'd x d x d'
> If one or more groups are present in the pattern, return a list of groups
>(...) indicates the start and end of a group
Поэтому и возвращает 'x d'.
Хорошо, но как, в таком случае, получить искомый результат без построения адовых велосипедов?
Решение вполне действенное в данном случае, но не универсальное. Хотелось бы найти способ с регулярками.
Короче, каждый день каждые пять минут записываются данные, и мне нужно будет потом сравнить по дням чтобы дни рядом были и значения за каждый час, минуту.
Графики походу сложные будут, идеальнee всего таблицы, но сsv по-моему не для таких целей.
А там не сложно? И куда оно будет выводить, в айпутхон штоле или хтмл-файл?
Пробовал как-то с bokeh - оказалось дико муторно.
p = subprocess.Popen(args,
____stdout = subprocess.PIPE,
____stderr = subprocess.STDOUT,
)
while p.poll() is None:
____line = p.stdout.readline()
?
Не могу проверить, пишу с картофелины
Допустим, я хочу взять откуда-то дату через requests и направить в шаблон через контекст. Где правильно импортировать requests и использовать его? Или по гайдлайнам джанго нужно для этого создавать новое приложение?
Вообще, дайте пожалуйста юзкейсы с гитхаба, где джанго используется для построения сервисов, а не просто сайтов и общается не только со своей БД, но еще и со сторонними модулями (генераторы пдфок может, или картинок, или еще что).
Джанго бай экзампл вроде много такого было. Подробности не помню, а как делать самому без книги - не знаю, так что просто в качестве наводки.
где угодно ты можешь встроить свою логику, точек входа просто уйма: views, models, context_processors, middlewares...
джанга - не анально огороженная cms, джанга - фреймворк.
в твоем случае логику проще всего написать во вью:
import requests
def index(request):
r = requests.get('http://2ch.mail.ru/the_date_of_sudni_day_suka')
date = .....
context = {'date': data['date']}
return render(request, 'index.html', context)
Моих знаний достаточно, чтобы сделать то что ты говоришь. Дело в том, что я хочу не просто писать быдлокод, захламляя проект, а делать как правильно. Вот ищу типовой проект чтобы посмотреть как это делают профи.
дак все зависит от конкретной бизнес логики приложения. просто пиши где удобно и все - профи, ебана, так и делают.
Дело не в requests.get, а в том что это может быть другая библиотека с кучей кода под нее. Я бы логически вынес это в виде фкнкций в отдельный файл, затем из него во вью импортировал и выполнял функции. Но мне кажется это нарушит структуру django проекта.
да никак это не нарушит) я видел проект (сложный большой...) где от первоначальной структуры (как в туториале) не осталось нихуя вообще, там запилили свой фреймворк на джанго фреймворке, и нихуя! работает!
Ну пиздос, работать-то будет это, я понимаю. Но хотелось бы начинать с гуд-практиса сразу.
тогда нужно начать с постановки задачи.. вот тебе нужна эта дата посредством рекветс... она нужна в каждом вью или только в одном?
Тащемта мне нужен не requests, я привел его как пример. Мне нужно генерить данные через pypdf, принимая аргументами инпуты из форм.
прозреваю что у тебя есть какой то 1 вью с формой.
тогда просто пили файл типа "eba_pdf_functions.py", клади его рядом с forms.py или куда угодно, импортируй функцию generate_pdf из этого файла в туда, где ты будешь обрабатывать инпуты, все.
ты импортируешь что то из __future__ пайчарм предлагает тебе включить проверку на совместимость этого чего то с твоим кодом. (я обычно жмакая no)
Странно, ручных импортов я не делал. Видимо, где-то в модулях. Что это вообще? Функционал, который тестируется для выхода в следующих версиях языка или что?
скорее функционал бекпортированный в текущую ветку интерпретатора. типа захотелось вкусностей из новой ветки вот и портировали
2 scoops of django и django by example тебе уже советовали
Используешь ModelForm?
Вот тут глянь пример https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/#modelform
>>854729
Не, я не понял. Как мне проапдейтить старую запись, а не делать новую на основе этой инфы? Все что я пытаюсь сделать создает новую запись.
Javascript используют на стороне клиента. Соответственно, тебе подойдут любые мануалы по JS.
Ну ты ведь так делаешь?
>article = Article.objects.get(pk=1)
>form = ArticleForm(instance=article)
Дальше сохраняешь
>if request.method == 'POST':
>....form = ArticleForm(request.POST, instance=article)
>....if form.is_valid:
>........form.save()
Вот как-то так должно работать, проверь
Закрой программач и больше никогда не пытайся даже думать о прогграммировании, свинья.
Я не очень знаком с фронтенд. Селекторы выбирают объекты из DOM по параметрам?
Если это то, о чем я думаю, то это не зависит от джанги. Это можно делать прямо в отладочной консоли файрфокса на стороне клиента.
Все что здесь от джанги зависит это выдача статика jqurey.min в темплейт, да и то сейчас все используют wsgi для статики, а лучше CDN.
Объясните, пожалуйста, что здесь происходит.
Супер добавляет к стандартному джанговскому методу models.Model.save код, идущий до супер? Почему просто не использовать декоратор для функции? Почему в супер self передается вторым аргументом? Вообще весь механизм что происходит можете описать? Я начинаю плавать в этом всем.
Да, только он НОВЫЕ записи создает при сэйве. Я не понимаю как старую откорректировать.
Я перепробовал все что придумал, он новые озаписи создает блядь, вместо того тчобы старую обновить. Я не ебу что делать
По запросу "focus pycharm plugin" вышло нечто такое https://plugins.jetbrains.com/plugin/7138?pr= . Может, это поможет тебе. Хотя я не совсем понял проблему. Там есть пиктограмма "тоггл скролл" или как-то так, которая сама листает вниз по мере вывода.
Алсо, все еще реквестирую помощь --> >>854833 >>854836
Ну, раз уж ты спросил - представь, что твой requests.get блокирует весь, сука, процесс/тред до получения ответа. А с той стороны рукожопый вебмакак и ответ будет не раньше, чем через 15 секунд, а пока твои юзеры сосут хуй.
>>854938
>>854980
>>854895
>>854879
>>854854
Так, я понял что я дебич. Ведь я юзал темплейт, окторый гртузил мне форму, которая отправляла свои данные на другую функцию, которая именно создавала книги.
Все-таки наличие второй третьей, четвертой головы засталяет посмотреть на проблему с разных сторон.
не повторяйте моих ошибок
Супер это "ссылка" на "предка" класса (в "кавычках", потому что все чуть сложнее).
self(ClassName, self) - синтаксис 2 версии питона, в 3 все проще - super() и все
Т.е. все что этот код делает - устанавливает slug и вызывает потом метод .save() в том виде, как он определен у предка (т.е. у models.Model).
http://ideone.com/w4b1GB
раз уж ты ответил - хули ты сразу не написал что твой реквестс будет тяжелым? тогда стандартно - делаем таск в целери, отдаем во вьюхе статус "process"...
да и вообще писать подобные штуки на блокирующем фреймворке как то странно, не находишь? почему не взять aiohttp, если это апи сервис?
то есть один из крутейших веб фреймворков, с огромным сообществом и солидной историей - для дебилов?
Вы видите копию треда, сохраненную 4 ноября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.