Двач.hk не отвечает.
Вы видите копию треда, сохраненную 4 ноября 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
#2 #847140
>>847046

>Как можно посмотреть, какой код находится внутри {{ form.as_p }}


Посмотри на код отрендеренной HTML страницы, там у полей формы должен быть атрибут id - можешь написать свои стили для полей. Должно быть что-то типа "id_<имя поля>"
Или, наверное, можно в пределах тега <form> всем инпутам задавать стили оформления. Добавь форме какой-то свой id и можешь менять стили только для нее.
Можешь еще форму отображать просто как {{ form }}. В это случае поля не будут обернуты в тег <p> - возможно, тебе это поможет.
#3 #847186
>>847091 (OP)
Как переименовать файлы с 00.txt на 0000.txt на питон?
Юзаю портабельный питон.
>>847219
#4 #847217
You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to 127.0.0.1:8000/auth/login/ (note the trailing slash), or set APPEND_SLASH=False in your Django settings.

Че он хочет от меня-то блядь? У меня форма авторизации, которая отправляет логин-пароль.
>>847222
#5 #847219
>>847186
Решено с помощью Bulk Rename Utility.
#6 #847222
>>847217
разобрался
#7 #847274
У меня есть вьюха index, темплейт которой включается в main.html.

return render_to_response('store/index.html',
{'books': latest_books_list,
'username': auth.get_user(request).username})
Внутри темплейта вьюхи у меня есть {{ username }}, он нормлаьно отображает юзера. Как сделать так, чтобы активного юзера можно было передать в main.html? У меня в main.html бар, в котором должен отображаться юзернейм.
>>847288
#8 #847288
>>847274
{{ request.user }}
>>847295
#9 #847295
>>847288
Хуйня, не пашет, че только не перепробовал, ни в какую. В чем может быть проблема?
>>847297>>847298
#10 #847297
>>847295

Да, забыл сказать, что нужно еще добавить в настройках шаблонов строку 'django.template.context_processors.request'

В файле settings.py TEMPLATES --> OPTIONS --> context_processors - там увидишь
После этого ты будешь иметь доступ к объекту request из любого шаблона
>>847298
#11 #847298
>>847295
>>847297
Разобрался, хуево было отформатирована переменная. Джанге оказывается строго важно, чтобы внутри {{ }} не было переносов строк и т.п хуйни.
Анону все равно сенкс
#12 #847513
Что нужно тестировать в маленьком проекте джанги уровня вкатывальщика ?
#13 #847514
Блин, читаю про объект none, и мне, не знаю от чего, пиздецки страшно стало. Больно странная вообще эта вещь. Я один такой ебанат и буковок боюсь?
>>847517
#14 #847517
>>847514
Дай угадаю, ты тот самый поехавший, что в прошлом треде написал прогу, выбирающую из двух YOB?
>>847530
#15 #847530
>>847517
А разве не очевидно. Чем вообще можно будет заняться после прохождения курса SoloLearn? У меня уже половина пройдена.
254 Кб, 1426x1057
#16 #847564
Попытался я тут освоить отладчик в пичарме наверно единственная вещь через которую можно юзать это джаватормоз и чот не пойму за step out, чому когда я делаю step out, меня перекидывает на этот код вместо могео шкрипта?
>>847960>>850215
#17 #847621
Хай питоняши, начинающему питоняше нужна помощь, как проверить выход за пределы массива? Я так понимаю, что например array[-1, x] - это просто 2 элемент в столбце с конца?
>>847626>>847646
#18 #847626
>>847621

Точнее, видимо первый.
#19 #847646
>>847621
Эксепшен сам вылезет IndexError: list index out of range.
Индекс должен быть один интеджер, твой array[-1,x] не сработает.
>>847657>>847660
118 Кб, 1366x768
#20 #847657
>>847646
а вот и нет
#21 #847660
>>847646
Вывод поселению строку, либо последний символ
42 Кб, 272x300
#22 #847675
Сап, /pr/. У меня платина, видимо, но я не вижу в факах чёткого и понятного ответа.
Я одминю по жизни, а любой админ - немножко кодер: написать гуёвину на чём-нибудь попроще для каких-нибудь настроекв моём случае Delphi/Lazarus, наваять скриптовое полотенцеVB/sh/Perl и т.п. Есть пара своих проектов, которые начинались на Delphi, потом были подправлены для Lazarus, но на самом деле с того момента, как закончил универ толком не кодил.

Сейчас думаю о том, чтобы освоить Пайтон в первую очередь для своих проектов, а там, может, для своего сайта вместо пыхи, да скрипты универсальные получить, и, что немаловажно для меня - для моего смартфона на SailfishOS можно писать на PyQt, но это потом. Собственно, отсюда и вопрос: допустим я написал прогу с гуём на своём лине, например, на ПайКьют, но я хочу выложить её в паблик в том числе для виндузятников, смогу ли я просто выложить exe/exe+dll или что-нибудь в этом роде, чтобы потенциальным пользователям не пришлось ставить Python? Винды для компиляции и тестирования я найду.

Вообще можно ли как-то без заморочек распространять софт на питоне и в общих чертах (детали найду сам, когда понадобится) - как это выглядит?
Надеюсь, достаточно понятно сформулировал.
#23 #847697
>>847675
py2exe win
py2app osx
>>847743
19 Кб, 306x406
14 Кб, 479x192
#24 #847705
КРЯЯЯЯЯЯ ИДЕ НИНУЖНО, ВОТ Я К ТЕКСТОВОМУ РЕДАКТОРУ АВТОДОПОЛНЕНИЕ ПРИКРУТИЛ И ЗАЕБИСЬ111
>>847712
#25 #847712
>>847705
Здесь далеко не всем нужно писать поддерживаемый код для повторного использования. Да и один хуй без знания PEP никакие шармы тебе не помогут сделать правильно.
#26 #847743
>>847697

>py2exe win


>py2app osx


Это надёжный и рабочий метод без сбоев? И просто интересно, но не критично - можно ли потом из бинарника вырвать текст скрипта?
>>847754>>847755
#27 #847754
>>847743
Можно конечно, это же питон. Чтоб прям нельзя было выдернуть, это наверное только какой-нибудь cython поможет.
>>847802
8 Кб, 266x190
#28 #847755
>>847743
Судя по гуглу, можно.
Кстати, подписался на вопрос.
>>847802
#29 #847802
>>847754>>847755
Прав был Штирлиц - запоминается последнее. Меня выдираемость сырцов интересует постольку-поскольку, тупо на уровне "есть ли риск, что выложенный таким образом код окажется на 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 метров, в комплекте шли тулзы для уменьшения объёма, потом чекбокс "включать информацию для отладки" появился в опциях, а теперь он ещё и снят по умолчанию..
>>847817
#30 #847817
>>847802
Я упаковывал с помощью pyInstaller. Там вообще делать ничего не надо - просто запустил, и он сам упакует. Но размеры получаются по 1-2 мегабайта на хелловорлд (потому что это питон). Попробуй ребол. Он и проще и функциональности побольше, да и твой говнокод там вполне идиоматичен будет. И в exe тоже можно экспортировать через XpackerX.
>>847935
#31 #847858
c=lambda d:d and d.pop()+c(d)or 0
ПОчему оно не циклится на c([])?
ПОчему сразу возвращает []?
#32 #847863
>>847675
PyInstaller. Просто как два пальца сломать. Просто поставь, через 5 минут чтения туториала у тебя уже будет билд на руках.

Бугурт только будет от размера приложения. Пару метров будет сам питон, плюс метров 60 будет для каких-нибудь кутей, на которых ты свой двухкнопочный гуй для настроек запилишь. Фиг знает, вроде оптимизируется, но вряд ли до положенных толщин.

Так что сразу разрабатывай огромные программы, чтобы никто не лошил за размер дистрибутива.
>>847935
162 Кб, 1366x742
#33 #847885
Вот я не пойму. Это карма или что? Почему все функции которые описаны работают, кроме той что мне нужна?
Что я делаю не так?
>>847979
#34 #847898
>>847675

>написать гуёвину на чём-нибудь попроще для каких-нибудь настроек


В 2k16 это большая проблема, единственное, что могу посоветовать это wxWidget

> чтобы потенциальным пользователям не пришлось ставить Python?


Сейчас такого дерьма почти нету увы(?)
java/c#/python/ruby/nodejs/php/lisp всем нужна VM
>>847900>>847935
#35 #847900
>>847898
Есть еще electron для гуевин. Но я лично осуждаю вебокошки.
>>847905
#36 #847905
>>847900
Оно медленновасто, а вообще задумка интересная
А еще есть WinJS
#37 #847935
>>847817>>847863

>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 и то на апаче, а вопрос кагбе именно в дистрибуции.
#37 #847935
>>847817>>847863

>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 и то на апаче, а вопрос кагбе именно в дистрибуции.
>>847957>>847962
#38 #847955
Ребят, как вставить html код в python, чтобы в консольке цветные буквы были?
#39 #847957
>>847935

>ну да, .net-то у него уже есть наверняка


Тем не менее, его надо в инсталлер включать.
Я уже всерьез подумываю о плюсах, из-за этого дерьма
#40 #847959
Никто не знает куда переместили https://code.djangoproject.com/wiki/DjangoResources?
>>848216
#41 #847960
Алло, бамп >>847564
неужели никто не пользуется пичармом? знаю что не пользуются, но ведь наверняка установили
#42 #847962
>>847935
Дегрод, такую то хуйню высрал, даже лень пояснять.
#43 #847969
В tkinter добавил скроллбар, но стрелки почему-то у него остаются посередине , вместо того, чтобы "разъехаться" вдоль окна. Какое свойство нужно добавить?

#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()
>>847973
#44 #847973
>>847969
Все, разобрался.
#45 #847979
Бамп посту >>847885 .
Вот декларация класса.
http://pastebin.com/raw/kR107Lhj
>>847982
#46 #847982
>>847979
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']
>>847984>>847985
#47 #847984
>>847982
*colours
#48 #847985
>>847982
Да, ты чертовски прав, это работает.
Какой-то вообще кучерявый модуль. Индексатор пайшарма вообще методы не видит для него, в документации ошибки. Как это прошло в пакэджиндекс неясно.
>>847989
#49 #847989
>>847985
А что за приложение пишешь?
>>847991
#50 #847991
>>847989
Уже собственно написал. Допиливаю.
Генератор обоев из ascii животных. Все это в фласковой обертке. Вот встал вопрос выбора хороших контрастных цветов, и нашел пару сервисов. Самые лучшие - колорловерс и адобе колорс. Адобе охуенен, но он выдает дату только жабаскриптом, так что там или фантомЖс подключать чтоб кровлить либо искать замену. Вот так вышел на то поделие.
Осталось сейчас прикрутить генератор цветов и задеплоить в хероку. К вечеру выкачу сюды на пощелкать.
>>847995
#51 #847995
>>847991

>ascii животных


Это ascii арт? Тип такого:
>>848004
13 Кб, 1366x768
#52 #848004
>>847995
Наверное :)
#53 #848038
Подскажите форумы где можно пообщаться на тему питона.
>>848040
#55 #848042
>>848040
Зачем ты так со мной?
>>848058
#56 #848058
>>848042
За то, що я тебя ненавижу.
24 Кб, 1366x768
#57 #848104
Ну что же.

Кратко: https://asciiwp.herokuapp.com/

Длинно:
После небольшой ебли с хероку, я наконец даю на тест это чудо быдлокода от человека, который не хочет учить питон, но хочет что-то на нем делать.

Суть проста: вы выбираете нужный размер и получаете замечательную уникальную минималистичную (или нет) обоину с преставителями фауны нашей планеты.
Животные берутся из апи, их число неустановлено, ибо выдается одно рандомное за раз. Цветовая палитра парсится с замечательного агрегатора палитр ColourLovers. Цвета принадлежат одной палитре(каждый раз новой), что должно отсеять уебищные и сливающиеся цвета.
Отдельное спасибо хочется сказать мейнтейнерам Pillow, которые до сих пор не могут замержить однолетний патч для многострочного textsize().
Верстка делалась на коленке, ибо десктоп с маком и нужным софтом сейчас недоступен. Слепил из стартеркита бутстрапа.
Вещает через gUnicorn.
14 Кб, 1366x768
10 Кб, 1366x768
28 Кб, 1366x768
#58 #848113
>>848104
Крутота! Я уже 24 штуки сгенерировал. Ты молодец.
>>848116>>848117
#59 #848115
>>848104
Скример, лучше не открывайте ссылку.
>>848170
145 Кб, 794x1123
#60 #848116
>>848113
Да я вижу :)
Спасибо.
Интересно сколько выдержит бесплатный хероку таким темпом.
#61 #848117
>>848113
Кстати комбинации все-таки бледные-хуевые. Нужно будет эксперементировать с ключевиками для поиска палитр.
59 Кб, 564x839
#62 #848156
Питонеры пионеры как сменить объект рендеринга в pygame??
>>848168
#63 #848168
>>848156
ПРОСТО) берешь и меняешь БЕЗ ЗАДНЕЙ МЫСЛИ))
>>848170>>848173
#64 #848170
>>848115
>>848168
Господин, проследуйте в другой тематический раздел.
54 Кб, 463x604
#65 #848173
>>848168
Аки Бог смолвил
#66 #848216
>>847959
На гитхабе awesome django
И просто загугли full stack python
>>848261
#67 #848261
>>848216
Спасибо!
#68 #848265
>>848104
Код на гит залей
>>848385
#69 #848276
>>848104
В дальнейшем можно будет добавлять свой ascii арт для генерации картинки?
>>848309>>848394
#70 #848309
>>848276
Кидайте идеи, я буду пробовать это делать. Как раз научусь решать реальные задачи.
#71 #848385
>>848265
вот этому бамп
33 Кб, 1366x768
#72 #848394
Сегодня времени отвел не много, но успехи есть:

Кратко: https://github.com/thisfieldmustbefilled/ascii-wp
https://asciiwp.herokuapp.com/

Всю дикость привел в порядок, прикрутил контоль версий и настроил PyCharm.
Пробросил автоматический пайплайн из гитхаба сразу в хероку. Все изменения на гитхабе сразу пуш-деплоятся на работающий сайт.
Желающие дописать/подправить мой быдлокод могут делать это штатными методами гит (хотя можно и через тред лол). Хотелось бы не "ты ### твой код ###", а "нужно так а не так".

С темплейтами полное говно, но сейчас я не настроен их делать.

>>848276
Я только сейчас понял что ты хотел. Для этого нужно прикручивать БД, ORM и лепить модели для нее. Это хорошее упражнение, я займусь им. Если охота что-то свое сгенерить то пока костыль: https://asciiwp.herokuapp.com/custom .

При 30 минутах неактива на фри аккаунте Heroku валит воркеры, так что если сайт долго отвечает, значит погодите сервак авоматически подымается (~10сек).

Мимо ваш зеленый питонщик.
Почему так вяло в треде? .hk не резолвится и все забыли про зеркала?
#73 #848403
>>848394
А чего убрал кнопки, чтобы сразу генерировать картинки для ноутов и десктопов? Было удобно.
>>848405
#74 #848405
>>848403
Все дело в том, что обработчик форм из короба не умеет в несколько форм, постящих на один и тот же урл. Нужно либо содавать дополнительные маршруты, либо писать более изящный костыль. Я вчера только заметил что кнопка для десктопа выдавала 1366x768 и цсрф токен был у нее тот же. Добавлю фичу в следующем коммите.
#75 #848408
>>848394
Что в инпут-то вводить?
>>848409
#76 #848409
>>848408
На лицевой только размеры в пикселях.
На кастоме любой многострочный ASCII из интернета.
5 Кб, 400x600
#77 #848410
>>848394
Да, я это и имел в виду.
9 Кб, 600x800
#78 #848412
>>848394
Только я не понял по какому принципу подбираются цвета.
>>848413
#79 #848413
>>848412
Отсюда [ http://www.colourlovers.com/palettes ] через API берется одна произвольная палитра цветов с тегом 'spring'. Далее из нее произаольно выбираются два неодинаковых цвета (для фона и для текста). Это можно посмотреть в "lovers.py"
12 Кб, 1366x768
#80 #848486
иногда получается вот такой пиздец
>>848537
17 Кб, 1920x1080
#81 #848537
>>848486
Да, невозможно толком застраховаться от вырвиглазных паллетов и паллетов из оттенков одного цвета. Я не вижу принципа для создания выборки. В топ-палетах полно кислоты, по ключевикам тоже проскакивает всякое.

UPD. Добавлен более каноничный для ASCII-арта шрифт "Fixedsys". Выбрать можно в форме. Подумываю прикрутить вебфонты или какой-то источник чтобы можно было самому выбрать моношрифт по душе.
#82 #848564
Пытаюсь установить fann2 на винде(через pip). Выдает ошибку: " UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1540:
character maps to <undefined>"
Как это можно исправить?
>>848568
#83 #848568
>>848574
#84 #848574
>>848568
Спасибо
>>848608
27 Кб, 1920x1080
#85 #848608
UPD:
https://asciiwp.herokuapp.com/
https://github.com/thisfieldmustbefilled/ascii-wp
Можно выбирать положение арта на обоине.
Разобрался с пиллоу, размер текста определяется верно.
Свернул генератор в одну функцию.

>>848574
Рад что сработало на этот раз. Но на винде питонить не лучшее решение, ящитаю.
2 Кб, 210x17
#86 #848665
Предлагаю перекатиться с мейловской параши на чан с духом молодости и хардкора.
>>848669>>848680
#87 #848669
>>848665
А смысл какой? Кинул в закладки, если вдруг поддержат.
1 Кб, 136x24
#88 #848677
Лучше сюда. Програмач пока дохленький, но сам 8ч популярная и топовая борда с пользовательскими досками (онли), зеркалом в торе, и вообще приятная.
>>848680>>849080
#89 #848680
>>848677
>>848665
А тут что тебе мешает сидеть? Параноики мамкины
#90 #848691
http://python-3.ru/page/layout-management-in-pyqt5
Питоняши, почему не пашет код из раздела "блочный макет" ?
http://python-3.ru/page/layout-management-in-pyqt5
Кнопки создаются одна под другой (сначала думал что создается просто 1 кнопка, но потом поменял размер и одна из под другой вылезла), да и выравнивание идет не по тому углу
>>848698>>848712
#91 #848698
>>848691
Пикути в глаза не видел никогда, но статья написана в марте 2015. Может быть этот код уже не подходит.
#92 #848712
>>848691
Разобрался
#93 #848820
Аноны, помогите понять, когда лучше использовать пропертис, а когда методы ввиде сеттеров и геттеров? Есть ли какие-то рекомендации?
>>850833
#94 #848874
Итак, ребята. Есть задача: выкачать кусок сайта с кэша гугла со всеми подпапками и файлами. По началу работало, а затем только выкидывает ошибку 503 server temporary unavailable. И в браузере при переходе капчу просит ввести. Я не понравился гуглу? Нужно time.sleep выставить, видимо. Так вот, собственно, вопрос: сколько держится бан гугла и сколько выставлять delay, чтобы от него по голове не попадало? Ну или утилиту/скрипт подкиньте рабочий, тогда совсем будет ок. И сколько сайт хранится в кэше?
>>848875
#95 #848875
>>848874
Сайт гитхаб если что, там была годная ветка со всякими ништяками, а сегодня захожу, а там пусто, 6 часов назад чувак, которому она принадлежит всё почистил. Печально ведь.
>>848916
#96 #848883
http://pastebin.com/c0KntdmW
Привет, это говно из моей жопы. Одно из приложений моего сайта. Посмотрите на этот быдлокод. Если я приложу такой код к своему портфолио, он подарит мне вечный иммунитет к работе?

Зацените манипуляции с json при создании коммента. Это супер-костыль когда впадлу юзать поля postgresql
>>848884
#97 #848884
>>848883
Не прибедняйся, это некрасиво..
>>848885
#98 #848885
>>848884
не, это рили костыльное говно. Мне просто интересно, насколько оно костыльное, и ест ли вообще смысл выкладывать это куда-то кроме двощей.
#99 #848896
как, имея значение, найти его ключ в словаре?
>>848907
#100 #848907
>>848896
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')
#101 #848916
>>848875
Бля, пока допёр, что через гугл щитс можно табличку сделать со всеми ссылками, на гугл щитс не ругается. А потом wgetом выкачать мб.
>>848934
#102 #848934
>>848916
Блядь, всё, только дописал, всё работает, думаю да бля, в чём ошибка то, решаю проверить руками, а всё уже и из кэша удалено. Пиздец. Как нарочно блядь.
#103 #848955
решил заглянуть в питонотред

> govno = 'huyhuyhuy'


> pizda ={'huy1': ['huy', 'huyhuy'], 'huy2': ['huyhuy', 'huy', 'huyhuyhuy']}


я спокоен
84 Кб, 1514x763
#104 #849080
>>848677
Не знаю, как у остальных, а у меня нет возможности всё время сидеть на борде из-под тора.
#105 #849108
Вкатился.
Собираюсь подаваться на python junior dev, либо на django dev.
Для этого учу питон (ныне админю линухы).

Мне ООП надо? В вузе 3 года назад писал лабы на c# и что есть ООП представляю.
Функционально познать питон будет достаточно, или нахуй иду, когда дело дойдет до джанги?
#106 #849109
Сап котаны решил я вкатится в программирование, скачал python но к сожалению я такой аутист что даже не знаю как начать работу, как его запустить вообще?
>>849128
#107 #849128
>>849109
Читай Лутца. У него в "Изучаем..." три главы по сути этому посвящены. Даже совсем-совсем аутист поймёт.
127 Кб, 1340x589
#108 #849139
Что-то с кодировкой? Как починить?
>>849205>>849208
#109 #849168
Что можете сказать о Introduction to Computation and Programming Using Python?
мимо начинающий начать
#110 #849205
>>849139
Посмотри, что возвращается же в ответе от сервера. Похоже, что не json.
>>849264
#111 #849208
>>849139
Что ты пилишь?
>>849264
93 Кб, 1920x1080
#112 #849251
UPD.
https://github.com/thisfieldmustbefilled/ascii-wp
https://asciiwp.herokuapp.com/

Пофиксил размещение и размер текста. Теперь /custom может сгодиться еще и для генерации неиндексируемых пиков с номером телефона, e-mail и другой приваси даты.

Поясните, можно ли как-то избавиться от повтора строк до цикла и в нем:
https://github.com/thisfieldmustbefilled/ascii-wp/blob/master/generator.py#L15

Бр-тян пикрелейтед :)
#113 #849264
>>849205
А что ещё он может вернуть если я прямо в коде пишу json? 404?
>>849208
Список всех вбэмок на дваче. Потом можно скачать с помощью wget или смотреть онлайн с помощью mpv.
>>849282>>849304
#114 #849282
>>849264
Кстати перед запуском для всех досок тестил это на муваче. Все jsonы просмотрел и никаких ошибок не вывело.
#115 #849304
>>849264

> А что ещё он может вернуть если я прямо в коде пишу json? 404?


> Кстати перед запуском для всех досок тестил это на муваче. Все jsonы просмотрел и никаких ошибок не вывело.


Еще раз повторю. Лови исключение и смотри, что находится в content'е и status_code'е.
>>849307
48 Кб, 622x311
#116 #849307
>>849304
Весь контент выводить неудобно, а с исключениями работать я пока не умею. Кстати и правда похоже на 404. Спасибо.
>>849759
#117 #849728
Питонач подскажи где научится прогить на пайтоне если ты конченый аутист
>>849729
#118 #849729
>>849728
сначала научится прогать на паскале
>>849761>>850226
#119 #849759
>>849307
У тебя там походу какая-то хуйня с формированием ссылки на тред. Попробуй повыводить ссылки на которые запросы посылаешь
#120 #849761
>>849729
А ты хорош. Сначала освой ЯП с супер-строгой типизацией и тысячей защит от стрельбы по ногам, чтобы потом ломануться в объектный в паскале нет объектов, в отличие от FPC(который в Lazarus'е) и Delphi/Object Pascal скриптовый язык, активно срущий на всё, настолько гибкий, что из рук выскальзывает.
>>849762>>850226
#121 #849762
>>849761
Я просто подумал что конченые аутисты не знают что такое переменная вот и предложил начать сначала.
#122 #849784
>>849762
Ты неверно используешь слово "аутист".
В твоем случае имеет место просто некомпетентность или глупость.
>>850226
#123 #850005
>>849762
После того, как человек освоит Pascal с его наследниками он понимает, что это годный язык, на котором можно сделать что угодно, но на практике выяснится, что на таком языке всё пишется хорошо, но не слишком быстро. Скорее даже утомительно медленно, что быстро выбьет энтузиазм (впрочем, аутистм как раз похуй, из них получаются самые крутые гении кодинга на чём угодно).
А у того же Лутца, да и вообще в любом учебнике, не рассчитанном на профи, суть переменных, циклов, условий и прочего будет объяснена достаточно подробно.
>>850226
16 Кб, 562x284
#124 #850191
как сделать что бы в массив добавлялось слово(тобишь в connect2 вводилось слово и добавлялось в words)?
Извините,пару часов изучаю
#125 #850215
>>847564
Я пользуюсь. Очевидно, что ты вышел в код дебагера. Там же даже название твоего файла в stream есть.
>>850414
#126 #850221
>>850191
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))
>>850225
#127 #850223
>>850225
#128 #850224
>>850191
str(len(words)) == '4' не имеет смысла. len выдает тип int, так что:
len(words) == 4
>>850225
#129 #850225
>>850221
>>850223
>>850224
Спасибо няши<3 Пойду сейчас разбираться дословно <3Люблю вас
#130 #850226
>>849729
>>849761
>>849762
>>849784
>>850005
Хуле мне делать то питоняши
>>850268
#131 #850268
>>850226
Лутц - Изучаем Пистон
Лутц - Программируем на Пистоне т.1
Лутц - Программируем на Пистоне т.2
Если ничего не знаешь - пойдёт и неплохо.

Если, например, знаешь кресты, но хочешь вкатиться - хватит и чего-нибудь типа этого самоучителя и потом других примеров с этого сайта:
https://pythonworld.ru/samouchitel-python
#132 #850414
>>850215
Про код дебагера понятно, но какого хуя туда перекидывает когда я делаю step out? эта функция вообще работает?
#133 #850485
Питоняхи что с моим питоном? Иногда он не воспринимает горячие клавиши, я жму ctrl N а он нихуя, я жму F5 он хуи пинает, даже ctrl v/ctrl c неробит
31 Кб, 464x320
#134 #850544
Анон, посоветуй что-нибудь по Django с нуля. Пробовал Django by example, но вот уже 60 страниц охуеваю с "отрываем и views.py и пишет вот это" без всяких объяснений какой параметр за что отвечает. Есть что-то более адекватное?
>>850548>>850578
224 Кб, 472x668
#135 #850548
>>850544
Адриан Головатый
>>850626
#136 #850578
>>850544
документация + гугл. В документации вообще есть ВСЕ.
#137 #850593
Есть txt файл вида
##############
ГОС ОЧКИ
----------------
RUS216
BYR125
BYR110
UKR85
RUS25
NLD0
UKR0
##############
Программа должна выполняться построчно:
Берет данные из строки ГОС(например RUS) и проходится по списку. Если rus>100 и при этом встречается rus<100, то слово RUS выплевывается в консоль. Вторая строка - оба BYR>100, в консоль ничего не идет. Третья строка - UKR<100, сразу скипается. То есть, если элемент из столбца ГОС >100 и при этом встречается <100, то данные идут в консоль.
Как это сделать? Прочитать файл построчно, создать двумерный массив? Я не понимаю. Помоги, анон. Надеюсь, понятно объяснил. В пайтоне новичок.
>>850647>>851434
#138 #850599
Ребята подскажите, можно ли как-то разграничить такую запись, точнее можно ли как-то явно указать питону, что я использую не переменную, а системную функцию (вторая строка)?

http://pastebin.com/KeJYcFfd
>>850629>>850720
#139 #850626
>>850548
Спасибо, посмотрю Год издания 2010 - она там, часом, не устарела еще?
>>850794
#140 #850629
>>850599
Придумай другое имя для переменной 'time' - ты ведь уже импортировал модуль с таким именем. Не стоит так делать.

или:
from time import strftime
time = strftime("%Y %m %d")

Но лучше придумай другое имя для переменной.
>>850684
#141 #850647
>>850593
Аллах, Будда, Двач, помоги же мне!
>>850665
#142 #850665
>>850647
Осваиваешь гос. контракты?
>>850679
#143 #850679
>>850665
Ни в коем случае.
Отучился в радиотехническом вузике, но работаю обычым планктоном. Думаю взяться за решение задачки, а заодно подкачаться в пайтоне.
Понимаю, что данные можно забить в мускл, и оттуда уже выдернуть селектом, но хочется без мускл.
>>850700
#144 #850684
>>850629
Спасибо
#145 #850700
>>850679
Ты хоть какой-нибудь код напиши, а то выглядит, будто ты хочешь не научиться, а чтобы за тебя все сделали.
#146 #850720
>>850599
import time as x попробуй
>>850762
#147 #850762
>>850720
Идеальный вариант. Спасибо
#148 #850777
Стоит ли изучать питон, если достаточно хорошо знаю джаву? Правда ли, что скорость разработки небольших проектов на питоне в разы выше?
#149 #850785
>>847086 (OP)>>847091 (OP)
Что за ересь с двумя пистон-трендами, периодически вылетающими на нулевую вместе? В прошлом перекат-ссылка на этот.
#150 #850794
>>850626
нет, все основы на месте.
49 Кб, 500x428
#151 #850801
Анон, а на каком проекте (уровня джуна) можно оценить свои знания? В смысле какой проект написать?
#152 #850833
>>848820
Всё просто, сеттеры/геттеры никогда.
#153 #850847
Питонач, сильно ли будете меня бить за asyncio.sleep(n)?
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) не должен ничего нагружать, но надо замерить использование памяти при одновременном запуске множества таких корутин.

Какие мысли, анон?
>>850852
#154 #850852
>>850847
Не очень понял зачем тебе слип до запуска корутины, но в таком случае делать слип в ней — нормальное решение, ничего не нагружается, не ссы.
74 Кб, 600x800
#155 #851023
Посоветуйте хостинг для uWSGI + nginx.
>>851082
#156 #851082
>>851023
Любой VDS/VPS/dedicated где железо не в роиссе. В остальном смотри на цены и плюшки (тип виртуализации, нужность-ненужность панели управления и т.п., версию ОС - вдруг ты угорел по ubuntu 16.04, а там только 12.15...)
А так особой разницы нет.
#157 #851178
Анон, сегодня свой первый проект на гитхаб запилил.
https://github.com/pyanchesko/wallpapers_update

Понравились фотки в паблике одном, захотелось их на обои ставить. Каждый день новую.
Написал скрипт который скачивает оттуда фотку, и ставит ее на рабочий стол. Думаю ее кроном запускать.
Ubuntu
>>851212
25 Кб, 453x500
#158 #851212
>>851178

>сортировка пузырьком


>эта реализация сортировки пузырьком

>>851216>>851237
#159 #851216
>>851212
а как надо было?
>>851237
#160 #851229
Можно ли в bottle запилить ftp-like вывод содержимого директории или всё придётся делать руками?
#161 #851237
>>851216
Я не этот >>851212 анон, но отвечу
Можно было сделать как-то так http://pastebin.com/0tcRXpF7
>>851263
#162 #851263
>>851237
Спасибо Анон, а то рили чуханский код был
#163 #851296
>>847091 (OP)
Поясните за Джанго. Это вроде как крутой фреймверк, с кучей готовых фич. Можно ли в нем писать как в похапе (т.е. банальные динамические страницы)? Или там все совсем по другому? И какую версию питона он поддерживает? Хочу курсач пилить, но как бы не обосали.
>>851931
#164 #851332
Антоши, у меня к вам такой вопрос: дело в том, что я гуманитарий. Нет-нет, я не хочу вкатиться в погроммирование с нуля и зарабатывать миллионы, подождите. Учусь на ФИНАНСИСТА. Недавно был на одной лекции, на которой чувак затирал про матметоды и погроммирование в экономике, рекомендовал питон. Хотелось бы узнать, есть ли здесь какие-нибудь аналитики и дата сайентисты из экономической/финансовой сферы? Будет ли знание питона хорошим плюсом для развития карьеры или для данной отрасли знание языков программирования не стоит так остро? Хотелось бы иметь конкурентные преимущества перед толпой таких же будущих объебосов-выпускников, как и я, но хочу знать, в ту ли степь я решил направиться. Не бейте, лучше обоссыте, если что.
Случайно запостил в старый тред.
>>851371
#165 #851371
62 Кб, 604x408
#166 #851384
>>847091 (OP)
Запостил по ошибке в старый тред, поэтому репостну сюда
Привет, ночной питонач. На связи ультраньюфаг.
Решил освоить хотя бы азы кодинга, начал с питона. Я и раньше пытался его учить, но надолго не хватало. А тут вот взялся основательно. Нашел видеоуроки от майкрософт для полных чайников, но на свою беду, я пытаюсь понять фундаментальные вещи, причем сразу. Не терпится чет.А там многое оставляют без объяснения, тип делайте не задавая вопросов.
Так вот.
Вот вроде бы функция - ты ей параметры, она тебе возвращает результат.
Но что мать его происходит, когда внутри функции еще одна функция, да еще блджад с какими-то точками, как в случае с:
a = "Абырвалг"
print ( a.upper() )
То есть тут функция и print() и upper() тоже? А точка? Как зачем и почему эта точка?
>>851385
#167 #851385
>>851384
(Кодекадеми - укус питона - синк пайтон) + лутц
>>851389
#168 #851389
>>851385
Только что качнул "укус питона", и тут тоже с самого начала предмет моего вопроса без пояснений. (7.4.6)
Блин, мб стоит расслабить булки и получать удовольствие? Может я слишком спешу заглянуть вперед?
>>851390
#169 #851390
>>851389
Пока не вдуплишь основы на кодекадеми укус будет непонятен, пока не прорешаешь все с синк пайтон - не будешь знать куда конкретно питон этот пихать.
А лутц чисто почитывай фоном где что конкретное непонятно.
>>851392
#170 #851392
>>851390

>кодекадеми


Аа, так в скобочках было не перечисление вариантов, лол.
А есть альтернатива кодекадеми? Я прост хоть и учу английский, но пока не настолько уверенно им владею, чтобы чему-то учиться на нем.
>>851395>>851400
#171 #851395
>>851392
Нету
Привыкай
#172 #851400
>>851484
126 Кб, 396x512
#173 #851432
>>847091 (OP)
Анон, что лучше использовать: конструктор класса def __init__() или @staticmethod?
>>851470>>851473
#174 #851434
>>850593
Счёт строчек делай через цикл. Данные разбей через ".split" (variable.split(SYMBOL)). Потом значение переведи в тип int (int(digit_string)).
#175 #851470
>>851432
зависит от того, что тебе нужно, кек.
>>851477
#176 #851473
>>851432
блять. для чего!?
>>851477
#177 #851477
>>851470
>>851473
Для pygame. Надо проигрывать анимацию.
>>851479
#178 #851479
>>851477
ебаныврот! пойду отсюда.
>>851497
#179 #851484
>>851400
Спасибо.
#180 #851497
>>851479
Не уходи. Я тебя блинами угощу.
143 Кб, 720x1280
#181 #851544
Народ только только начал учить с нуля.
Подскажите тему двойшнику))
>>851550
#182 #851550
>>851544
что подсказать-то?
#183 #851575
Салют. Я недавно в пайтоне, подскажите, пожалуйста:
Я использую множества, из которых постепенно убираю по определённым правилам неподходящие мне варианты, примерно так:
X={'a', 'b', 'c'}
X.discard('a')
X.discard('c')

Потом, когда остаётся единственно верный вариант, мне нужно его получить. Сейчас это выглядит так:
if len(X) == 1: for i in X: res = i
Но мне кажется, что это ну просто пиздец, какой костыль. Можно это сделать как-то приличнее?
>>851578
#184 #851578
>>851575
res = next(iter(X))
или:
res = list(X)[0]
или (если этот сет тебе больше не нужен, потому что pop() удалит элемент из сета):
res = X.pop()
>>851608
#185 #851608
>>851578

>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))


Какое-то непонятное пока колдунство.
>>851609>>851611
#186 #851609
>>851608

>>\t\t


Раньше, вроде, на пробелы заменяло…
#187 #851611
>>851608
pop() - нужно со скобками писать.
>>851815
33 Кб, 497x439
#188 #851614
https://acmp.ru/index.asp?main=task&id_task=6
http://pastebin.com/masB9evt

моё решение не проходит на седьмом тесте.
мб кто-то подскажет, где ошибка?
#189 #851616
>>851614
Проверь скобки в 4 строке.
>>851621
#190 #851621
>>851616
действительно. раскрыл скобки, дошёл до 11 теста, там рантайм еррор вылетело
спасибо
>>851622
#191 #851622
>>851621
всё, решил через трай .. ексепт
#192 #851627
система рейтинга для моего пет-проекта:
в модельки книги есть поле текущего рейтинга и количества голосов
вощем, решил в модели прям забабахать методу для обновления что-то типа такого

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 же должен сработать?
>>851672
#193 #851635
>>851614
Напоминает Чарли.
#194 #851668
Привет. У меня нубский вопрос.
Нужно запилить примитивный бэк на питоне, пара http запросов и работа с бд.
Как это сделать проще всего?
>>851671
#196 #851672
>>851627
Вроде должен. Насколько помню, save сам определяет - обонвить ему данные или записать новые
#197 #851673
>>851671
Спасибо.
#198 #851674
Почему в питоне так сложно обратиться к системной команде и получить результат?
Просто сравниваю с рубишкой где `command` или system "command" и результат получаешь сразу, а в питоне код возврата.
Как-то бесячивно это.
>>851677
#200 #851700
Посоветуйте книгу для изучения бидона для шарпо/плюсобоярина, чтоб после прочтения кроме синтаксиса понимал как кишки интерпретатора работают.
Цель - применение библиотек уровня sci-kit и nltk без боли в анусе от каждой ошибки.
105 Кб, 763x1080
Плиз хелп, анон виз проблем хире #201 #851717
Нужно на питоне написать программу, которая создаёт рандомно папки и файлы в определённой папке.
В программу передаются:

Количество фалов и папок, которые нужно создать.
Глубина вложенности папок.

Т.е. файлы и папки должны быть раскиданы по структуре рандомно.
Уже тут пару часов бьюсь, не могу придумать как это реализовать.
>>851722
#203 #851720
>>851700
присоединяюсь к реквесту.
всрал на собеседовании все вопросы по питоньим кишкам
>>851724>>851773
#204 #851722
>>851717
рекурсию что ли не осилил?
>>851723
#205 #851723
>>851722
А при чём тут рекурсия?
>>851725
#206 #851724
>>851700
>>851720
если бы я интересовался кишками змеи, я бы стал учить си и читать исходники. какую вам книгу по си посоветовать?
>>851761
#207 #851725
>>851723
ну я бы рекурсией вложенную структуру создал
>>851747
#208 #851747
>>851725
Можешь расписать подробей или скинуть где про это почитать?
>>851801>>852071
#209 #851761
>>851724
мне для даунов, чтобы с основ си тогда уж.
>>851771
#210 #851771
>>851761
дак это в соседний тред
#211 #851773
>>851720
Пример вопроса с твоего собеседования?
>>851776>>852123
#212 #851776
>>851773
Вы знаете питон?
#213 #851778
Тестовое задание состоит в следующем:
Необходимо написать парсер исходного файла с данными: JSON, CSV, XLS (на выбор). По структуре данные представляют собой Группу (Регион), параметр (Страна) и Значение. Группы содержат в себе ряд параметров, у каждого из которых есть свое числовое значение. Эти данные нужно записать в базу данных.
Реализовать вывод имеющихся данных в виде столбикового графика. Выбор библиотеки на Ваше усмотрение. Например, HighCharts, AnyChart, AmCharts, либо любая другая библиотека графиков. Над графиком выпадающий список с Группами. При переключении группы в графике выводятся соответствующие данные, т.е. Параметры и их Значения (по осям графика), присущие выбранной Группе.
По результатам выполнения этого задания определятся ваша скорость и качество кода, которые повлияют на возможность дальнейшей работы.

Дали тестовое задание сегодня
#214 #851786
>>851778
Крутяк
Из бд надо читать данные и выводить на график? Какой-то питоно фреймворк будешь использовать?
>>851802
#215 #851801
>>851747
типа такого http://pastebin.com/80Gz82sB отлаживать было влом, так что хз как работает, но пару раз вроде сработало)
>>851983
#216 #851802
>>851786
Джанго
#217 #851815
>>851611
Вот жеж я невнимательный дятел.
Спасибо!
#218 #851819
>>851778
ну ничего сложного, дольше с темплейтом/jquery возиться
#219 #851820
Начал учить джанго, оказалось что по самому популярному фреймворку питона почти нет актуальной информации, а все книги писались еще для 2.7 версии питона. Но пох, нашел перевод документации. И что нахуй? Это ебаный пиздец, я понимаю что высокоуровневые языки на то и расчитаны, что бы писать код мышкой нихуя не понимая как это работает, но это уже просто пиздец, просто на тебя вываливается 20 строк кода с коротеньким описанием того что он делает, но без пояснения как. Еще веселят пояснения в духе "эта функция может принимать несколько аргументов". Все. Урок окончен. Пиздец. И это один из самых популярных языков? Мне просто копировать стену кода каждый раз когда я буду создавать сайт?
На пакет из ~15 файлов и ~500 строк кода 15 строк пояснений, все джангисты так и прогают, копируя код, понимая только зачем он нужен?
#220 #851822
>>851820
"Начал учить джанго, оказалось что по самому популярному фреймворку питона почти нет актуальной информации..."
дальше не читал. ты в очи долбишься.
#221 #851823
>>851820
Список твоих проблем:
1. не знаешь английский
2. не можешь в документацию
3. не можешь в stackoverflow
4. не можешь в чтение и разбор исходников
>>851830
#222 #851826
>>851820
ты не с того начал, начни с изучения самого питона.
#223 #851829
Скажите, а можно ли самому сделать полноценный сайт с БД и всем остальным, у которого весь серверный код написан на Пайтоне? Можно ли это реализовать без фреймворков и стоит ли так делать хотя бы для небольших проектов?
#224 #851830
>>851823
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',
]
?? В уроках, которые идут с документацией, эти строки проигнорированы полностью, мне просто скопировать и идти писать резюме о поиске работы сеньера девелопера?
>>851834>>851858
#225 #851831
>>851829
Сам питон тоже должен быть написано на питоне? Никаких модулей на си?
#226 #851834
>>851830

> 2. Лол, я про документацию и расписал


> я должен сам понять вот это: MIDDLEWARE = [


5 ceкунд в гугле:
https://docs.djangoproject.com/en/1.10/topics/http/middleware/

> 3. Еще вопросы маил ру посоветуй


Да ты же неадекват.
#227 #851840
>>851829
конечно можно, фреймворки же написаны на питоне. только в итоге ты напишешь свои фреймворки.
>>851849>>851859
#228 #851849
>>851840
и кстати, это увлекательно и очень познавательно. например, начни писать "легкую" джангу, но не переусердствуй в своем аскетизме! активно используй стандартную библиотеку.
#229 #851858
>>851830
программирование это тебе не увлечение на недельку и потом 300к в секунду. это серьезная профессия, одна из сложнейших, с большими трудозатратами. года уйдут у тебя до сеньора. поэтому иди сука пидор и читай про каждую сука пидор строчку сука пидор. а когда поймешь какой ты здесь фейл устроил, приходи и задавай адекватные вопросы.
>>851862>>852311
#230 #851859
>>851840
Ну, для небольшого сайта, который мне сейчас нужен, мне хватит работы с БД на простейшем уровне, а если захочу что-то серьёзное, например, стендэлон-блог, то наверняка воспользуюсь чем-то готовым. Или, чем чёрт не шутит, может и до своего дойду, вон у lleo (Леонид Каганов) таким образом весьма нихуёвый биноникл вырос на пыхе со временем.
>>851868
#231 #851862
>>851858

> это серьезная профессия, одна из сложнейших,



Забавно, вчера видел как какой-то хуй-петонист на хабре хабре, написал статью о том, что мол можно в мидла за 3 месяца (или что-то в подобном духе).

А тут на двачике, люди за сурьезность топят.

Сюрреализм, блядж.
>>851864>>851871
#232 #851864
>>851862
да я читал этого петуха из тайланда? вроде
>>851873
#233 #851865
>>851829

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

В твоем случае, если не хочеться разбираться с django, вникать в mvc и тд. можно взять тот же flask и быстренько наклепать проект на нем.
Порог вхождения там почти нулевой, всякие либы для комфортной работы тоже присутствуют

pandas-кун
>>851887
#234 #851868
>>851859
сайтик-хуяйтик - понятно, но если есть время и желание разобраться в языке\технологиях глубже, то...
>>851887
#235 #851871
>>851862
2ch - SERIOUS BOARD
#236 #851872
>>851778
Если дали задание по данных, то это с вероятностью 99% будет работа с библиотекой pandas. Возможно, если они не упомянули ее в задании, то подойдет ответ на чистом питоне, но если ты сделаешь на панде, тебя точно пригласят на собеседование. Вообще, я собирался немного популяризировать pandas на дваче, так как работаю с ней уже порядка года, так что буду рад помочь ( в рамках треда, конечно)

pandas-кун
#237 #851873
>>851864

ага, тот самый. Неофиты наслушаются петуханов, а потом как то внезапно вырастет очередное поколение индусов, с которыми тебе работать придется.
>>851881
#238 #851881
>>851873
думается проблема кроется в культурном слое:
1) легкие деньги!
2) почему легкие?- потому что вон на западе пацаны по 18лет неокончили ВУЗ, написали фейсбуки,... и на порше гоняют!
3) не такой как все (не быдло) - романтика! я хакер епта!
>>851885
#239 #851885
>>851881
и это удручает. и так везде между прочим, например, долго искали нормального, не криворукого паркетчика... это пиздец! - 3 раза переделывали.
#240 #851887
>>851865

>Фишка питона именно в быстрой разработке.


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

>если не хочеться разбираться с django, вникать в mvc и тд. можно взять тот же flask


Суть ясна - можно, но смысла мало. Значит, поковыряю фреймворки, когда с десктопным более-менее разберусь.
>>851868

>есть время и желание разобраться в языке\технологиях глубже, то...


...можно написать и свой фреймворк, lol. Шучу. Ясно, проще пользоваться фреймворками. Правда, несколькими потами выше один товарищ уже бугуртил с джанго, на что ему сказали:

>ты не с того начал, начни с изучения самого питона.


То есть, чтобы работать с серьёзными фреймворками, нужно уже иметь некий скилл.
Пойду его набирать, всем спасибо!
Вопрос к ребятам из треда #241 #851898
Вобщем, хочу создать туториал по pandas, от парсинга данных из web api и до telegram bot`a, который выдает графики по запросу. Есть ли здесь люди, которым это будет интересно?

pandas-кун
#242 #851901
>>851898
Словно туториалов по твоему пандас не хватает в интернете.
>>851904>>851918
#243 #851904
>>851898
>>851901
да, в чем фишка твоего туториала?
#244 #851918
>>851901
Туториалы есть, но в большинстве своем эти туториалы для людей знакомых с data-science, я же хочу показать, как pandas можно использовать в более обычных задачах, где, казалось-бы, можно обойтись и чистым питоном, но на панде это получается решить быстрее и эффективнее в плане производительности приложения
>>851921
#245 #851921
>>851918
а будет распараллеливание по процессам\тредам?
>>851930
#246 #851930
>>851921
Не думаю, что будут такие штуки, не хочу слишком усложнять и без того не простой туториал.
>>851936
#247 #851931
>>851296
Бампик.
>>851938
#248 #851933
>>851898

>Есть ли здесь люди, которым это будет интересно?


Мне интересно.
#249 #851936
>>851930
не, пиши конечно, дело то хорошее. только предметности какой нибудь бы, например: "распределенная система обработки данных на архитетуре SOA\Microservice". кстати, могу посодействовать в архитектуре, давно мысль запилить микросервис архитектуру..
#250 #851938
#251 #851941
>>851898
Очень интересно
Сам чуть игрался ими в рамках быстро дропнутого курса ШАД на и курсере, понял что это как уютный эксельчик, но на том и все
#252 #851943
>>851898
очень интересно
14 Кб, 900x598
#253 #851972
>>851671

> https://dataset.readthedocs.io/en/latest/


А вот это заебок!
339 Кб, 1600x1200
#254 #851983
>>851801
Даже не знаю как сказать спасибо! Не знаю, веришь ли ты в карму, но, в общем, я новенький в программировании, над этой штукой бился сегодня полдня, толком ничего не получалось, не то всё выходило, спасибо тебе огромное!
>>852125
#255 #852011
>>851898
Пиши
мимо оп
чернило !AN5G2JJLXA #256 #852071
>>851747

> Можешь расписать подробей или скинуть где про это почитать?


Хоть бы Кнута по алгоритмам осилил, прежде чем такие вопросы задавать.
#257 #852072
>>851898
Туториалы не нужны, тем более pandas сама рисует графики. Хз какому дебилу это будет интересно.
25 Кб, 951x237
#258 #852073
Хотя лол, если здесь есть такие дебилы, я не буду удивлен.
>>852211
#259 #852123
>>851773
спрашивали про внутреннее устройство словарей, списков, что будет если два раза импортнуть один и тот же модуль, что-то еще было, вспомню напишу. Про работу with спрашивали еще.
#260 #852125
>>851983
пожалуйста)
#261 #852129
for i in range(len(minimax)):
print(i)
if math.isnan(minimax):
pass
else:
if minimax < 0:
minimax.pop(i)

Зорким змеям будет видно, что проблема в том, что список постоянно теряет в длине и выдает ошибку out of range. Есть ли способ починить не прибегая к использованию второго списка?
>>852157>>852565
#262 #852157
>>852129
minimax это что?
>>852160
#263 #852160
>>852157
очевидный список со значениями. Мне нужно убрать из него все отрицательные.
>>852172
#264 #852172
>>852160
filter же
>>852173
#265 #852173
>>852172
да я уже сделал.

Теперь надо понять как найти минимаксные критерии функции, ебаной.
#266 #852211
>>852073
Мне больше понравилась конструкция "if...elif".
Данный код, правда, сокращается до двух строк:

>a = input()


>print(a.isdigit())


Булева переменная тут не нужна, нечего плодить сущности, ясно, что дело не в принте, поэтому лучше так:

>a = input()


>if a.isdigit:


> statement1()


>else:


> statement2()

#267 #852221
Ребята, дорогие, а напомните пожалуйста что делать со статик файлами что бы они работали в режиме дебага?

проект
- проект
- приложение
- 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

Буду крайне признателен
#267 #852221
Ребята, дорогие, а напомните пожалуйста что делать со статик файлами что бы они работали в режиме дебага?

проект
- проект
- приложение
- 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

Буду крайне признателен
>>852237>>852245
#268 #852237
>>852221
Ну же, судари, я уверен с этой хренью так или иначе все сталкивались, я и сам пару раз делал но рытьё в старых проектах нифига мне не дало почему-то, что-то проёбываю или в джанго 1.10 что-то поменяли
>>852243
#269 #852243
>>852237
У тебя вся статика лежит в отдельной папке, а не в приложениях, как я понял.
Попробуй в настройки добавить

>STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)

>>852254
#270 #852245
>>852221
Лол, ты статику через python отдаёшь? Это прошлый век.
>>852246
#271 #852246
>>852245
Расскажи как в этом веке надо делать?
>>852247
чернило !AN5G2JJLXA #272 #852247
>>852246
nginx или еще что-нибудь, что будет быстрее (пересобранный nginx, где выкинута куча ненужного говна).
>>852253
#273 #852253
>>852247

>nginx


А, ну это ясно. Я думал, ты сейчас про что-нибудь новое расскажешь.
В продакшене, само собой, он будет nginx использовать. Тут же речь идет о том, чтобы только во время разработки обрабатывать статику встроенным сервером.
>>852266
#274 #852254
>>852243
прописал, не помогает.
>>852258
#275 #852258
>>852254
Строка 'django.contrib.staticfiles' есть в INSTALLED_APPS?
>>852260
#276 #852260
>>852271
#277 #852266
>>852253

> обрабатывать статику встроенным сервером


Нахуя? Сделать реверс-прокси и готово. Впрочем, твоё дело.
Как в джанге это делать не ебу, сам не пользовался её сервером для такой цели.
>>852269
#278 #852269
>>852266
спасибо что хоть без бовера, гульпа и прочей ебалы. тоже не "прошлый век."
#279 #852271
>>852260
Хмм.. Ну я тогда не знаю.
Перезапуcти сервер. А потом обнови страницу CTRL+F5
Проверь всё, может опечатка где-то есть.

>if settings.DEBUG:


Эта строка не нужна

>STATIC_ROOT = os.path.join(BASE_DIR, 'static/')


Слеш убери. Он вроде никак не влияет, но и не нужен

STATIC_ROOT - это вообще должна быть пустая папка, в которую ты соберешь всю статику со всех приложений для того, чтобы обрабатывать ее потом сервером типа nginx'а, когда деплоить проект будешь. Переименуй, например, в 'collected_static' или или еще как-то.
>>852275
#280 #852275
>>852271
не помогло. буду дальше развлекаться.

когда они блядь это починят, уже год я из раза в раз ебусь с этой придурошной хуйнёй. и да, она простая, всё ж не memory leak'и ловить, но какого блядь хуя.
>>852279>>852280
#281 #852279
>>852275

> когда они блядь это починят


В багтрекер написал?
#282 #852280
>>852275
Тоже временами ебусь то с этим, то с подключением собственных приложений - легко упустить какую-нибудь деталь.
В принципе, могу щас тоже взглянуть на твой проект, если выложишь куда-нибудь свой код.
#283 #852288
аноний, нужно аутентификацию через соц сети, какой пакадж выбрать, а то их что то дохуя: https://djangopackages.org/grids/g/authentication/
>>852292
#284 #852289
СУКА Я ОПЯТЬ НЕ ПОНЯЛ ЧТО Я СДЕЛАЛ, НО СТАТИКА ЗАГРУЗИЛАСЬ

да ёбаный нахуй, магия блядь, шайтан арба!
>>852291
#285 #852291
>>852289
короче, на тестовом сервере collectstatic делать категорически нельзя.
#286 #852292
>>852288
Python social auth и django-allauth - вроде бы самые популярные
>>852294
#287 #852294
>>852292
вроде да, но какой выбрать?)
>>852299
#288 #852299
>>852294
Бери django-allauth
#289 #852311
>>851858
Самый толковый ответ, спасибо.
Вчерашний пожар закончился, буду на выходных курить мануалы, а пока кто мне объяснит, зачем все таки нужен stackoverflow? Уж явно не для того, что бы скролить в надежде найти ответ на интересующий вопрос
#290 #852369
А смотри, двачик, у меня есть в джанго апп Pages
В 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 }} я получаю ебаное ничего

В чём я обосрался?
#291 #852382
>>852369
как это хоть загуглить-то?
#292 #852395
>>852369
BlogDetails - это что ттакое? Если модель, то должна наследовать моделс.Модел. Или у тебя пейдж - это абстрактная модель? Или же тебе нужно наследование типа Блог - страницы? Тогда это делается через ForeignKey. У тебя какая-то непонятная хуйня, крч.
>>852481
#293 #852414
>>852369

>settings = BlogDetails.objects.first()


Оно ведь QuerySet возвращает, не?

Попробуй в шаблоне:
{% for s in settings %}
{{ s.page_name }}
{% endfor %}
>>852481
#294 #852477
>>851614

> acmp.ru


Интересный сайт.
Смотреть решения других участников можно?
#295 #852481
>>852395
Абстрактная модель, да.
Чего-то не завелось. Поскольку время поджимает - забил хуй и вставил код прямо в модели. Да, дублирование и вообще тупо. Потом переделаю.
>>852414
Попробовал, чего-то не цепляет вообще. Но спасибо.
#296 #852534
а как url'ку делать на другое приложение?

вот тулю я в шаблон {% url "blog" %}
мне и нужен "^blog/$" в принципе
чё оно от меня ещё хочет? дописывал как во view оно называется, и url blog:post_list и 'blog' 'post_list' и ещё пара вариаций - или темплейт эррор или no_reverse_match
>>852540
#297 #852540
>>852534
url 'blog.views.post_list' тоже писал
разумеется в INSTALLED_APPS всё есть и в urls.py проекта пусть к приложению занесён
типа аргумент какой-то нужен, но какой блядь аргумент когда с другой стороны функция без аргументов? не понимать
>>852542
#298 #852542
>>852540
name указан в урл паттерне? Типа так:

>(r'^blog/', blog_view, name='blog'),


и в шаблоне потом

>{% url 'blog' %}

>>852543
#299 #852543
>>852542
Вот я баран блядь
Там другое было написано.
Спасибо тебе большое.
#300 #852565
>>852129
Перебирать список с конца?
749 Кб, 400x318
#301 #852582
проверьте решение первой задачи
говнокод

http://pastebin.com/uee5YmH0 - моё решение

https://olymp.hse.ru/data/2016/10/05/1122855045/Демо отбора 2016-2017.pdf - задания
>>852591
#302 #852591
>>852582
Перепиши с нормальными названиями переменных, аутист ебучий.
#303 #852637
Снова выручайте, ребята.

есть категории, есть продукты
как в шаблон вывести их все, типа

>категория1:


>-продукт1


>-продукт4


>категория2:


>-продукт2


>-продукт3



в шаблоне вообще как-то фильтровать можно вообще?
>>852640
#304 #852640
>>852637
Вопрос по django, конечно же
>>852644
#305 #852644
>>852640
А все, разобрался

> {% for category in categories


> ..{% for product in category.products_set.all


> .....

#306 #852652
Вот есть апп deal с шаблоном hotdeal.html
как его впердолить в base.css
я так понимаю {% include "deal/hotdeal.html %} не обрабатывает запросы, а тупо выгребает хтмл

Тогда что делать?
>>852653>>852741
#307 #852653
>>852652
в base.html конечно же
13 Кб, 755x169
#308 #852665
http://rosettacode.org/wiki/Brace_expansion
http://rosettacode.org/wiki/Brace_expansion#Python

Есть ли обратный алгоритм, который бы пусть не самым оптимальным образом, но оптимизировал бы плоские листы в подобные древовидные структуры?

Интересует свёртка регулярных выражений такого типа:

пидор|исидор
(п|ис)идор
>>852759>>852995
28 Кб, 480x640
#309 #852702
Привет, анон.
Только начал учить питон (неделю), ибо язык вроде топовый. Сейчас читаю Byte of Python. Потом буду поглощать Луцмана и Саммерфилда. В день уделяю этому один-два часа. Есть ли какие-то шансы выучить его на уровне составления каких-то более менее программ среднего уровня до конца года?
И еще в этом году диплом. Решил в дипломном проекте составить программу на питоне для юр.фирмы(знакомые). Можете подсказать какие-нибудь идеи программы, чтобы она могла как-то использоваться на данном предприятии?
Заранее спасибо.
>>852704>>852945
#310 #852704
>>852702
Да, может успеешь.
Дочитав Синк Пайтон ты сможешь написать почти что угодно на питоне.
CRMку им напиши. Или поисковик по документам на elastic search/solar с беком на боттле или еще чем постом.
>>852709
#311 #852709
>>852704
Cпасибо большое. Но не подскажешь что за СинкПайтон?
>>852715
#312 #852715
>>852709
Think Python
Есть где-то на русском
#313 #852741
>>852652

>{% include "deal/hotdeal.html %} не обрабатывает запросы


Что ты имеешь в виду?

Можно наследовать шаблон hotdeal.html от шаблона base.html:
{% extends 'base.html' %}

Или что ты хочешь сделать?
>>852743
#314 #852743
>>852741
Я хотел как в php с инклудами - инкуднул и оно прогнало шаблон по его вьюшке, выгребло данные из бд, вставило.
Питон так не делает, он инклуднуть может конечно но не парясь, безо всяких данных, только то что в самом шаблоне есть ото и его
В итоге я просто во все нужные страницы теперь вставляю блок и во вьюхи соответствующее. Окей.
>>852756
#315 #852756
>>852743
Думаю, я тебя понял. Наверное тебе нужны inclusion tags https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/#inclusion-tags
Создаешь свой шаблонный тег, который состоит из функции (которая может дергать данные из бд, например) и шаблона, в который рендерится результат работы функции. Потом в любой шаблон можешь включать этот тег.
>>852770
#317 #852770
>>852756
Ого!
Спасибо большое
>>852805
#318 #852805
>>852770
А если тебе нужно отображать эту информацию на всех страницах, то может быть будет лучше свой context processor написать.
https://docs.djangoproject.com/en/1.10/ref/templates/api/#writing-your-own-context-processors
Пишешь функцию, которая возвращает словарь, добавлешь ее в список context_processors в настройках и у тебя во всех шаблонах будет доступна переменная - результат работы твоей функции.
>>852836
#319 #852836
>>852805
Спасибо тебе большое
#320 #852837
Товарищи, а подскажите мне пожалуйста вот ещё что:

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

Куда рыть в таком случае?
>>852850
#321 #852850
>>852837
Если используешь nginx, глянь https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/
>>852854
#322 #852854
>>852850
Спасибо, нашёл https://github.com/johnsensible/django-sendfile - я так понял это и есть обёртка для нгинкса. Но не уверен.
>>852857
#323 #852857
>>852854
Бегло взглянул - кроме энжиникса поддерживает и другие сервера, но для nginx-a использует как раз тот самый x-accel
Так что тебе должно подойти
#324 #852900
>>852897
мне просто интересно хули там дискассить
#325 #852937
>>851700
Удваиваю вопрос.
#326 #852945
>>852702

>Есть ли какие-то шансы выучить его на уровне составления каких-то более менее программ среднего уровня до конца года?


На самом деле зависит от того, что ты уже умеешь. Если изучаешь с нуля, то навряд ли. Нужно, чтобы мозг понял, как вообще кодить, нужна практика и шишки, а это за пару месяцев не получишь.
#327 #852954
>>852897
Унылые ребята.
>>852967
#328 #852967
>>852969
#329 #852969
>>852967
Ну, может балабольство про технологии без их понимания и плоские двачерские шутки действительно для кого-то классно.
#330 #852970
>>852759
Совершенно не то, увы. Что лемматизация сделает с инпутом вроде этого самого "пидор исидор"? Правильно, ничего.

Я нагуглил вчера frak, он под кложуру. Вот мне примерно такое требуется, но необязательно, чтобы форматировало в регексп.
#331 #852972
>>851700
Think Python
>>853354
#333 #853003
>>852995
Всё не то. См. пикчу.
#334 #853206
я правда гуглил

Мне нужна функция, в которую можно было бы задать букву, а она при запуске имитировала нажатие этой буквы на клавиатуре.
>>853207
#335 #853207
>>853206
Гугли как эмулировать нажатие клавиши, функцию потом легко сделаешь
>>853217
#336 #853217
>>853207
Да, я так и хотел. Не знал только что именно гуглу скармливать.
#337 #853220
Судари, а подскажите
Модель джанго, поле

>colors = models.CharField(choices=colors_list)


хочу в choices добавить html
ну типа

>colors_list = (('red': '#f44336'),('blue': '#2196f3'))



есть какой-то вариант в джанго-админку запихивать это всё например с style="background-color:#xxxxxx" в подложке каждого пункта списка? Как это делать вообще?
>>853224
#338 #853224
>>853220
Вот это попробуй http://stackoverflow.com/a/21297539/5201699
Если не получится, то вот вариант посложнее, потому что тебе, видимо, придется шаблоны админки переопределятьhttp://stackoverflow.com/a/2836295/5201699
>>853235
#339 #853235
>>853224
Спасибо большое.
79 Кб, 696x1024
#340 #853269
Django, вопрос по моделям.

Есть список категорий с подкатегориями. Дальше идут принадлежащие им item'ы. Всё как обычно, всё работает, заебись.

Теперь выясняется что item'ы отдельных категорий должны иметь разные списки характеристик, частично пересекающиеся.
Важно: конечное количество категорий и все конечные характеристики для итемов известны.

Вопрос как это грамотно организовать. Конечные значения известны, поэтому какой-то фабрики не требуется.
Достаточно ли просто сделать абстрактный класс для item, имеющий все пересекающиеся поля, и от не наследоваться остальным? Или это пиздец, потому что по сути придется написать десяток-два моделей вручную, у каждой из которых еще связь с общей таблицей категорий?
>>853321
134 Кб, 1440x900
113 Кб, 524x601
#341 #853273
"Сениор" рассказывает про "настройку тэстовой инфраструктуры" (докир).
Сам он, по его словам, с докиром дел никогда не имел, но считает что "вообще наверное это нужно".
#342 #853321
>>853269
я базовым классом модели сделал, потому что не известно количество и содержание моделей, но некоторые пересекающиеся поля есть, к тому же для каждой модели еще и форму надо... поэтому получается так что при добавлении новой сущности хочешь-не хочешь, а код писать придется.
#343 #853325
>>853273
Суть подобных мероприятий в одной пикче
#344 #853326
Ребятки, снова вопрос есть.
Вот я сделал две модельки,

>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?
>>853327
#345 #853327
>>853326
можно даже без фильтрации, а просто MultiSelect какой-нибудь но на загрузку файлов
#346 #853339
Есть ли у кого Effective Python 2015 в любом формате?
#347 #853351
Django admin multiply files upload в гугле даёт одну хуйню
Что делать-то блин?
>>853375
#348 #853354
>>852972
Благодарю.
#349 #853359
>>853273
вчера посмотрел, да, пиздец. Как-будто двойные стандарты.
>>853385
#350 #853375
>>853351
Тебе нужна возможность загружать новые файлы со страницы со списком файлов, правильно?
Гугли как переопределять стандартные (и добавлять новые) вьюхи и темплейты в админке.

Наверное, на странице со списком файлов можешь поместить кнопку "Upload files". Кликаешь на нее и перенаправляешься на страницу добавления файлов с формой (может быть это будет новая вьюха, а может и ту, которая у тебя уже есть получится использовать). После загрузки файлов редиректишься обратно.
Ну или на страницу со списком файлов запихай форму, но, наверное, тогда тебе стандартную вьюху надо будет переписать, чтобы она еще и загрузку фалов обрабатывала.
Вот тебе решение для загрузки нескольких файлов https://docs.djangoproject.com/en/1.10/topics/http/file-uploads/#uploading-multiple-files

Сам такого не делал, но мне кажется должно сработать.
>>853388
#351 #853385
>>853359
Там суть не в двойных стандартах, а в том что индивид - неразбирающийся колхозник без образования (даже "тест" пишет постоянно через "э") и уже несколько лет как без практики, при этом вешающий лапшу на серьёзных щах.
Это отдельный вид петушков, позиционирующих себя как специалистов, при сидящих на какой-то должности в конторке где они такому же говноеду-начальнику смогли навязать свою охуительность и незаменимость. Постоянно наталкиваюсь на таких, если ищешь работу и видишь что-то подобное - беги и не оглядывайся.
#352 #853388
>>853375
Не, мне прям с админки
Есть моделька страницы с файлами, она зарегана в админке, вот нужно прямо из неё загружать файлы
>>853400
#353 #853400
>>853388
Ну так я тебе про это и говорю ведь, кажется. Или я неправильно понял?
Есть у тебя страница в админке со списком файлов, там фильтры какие-то у тебя еще что-то.. Вот туда и зафигач кнопку или форму.
>>853409
#354 #853409
>>853400
Это я тебя неправильно понял, извиняюсь.
Да, как вариант можно попробовать, спасибо большое.
>>853429
42 Кб, 1209x358
#355 #853429
>>853409
https://vorillaz.github.io/devicons/#/cheat
Как впихнуть эти чары в питоновый стринг? u'\eXXX' не работает.
>>853445
#356 #853445
>>853429
'\ueXXX'
ord('\ueXXX')
int('eXXX', 16)

Выбирай на вкус
>>853456
#357 #853456
>>853445
Спасибо!
Первый вариант работает. Остальные что-то не то возвращают, там модуль пытается сделать им сплит но не может, рейзится атрибутэррор.
>>853467
#358 #853467
>>853456
Первый - это символ, второй и третий возвращают integer значение юникодного символа
chr(ord('\ueXXX')) == '\ueXXX'
#359 #853503
>>847091 (OP)
>>847091 (OP)
>>839462 (OP)
ИТТ долбаёб, изучайющий питон уже полгода и до сих пор не могущий в настройку правильной версии.

У меня убунта стоит, в ней прошит 2.7. Я хочу работать в версии 3.5.

Как вы вообще работаете с разными версиями? Или проще снести бубунту и перейти на дистрибутив, у которого изначально расововерная версия питона? Несколько часов сегодня проебал, пытаясь в этом вопросе разобраться Я знаю, что долбоёбПомогите убогому
#360 #853507
Парни, какими модулями лучше реализовать параллельное выполнение нескольких экземпляров функции с передачей результатов одной функции-обработчику, чтоб минимальное вхождение особенно для тех, кто раньше с параллелизмом вообще дел не имел?
Спасибо
>>853516>>853579
#361 #853508
У меня модель книжки, к ней через поля ForeignKey присобачены автор и жанр книги. Как мне во вьюхе для определенной книги вывести атрибуты связанных с ней авторов и жанров? Author.objects.что писать?
>>853515
#362 #853512
>>853503
Возможно питон3 у тебя установлен, просто он не дефолтный.
Проверь: python3 -V
Скриптики свои можешь запускать так: python3 script.py

Еще погугли virtualenv - в сети куча всего про это написано.
>>853520
#363 #853514
>>853503
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 ставит, удаляет, обновляет пакеты только в этом окружении и не трогает ни гловальное, ни какое либо еще.
>>853531
#364 #853515
>>853503
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 , ну ты понел короче
#365 #853516
>>853507
import threading
>>853579
#366 #853518
>>853515
это не наследование а просто связь бд
>>853523
#367 #853520
>>853512
Проблема не со скриптами, а с джанго.
С виртуальной средой я поебался и что-то нихуя в итоге не вышло. Гайдов понятных так и не нагуглил. Подумываю снести систему, чтобы поставить сразу с дефолным питоном нормальным. Есть также аккаунт на pythonanywhere, но как там сменять дефолнтую версию я тоже нихуя не понял.
35 Кб, 604x362
#368 #853522
>>853503
Если ты за полгода на убунте не освоил основы работы с виртуальными окружениями - бросай это дело вообще.
Время сэкономишь.
#369 #853523
>>853518
согласен
#370 #853524
>>853520
конечно надо все нахуй снести! но сноси внимательно и вдумчиво! минимум 3 раза нужно снести! все нахуй сноси только!
#371 #853526
>>853520
больше хуярь по книжкам, меньше тыком. по крайней мере пока что.
головатый - django by example - test-driven development with python
>>853528>>853563
214 Кб, 977x1200
#372 #853528
>>853526
а я не согласен! сначала надо головатого снести!
135 Кб, 1600x1066
#373 #853529
ебаный линепс! не игор нихуя, нихуя нихуя!
>>853549
15 Кб, 400x400
#374 #853530
>>853520
>>853520

>С виртуальной средой я поебался и что-то нихуя в итоге не вышло. Гайдов понятных так и не нагуглил. Подумываю снести систему, чтобы поставить сразу с дефолным питоном нормальным.


Сука пиздец. Сделал мой вечер.
18 Кб, 733x82
#375 #853531
>>853535
229 Кб, 797x1200
#376 #853533
интернет этот еще сука большой заебался искать это вот все
#377 #853535
>>853531
sudo apt-get install python3.5-venv python3.5-pip python3.5-dev
cd proj
python -m venv venv
source venv/bin/activate
>>853537
#378 #853537
>>853535
да ему похуй он все в одну строчку хуярит
>>853541
288 Кб, 1600x1066
#379 #853539
двач еще этот ебаный чо не спросишь сразу в щщи ебашат пидарасы
>>853543
#380 #853541
>>853537
Да просто вы дичь городите все тут, линуксоиды хреновы. Сами не понимаете какие пакеты соотносятся с какой версией, какие либы есть в репах и как они называются.
Я бы и сам запутался.
>>853543>>853547
#381 #853542
>>853515
Спасибо огромное, анончик! Твоя инструкция помогла.
А как ты сам разбирался в этом вопросе? Я просто хотел бы понять методологическую свою ошибку, чтобы в следующий раз не бежать на двачи плакаться Или это нормально и все так по началу делали? Ты гуглил и по официальным мануалам учил или книжки какие? Или также советы спрашивал в своё время?
>>853563
#382 #853543
36 Кб, 604x496
#383 #853546
Короче ставь Arch Linux
Там сразу третий бидон.
И вообще как система он лутше убунту.
Сейчас все на арче сидят кто в теме.
>>853578
#384 #853547
>>853541
Можешь кстати поставить PyCharm и из него создавать свои окружения, инсталить пакеты и не тащить библиотеки в систему в принципе.
#385 #853549
>>853529
Тащемта дота на линух есть, а чего тебе ещё нужно?
>>853552
221 Кб, 1600x1083
#386 #853552
>>853549
есть мануал как в виртуальном окружении ее запустить!?
#387 #853553
>>853557
205 Кб, 1361x1200
#388 #853557
>>853553
зато питоноконф дохуя! по 20 штук в день создается
#389 #853563
>>853542
не помню уже.
так, на вскидку, рано в джанго суёшься если эту штуку не понимаешь.
классическое обучение питону где-то такое:
codecademy - a byte of python - think python -- и всё это почитывая параллельно лутца
потом джанго по >>853526 вот этой схеме
у меня где-то месяца 4 ушло на всё это с нулевого знания программинга и линукса, и я фигачил нифига не по пять часов в сутки
#390 #853565
Аноны, чисто ради спортивного интереса, кто на какой ОС сидит? Признавайтесь!
#391 #853567
>>853565
plan9 жи
#392 #853570
>>853565
uvuntu 16.04
#393 #853572
>>853273
Бля, да не слушай таких петухов если он на самом деле это сказал
#394 #853574
>>853565
ubuntu 16.04 с оформлением от яблока.
#395 #853576
>>853503
pyenv, ёпту
#396 #853578
>>853546
Проиграл.
#397 #853579
>>853507
>>853516
Вдогонку, если кто работал с либой multiprocessing и ее Pool, можете подсказать, в асихронном режиме его потоки будут лопатить передаваемый в параметрах список одновременно или ждать завершения друг дружки?
>>853565
Gentoo на форчане посоветовали, когда я музыку искал в поездку, они на все там пишут install gentoo
Тут местный apt-get написан на питоне, плюс есть eselect, чтоб между версиями переключаться одной кнопкой.
#398 #853584
>>853565
Арч
#399 #853587
>>853579
запуск ^потока^ процесса через мультипроцессинг никак не влияет на твой асинхронный код, как напишешь так и будет
>>853592
#400 #853590
>>853579
как создавать contex processors?
раньше просто было папку создаёшь, туда файлы с импортами из моделей, и в настройках пропискать
сейчас вообще в 1.10 контекс процессоров не вижу
>>853595
#402 #853595
>>853590
settings->TEMPLATES->OPTIONS->context_processors
>>853605
#403 #853598
>>853592
и кстати, executor = concurrent.futures.ProcessPoolExecutor(
max_workers=3,
)
max_workers - по умолчанию количество ядер, потому можешь не определять
#404 #853605
>>853595
спасибо большое.
#405 #853634
>>853579

> одной кнопкой


Сука, перехожу на генту! СЕГОДНЯ ЖЕ
#406 #853649
>>853634
Да забей, все равно кругом докер с вагрантом.
#407 #853664
>>853634
Переходи, это лучший дистр сегодня.
>>853666
863 Кб, 1264x676
#408 #853666
>>853634
>>853664
Семён Семёнович!
>>853671
#409 #853671
>>853666
Плохой детектор, чини.
>>853679
#410 #853672
почему, блядь, не работает этот чёртов context_processor

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))

что за ёбанный нахуй в рот и жопу блядь, у меня уже сука зла нехватает
>>853676
#411 #853676
>>853672
попробуй создать ctx = Context(context) поставь точку останова в своей йоба иде и посмотри что в ctx.
>>853678>>853681
#412 #853678
>>853676
ебать я лох бессонный, я внезапно обнаружил что сам с шаблона потёр этот блок. пиздец.
дайте мне медальку дауна.
#413 #853679
>>853671
Генту-фанбои подтянулись?
#414 #853681
>>853676
cпасибо, всё равно. а то я и ночь мог ебаться.
#415 #853687
А поясните как форму сохранять в модель, а то я уже чего-то совсем торможу

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>



щито я упускаю?
>>853788
#416 #853742
Pandas кун, ты куда пропал? Где там твой гайд йобанаврот?
>>853781
#418 #853788
>>853687
Зачем ты переопределяешь save()? Ты ведь не делаешь никаких кастомных валидаций, а только вызываешь clean(), который, по сути, и так вызовется.

Что у тебя во view.py?
>>853790>>853835
#419 #853790
>>853788
Если делать дополнительные проверки, то переопределять clean() тогда уж
#420 #853835
>>853788
Смотри, дружище, всё что есть:

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>



Не сохраняет нихуя. У меня уже и башка не соображает.
#420 #853835
>>853788
Смотри, дружище, всё что есть:

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>



Не сохраняет нихуя. У меня уже и башка не соображает.
>>853839
#421 #853839
>>853835
Если это все, что есть, то тебе наверное не хватает вьюхи, которая будет обрабатывать POST запрос? Типа:

>def handle_form(request):


>if request.method == 'POST':


>....form = FeedBackForm(request.POST)


>....if form.is_valid():


>........form.save()


>........return HttpResponseRedirect('/success_url/')

>>853843>>853846
#422 #853843
>>853839
Получается, ты форму рендеришь на более, чем одной странице, раз ты context_processor сделал? Тогда тебе еще надо атрибут action у формы указывать, чтобы слать данные на урл той вьюхи, которая будет брабатывать форму

><form role="form" action="/handle-form-url/" method="post">



И в url.py как-то так:

>urlpatterns = [


>....url(r'^handle-form-url/$', views.handle_form),


>]

#423 #853846
>>853839
Я БЫ ТЕБЯ РАСЦЕЛОВАЛ, ЕЙ-БОГУ
спасибо дружище, я в долгу
#424 #853929
>>853515
у меня модель
class Book(model.Model)
____genre = model.ForeignKey(Genre)
____author = model.ForeignKey(Author)

есть еще
class Genre(model.Model)
____тут их поля

аналогично для Author

я во вьюху отдаю книгу. У Genre и Author есть свои поля, я их тоже хочу показать в темплейте, как мне выдать на темплейт именно связанные объекты с той книгой, которая у меня идет на вьюху мою?
>>853954
#425 #853954
>>853929
Ну тебе анон ведь правильно подсказал - через точки

>book = Book.objects.select_related().get(pk=1)


select_related() нужно для того, чтобы сразу связанные объекты подтянуть - чтобы, когда ты будешь запрашивать автора, лишних запросов к бд не было
И дальше, например:

>author_name = book.author.name


Или в шаблоне

>{{ book.author.name }}

>>854005>>854063
#426 #853963
Котаны, есть один файл.
В этом файле лежат zlib-архивы. Но в файле нет никаких метаданных типа размера/количества файлов/оффсетов и т.п, вообще нихуя нет, кроме архивов. Даже разделителей между ними нет, они тупо идут друг за другом. Но сжатие у всех одинаковое, так что хедер (CMF+FLG) тоже и по нему можно понять где начало нового архива. Количество и размер файлов тоже неизвестен.
Так вот, нужно как-то прочитать ВСЕ архивы из файла и распаковать их. И вот на этом-то я и застрял. Прочитать самый первый получается без проблем, а вот как остальные за ним - вообще не ебу.
Программач, подскажи чего-нибудь?
>>853966
#427 #853966
>>853963
Я думаю следует выложить код, который сработал у тебя для одного архива.
>>853970
#428 #853970
>>853966
[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]
#429 #853985
Хлопчики, а поясните мне о вагранте, докере и всяких тест-серверах в виртуалке.
Что выбрать? Как правильнее это всё организовать?
>>853992
#430 #853992
>>853985
https://www.youtube.com/watch?v=RN8PdCB__lQ
В начале видео немного о вагрант, но на элементарном уровне и без должного объяснения.
#431 #854005
>>853954
ебать. Если так, то охуенно. Спасибо
143 Кб, 1360x768
127 Кб, 1360x768
134 Кб, 1360x768
141 Кб, 1360x768
#432 #854016
Еее ананасы. Я наконец дописал ИГРУ ЖИЗНЬи она работает (^_^)
>>854017>>854020
#433 #854017
>>854016
Вот код на хиджабе.
http://github.com/izicoder/some_stuff/thelife.py
не финальная версия
>>854018
#434 #854018
#435 #854020
>>854016
Хочу также. По какому гайду делал?
>>854024>>854025
#436 #854024
>>854020
ни по какому. Азазаз
2 Кб, 1047x22
#438 #854033
>>853503

>Как вы вообще работаете с разными версиями?


Ну я, например, на дебиане не парюсь и просто явно указываю версию (python3 вызывает самую свежую трёшку, python - самую свежую двушку), проверено, что на маках работает так же.
>>854042
#439 #854040
>>853503

>Как вы вообще работаете с разными версиями?


pyenv
#440 #854042
>>854033
А смысл держать больше одной версии в каждой ветке?
>>854045
#441 #854045
>>854042
Некоторые тяжёлые либы долго и/или сложно собрать из исходников (opencv, например). Поэтому приходится использовать "системную" версию питона из-за бинарных пакетов.
2339 Кб, 1920x1080
#442 #854061
реально ли на python достойно решить олимпиадные задачки всероссийского уровня?
>>854072>>854081
#443 #854063
>>853954
ЕБАТЬ СПАСИБО, ЩА ЗАТЕСТИЛ, ВСЕ ЗАЕБИСЬ.
Блядь, так бы и сидел как даун, если бы не спросил. Пойду читать доку целиком наверное наконец.
#444 #854072
>>854061
Вряд ли, в производительность всё упрётся.
#445 #854081
>>854061
Пример задачи.
#446 #854104
>>847091 (OP)
О всемогущий 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']


Подскажи, о могучий, где я налажал и как это исправить.
>>854123
#447 #854123
>>854104
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'.
>>854138
#448 #854138
>>854123
Хорошо, но как, в таком случае, получить искомый результат без построения адовых велосипедов?
>>854141
#449 #854141
>>854138
Вариант без регулярок сгодится?

>s.split(' + ')

>>854155
#450 #854155
>>854141
Решение вполне действенное в данном случае, но не универсальное. Хотелось бы найти способ с регулярками.
49 Кб, 621x629
#451 #854187
Почаны, через что удобнее всего выводить много данных, чтобы можно было потом посмотреть?
Короче, каждый день каждые пять минут записываются данные, и мне нужно будет потом сравнить по дням чтобы дни рядом были и значения за каждый час, минуту.
Графики походу сложные будут, идеальнee всего таблицы, но сsv по-моему не для таких целей.
>>854190
#452 #854190
>>854187
PANDAS
A
N
D
A
S
>>854194
#453 #854194
>>854190
А там не сложно? И куда оно будет выводить, в айпутхон штоле или хтмл-файл?
Пробовал как-то с bokeh - оказалось дико муторно.
#454 #854195
Ладно, хуй с вами, щас напишу свой парсер-графикорисовалку для этй мутни.
120 Кб, 1280x1024
#455 #854211
Пайтоны, выручайте. Нужно из питоньего кода запускать линуксовый бинарник казалось бы, ок, юзай системные вызовы и обрабатывать высираемый бинарником результат. Проблема в том, что бинарь выводит в STDOUT данные в час по чайной ложке и обработать каждую строку нужно по мере появления, а не в конце, когда весь вывод будет окончательно сформирован. Может вы знаете, как такое сделать?
>>854329
#456 #854329
>>854211
p = subprocess.Popen(args,
____stdout = subprocess.PIPE,
____stderr = subprocess.STDOUT,
)
while p.poll() is None:
____line = p.stdout.readline()

?
Не могу проверить, пишу с картофелины
>>854766
#457 #854537
Как в Django правильно работать со сторонними модулями?
Допустим, я хочу взять откуда-то дату через requests и направить в шаблон через контекст. Где правильно импортировать requests и использовать его? Или по гайдлайнам джанго нужно для этого создавать новое приложение?
Вообще, дайте пожалуйста юзкейсы с гитхаба, где джанго используется для построения сервисов, а не просто сайтов и общается не только со своей БД, но еще и со сторонними модулями (генераторы пдфок может, или картинок, или еще что).
>>854554>>854563
#458 #854554
>>854537
Джанго бай экзампл вроде много такого было. Подробности не помню, а как делать самому без книги - не знаю, так что просто в качестве наводки.
#459 #854563
>>854537
где угодно ты можешь встроить свою логику, точек входа просто уйма: 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)
>>854567
#460 #854567
>>854563
Моих знаний достаточно, чтобы сделать то что ты говоришь. Дело в том, что я хочу не просто писать быдлокод, захламляя проект, а делать как правильно. Вот ищу типовой проект чтобы посмотреть как это делают профи.
>>854569>>854576
#461 #854569
>>854567
дак все зависит от конкретной бизнес логики приложения. просто пиши где удобно и все - профи, ебана, так и делают.
#462 #854576
>>854567
и кстати, что непрофессионального в requests.get во вьюхе?
>>854582>>855001
#463 #854582
>>854576
Дело не в requests.get, а в том что это может быть другая библиотека с кучей кода под нее. Я бы логически вынес это в виде фкнкций в отдельный файл, затем из него во вью импортировал и выполнял функции. Но мне кажется это нарушит структуру django проекта.
>>854587
#464 #854587
>>854582
да никак это не нарушит) я видел проект (сложный большой...) где от первоначальной структуры (как в туториале) не осталось нихуя вообще, там запилили свой фреймворк на джанго фреймворке, и нихуя! работает!
>>854588
#465 #854588
>>854587
Ну пиздос, работать-то будет это, я понимаю. Но хотелось бы начинать с гуд-практиса сразу.
>>854594>>854646
#466 #854594
>>854588
тогда нужно начать с постановки задачи.. вот тебе нужна эта дата посредством рекветс... она нужна в каждом вью или только в одном?
>>854597
#467 #854597
>>854594
Тащемта мне нужен не requests, я привел его как пример. Мне нужно генерить данные через pypdf, принимая аргументами инпуты из форм.
>>854600
#468 #854600
>>854597
прозреваю что у тебя есть какой то 1 вью с формой.
тогда просто пили файл типа "eba_pdf_functions.py", клади его рядом с forms.py или куда угодно, импортируй функцию generate_pdf из этого файла в туда, где ты будешь обрабатывать инпуты, все.
10 Кб, 413x117
#469 #854602
Простыми словами о пикрелейтед, пожалуйста.
>>854606
#470 #854606
>>854602
ты импортируешь что то из __future__ пайчарм предлагает тебе включить проверку на совместимость этого чего то с твоим кодом. (я обычно жмакая no)
>>854610
#471 #854610
>>854606
Странно, ручных импортов я не делал. Видимо, где-то в модулях. Что это вообще? Функционал, который тестируется для выхода в следующих версиях языка или что?
>>854614
#472 #854614
>>854610
скорее функционал бекпортированный в текущую ветку интерпретатора. типа захотелось вкусностей из новой ветки вот и портировали
#473 #854646
>>854588
2 scoops of django и django by example тебе уже советовали
#474 #854721
Как реализовать редактирование существующей записи в бд, используя ту же форму, что и при создании этой записи? Мне бы сделать так, чтобы при показе формы редактирования отображались старые данные в полях, которые я смогу изменить. Куда копать?
>>854727>>854729
#475 #854727
>>854721
Django?
В чем проблема? Инициализируй форму значениями существующей записи
>>854733>>854796
#476 #854729
>>854721
Используешь ModelForm?
Вот тут глянь пример https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/#modelform
>>854733>>854796
#477 #854733
>>854729
Да, спасибо. То что нужно
>>854727
Тебе тоже.
808 Кб, 1920x1200
#478 #854766
>>854329
Спасибо, то что нужно.
Извини, только сейчас смог проверить.
#479 #854796
>>854727
>>854729
Не, я не понял. Как мне проапдейтить старую запись, а не делать новую на основе этой инфы? Все что я пытаюсь сделать создает новую запись.
>>854814
#480 #854811
Как Javascript использовать в джанго? Или чем там делаются всякие свистоперделки?
>>854813
#481 #854813
>>854811
Javascript используют на стороне клиента. Соответственно, тебе подойдут любые мануалы по JS.
>>854815
#482 #854814
>>854796
Ну ты ведь так делаешь?

>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()



Вот как-то так должно работать, проверь
>>854854
#483 #854815
>>854813
Селекторы через джейквери берутся-то как? У джанго же свой темплейт.
>>854817>>854826
#484 #854817
>>854815
Закрой программач и больше никогда не пытайся даже думать о прогграммировании, свинья.
>>854821
#485 #854821
>>854817

>свинья


Как ты ужнал что я из Украины?
#486 #854826
>>854815
Я не очень знаком с фронтенд. Селекторы выбирают объекты из DOM по параметрам?
Если это то, о чем я думаю, то это не зависит от джанги. Это можно делать прямо в отладочной консоли файрфокса на стороне клиента.
Все что здесь от джанги зависит это выдача статика jqurey.min в темплейт, да и то сейчас все используют wsgi для статики, а лучше CDN.
>>854833
16 Кб, 654x73
#487 #854833
>>854826
Объясните, пожалуйста, что здесь происходит.
Супер добавляет к стандартному джанговскому методу models.Model.save код, идущий до супер? Почему просто не использовать декоратор для функции? Почему в супер self передается вторым аргументом? Вообще весь механизм что происходит можете описать? Я начинаю плавать в этом всем.
>>854836>>854906
33 Кб, 453x313
#488 #854836
>>854833
Перепутал. Вот нормальный шот.
#489 #854854
>>854814
Да, только он НОВЫЕ записи создает при сэйве. Я не понимаю как старую откорректировать.
#490 #854855
>>854854
Я тащемта спрашивал а не отвечал.
>>854862
#491 #854862
>>854855
Покажи код?
>>854863
#492 #854863
>>854862
>>854836
Вот код модели. Меня интересует def save, в какой очередности и что делает супер.
#493 #854879
>>854854
Я перепробовал все что придумал, он новые озаписи создает блядь, вместо того тчобы старую обновить. Я не ебу что делать
>>854895>>855013
#494 #854890
Сорри, я тут запутался с постами и создал месс с ответами.
#495 #854892
Как в PyCharm сделать что бы при запуске скрипта курсор автоматически устанавливался в зону где запускается скрипт? Например требуется ввести что то с клавиатуры, но курсор все еще стоит на последней написанной строке и при вводе чего то с клавы это разумеется записывается в код
>>854906
#496 #854895
>>854879
Да покажи же свой код! Мы угадать должны че там у тебя написано?
>>854938>>855013
#497 #854906
>>854892
По запросу "focus pycharm plugin" вышло нечто такое https://plugins.jetbrains.com/plugin/7138?pr= . Может, это поможет тебе. Хотя я не совсем понял проблему. Там есть пиктограмма "тоггл скролл" или как-то так, которая сама листает вниз по мере вывода.

Алсо, все еще реквестирую помощь --> >>854833 >>854836
#499 #854947
>>854980>>855013
#500 #854980
>>854947
Нет, дружище. Создается новая запись.
>>855013
#501 #855001
>>854576
Ну, раз уж ты спросил - представь, что твой requests.get блокирует весь, сука, процесс/тред до получения ответа. А с той стороны рукожопый вебмакак и ответ будет не раньше, чем через 15 секунд, а пока твои юзеры сосут хуй.
>>855036>>855041
#502 #855013
>>854947
>>854938
>>854980
>>854895
>>854879
>>854854

Так, я понял что я дебич. Ведь я юзал темплейт, окторый гртузил мне форму, которая отправляла свои данные на другую функцию, которая именно создавала книги.
Все-таки наличие второй третьей, четвертой головы засталяет посмотреть на проблему с разных сторон.
не повторяйте моих ошибок
#503 #855014
>>854836
Супер это "ссылка" на "предка" класса (в "кавычках", потому что все чуть сложнее).
self(ClassName, self) - синтаксис 2 версии питона, в 3 все проще - super() и все
Т.е. все что этот код делает - устанавливает slug и вызывает потом метод .save() в том виде, как он определен у предка (т.е. у models.Model).
http://ideone.com/w4b1GB
#504 #855036
>>855001
раз уж ты ответил - хули ты сразу не написал что твой реквестс будет тяжелым? тогда стандартно - делаем таск в целери, отдаем во вьюхе статус "process"...
>>855040>>855053
#505 #855040
>>855036
или джанго чаннелс, но я их не пробовал, возможно ошибаюсь на их счет.
>>855053
#506 #855041
>>855001
да и вообще писать подобные штуки на блокирующем фреймворке как то странно, не находишь? почему не взять aiohttp, если это апи сервис?
>>855053
#507 #855053
>>855036
>>855040
>>855041
Как джангист раскудахтался!
>>855064
#508 #855064
>>855053
почему джангист и почему раскудахтался?
>>855065
#509 #855065
>>855064
пок-пок-пок
>>855066
#510 #855066
>>855065
странный ты
>>855067
#511 #855067
>>855066
Ладно, прости, думал ты джангист. джанго для дибилов
>>855068
#512 #855068
>>855067
то есть один из крутейших веб фреймворков, с огромным сообществом и солидной историей - для дебилов?
#513 #855103
>>855102 (OP) Перекат
>>855102 (OP) Перекат
>>855102 (OP) Перекат
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 4 ноября 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски