Этого треда уже нет.
Это копия, сохраненная 3 февраля 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
35 Кб, 730x406
#2 #620302
Минвайл, обновился индекс tiobe, по которому питон ползет к успеху.
inb4: >tiobe
#3 #620306
Ребят, какие есть перспективы в плане работы на питоне?
Можно ли зная питон, вкатываться в тестировщики, админы, веб разработчики, либо он для других целей?
#4 #620310
>>620306
Можно. У админов это вообще язык номер один. Не считая баша.
#5 #620363
>>620302
Хайп джса ВСЕ?
#6 #620374
>>620363
Где ты видел хайп?
#7 #620448
ребя, есть кто-нибудь, кто может помочь написать тестовое приложение? нужно модуль задач сделать, я только учусь и на курсах домашнее задание дали, 7 числа сдать надо, я уж голову сломал, нихера не получается, помогите для вас, думаю, труда не составит.

вот задание:
Реализовать модуль достижения целей

Пользователь должен иметь возможность добавить сколько угодно целей, у каждой из них создать сколько угодно этапов. У каждого названия должны быть название и описание, а также статус исполнения. У цели также должно быть название и описание. Статус выполнения цели должен отображаться в % в зависимости от готовности этапов цели.
102 Кб, 383x480
#8 #620490
>>620448

>7 числа сдать надо


С Рождеством, епта!
#9 #620492
>>620448
Тебе же уже все расписали. Чего тебе еще надобно?
#10 #620498
>>620293
Я для ускорения и всякой такой лабуды использовал http://pyode.sourceforge.net/
Использовать просто. Там ещё много всякого.
#11 #620502
>>620306
Недавно на соседней борде джуна без опыта из беларуси взяли на работу в литву на немецкую компанию тестировщиком на питоне(он и питон то не знал, а искал работу на embedded C). Дали визу и приличную зарплату в еврах. Ездит в гермашку переодически тоже в основной офис.
Тестовое задание видел его, потому что он его выкладывал и просил совета, ещё до того как его взяли(типа дали тест простельникий и надо было описать как его можно было бы улучшить).
#12 #620503
>>620492
как я описал выше, я только начинаю учить django. мне нужна прямая помощь от анона, который готов уделить пару часов мне и моей приложухе в скайпе
#14 #620505
>>620503
Нет, тебе надо было самому это делать и разбираться. Какой смысл иначе. Сделать такое приложение можно прочитав туториал на оф.сайте там похожий проект делается.
#15 #620541
>>620299 (OP)
Пикчи говно.
#16 #620545
#17 #620546
>>620504
Странный график. Не понятно с чем связан рост жавы. Типа они вкатываются долго? И почему рубин на первом месте был? Вообще охуеть!
#18 #620551
>>620546
Руби был на первом потому что гитхаб был частично написан на Руби, и взлетел в первую очередь за счет таких же рубифанатов как сами гитхабовцы.
#19 #620566
>>620546
It should be noted that this graph represents each language's relative popularity on GitHub. For example, Ruby on Rails has been on GitHub since 2008, which may explain Ruby's early popularity.
#20 #620567
>>620546
Between 2008 and 2015 GitHub gained the most traction in the Java community, which changed in rank from 7th to 2nd. Possible contributing factors to this growth could be the growing popularity of Android and the increasing demand for version control platforms at businesses and enterprises.
#21 #620586
>>620546
Мой текущий джанго-проект детектится гитом, как html. Мало питонячего кода еще написал.
#22 #620597
>>620586
Средненький джанго проект это несколько тысяч строк питоньего кода, если вырезать всякие миграции и не считать сторонник батареек.
Вот щас глянул - интернет магазин 4512 строк. Сайт генерирующий отчеты - 22629
11 Кб, 200x271
#23 #620599
>>620546
На жаве больше кода по количеству строк.
#24 #620701
>>620504
Ебать хайп. Тогда уж пожалуйся на хайп CSS - к него рост раза в четыре больше.
#25 #620702
>>620701
Хайп был на nodejs. Да и сейчас есть.
И на новые клиентские фреймворки все эти.
И на метеоры всякие.
94 Кб, 1920x1027
#26 #620704
Может ли мне помочь анон? Суть проста. Нужно перед тем, как запускать скрипт питона, передать в консоль спермоси команду 'chcp 65001'. Через что это лучше делать? Копал что то насчёт subprocess, но кажись это не то. Какие еще есть варинаты? Либо объясните, чому следующий код выдаёт ошибку(жопой чую, что что то напутал в subprocess, но не могу понять что)?
#27 #620705
>>620704
os.system?
#28 #620706
>>620704
os.system
#29 #620707
>>620704
А зачем ты в utf-8 кодируешь. У винды ни разу не utf-8 кодировка
18 Кб, 813x526
#30 #620708
>>620707
Тому шо файлы могут быть и как 4 картинка на пикрелейт. И их нужно отобразить в консоли, а не заменить знаком вопроса.
106 Кб, 1920x1027
#31 #620709
Всё равно это ошибка. ИЧСХ, в консоли PyCharm всё работает. Что еще может быть не так(помимо моего говнокода)?
#32 #620710
>>620709
Попробуй так
.. = os.listdir(unicode(source[0]))
#33 #620711
>>620710
А оно и так unicode
56 Кб, 1528x648
#34 #620712
>>620710
Оно уже юникод. Я просто не вдупляю, при чём здесь вообще IOError. Я же никакой файл не вызываю. Я тупо печатаю строку в консоль. ИЧСХ, в ConEmu, в консоли PyCharm всё идеально работает. А вот в спермоси - не завезли. Сама консоль питона вызывает ту же ошибку и закрывается.
832 Кб, 1233x810
#35 #620713
>>620712
Вывод ConEmu
#37 #620716
>>620714
Хех. Неужели вообще никаких альтернатив? Вот сдаю я скрипт заказчику. И что говорить? "Ко ко ко, пок пок, вы можете поставить себе Cygwin или ConEmu. В дефолтной консольке мой сценарий работать не будет"
#38 #620717
>>620716
Печатай кириллицу вопросиками че. Ну или если у тебя там только кириллица используй cp866 или че там у винды в консоли.
#39 #620718
>>620717
Ладно, аноны. Спасибо, энивэй.
#40 #620719
>>620716
Или вообще ничего не печатай в консольку пиши в файл-лог.
Или выводи в консольку типа прогресс вроде "2/10 files processed"
#41 #620721
>>620719
Это слишком костыли. Легче пользоваться другой консолькой.
#42 #620722
>>620718
Вообще там по ссылке есть вариант ещё дергать winapi функцию WriteConsoleW
#43 #620729
Если кому будет интересна тема вывода unicode в стандартную консоль, то вот: https://github.com/Drekin/win-unicode-console. Там же ссыль на питоновский баг-трек и описание сути проблемы. Этот пакет, в принципе, покрывает все нужды, хотя emoji ждать не приходится, но по крайне мере не крашит. Всем добра.
#44 #620730
#45 #620795
>>620302
+1.24% not bad at all!
#46 #620796
>>620490
проиграл с декоратором
#47 #620802
Почитал об декораторах
Особо использовать не приходилось (мне пока и стринг + стринг + стринг за глаза), но тем не менее не могу понять чому все говорят что они сложные, и ещё более не понимаю где их используют в таких промышленных объёмах. Разве что в сайтах на веб2пу
#48 #620809
>>620802
Я часто использую чтобы избежать дублирования кода в функциях, например, сильно упрощенно, если есть несколько похожих шняг:
def f1():
..prepare_action()
..start_action()
..do_stuff()
..stop_action()
..process_results()

def f2():
..prepare_action()
..start_action()
..do_another_stuff()
..stop_action()
..process_results()

Делаю декоратор включающих все общие вызовы, и f1-n теперь выглядят так:

@_action_stuff
def f1():
..do_stuff()
#49 #620815
Ньюфаг, который осилил только что джанго-блог с регистрацией и комментариями, сможет написать свой упрощенный маркдаун-редактор для этого блога? Слабо представляю себе сложность этой задачи. Либо как-то кастомизировать дефолтный в джанго, чтобы он преобразовал в html сразу с нужными css-классами, чтобы все посты в блоге были в одном стиле. Готовые wysiwyg-редакторы для моей задумки оверкилл, и, кажется, потребуют указывать эти самые css-классы при каждом редактировании поста.

>>620809
Как обеспечивается вызов do_stuff() в нужный момент, а не после process_results(), например?
#51 #620822
>>620818
Понял, спасибо.
#52 #620844
>>620816
Мне в pycharm со шрифтами возиться надоело.
сижу на юпитере
#53 #620846
#54 #620854
>>620702
Так это не хайп. Хайп - необоснованная популярность, которая была на руби например. А клиентские технологии и node.js - это вполне востребованные вещи, которых долго не было и они появились. Но как недостаток - их расплодилось много. Но конкуренция - это хорошо.
#55 #620913
>>620854

>node.js - это вполне востребованные вещи


Чем?
#56 #620955
>>620913
Как минимум node быстрее чем питон + джанго или рельсы, плюс очень удобно использовать один язык для всего приложения.
#57 #620971
>>620955
Для бекенда есть языки куда быстрее ноды с одинаково низким порогом вхождения. Java с Go, например. Да и кто в 2016 выбирает языки по скорости?
Единый язык для фронтенда и бекенда - единственный плюс, но учитывая что этим языком является всратый JS я не уверен что это действительно плюс. Да и работает этот плюс только для обезьян, которые ничего кроме JS не знают.
#58 #621029
>>620971
Ну хуй знает, я довольно много писал на питоне и жаве, но когда попробовал ноду - возвращаться нет никакого желания.
#59 #621031
>>620955
Просто оказался в нужном месте и в нужное время.
22 Кб, 572x1063
#60 #621044
Господа, есть ли среди вас те, кто работал с OpenCV на питоне? Суть такая, нужно из множества фотографий вырезать только контур фигуры чловека отбрасывая фон. Уже второй день ебусь, юзал findContours, результат на пике, дальше никак не продвинусь. Подскажите в какую сторону копать, чтобы получить чистый контур.
155 Кб, 830x818
184 Кб, 823x864
#61 #621064
>>620815
Ну вот, за каких-то 6 часов даже такой долбоеб, как я, может сделать свой редактор с bbcode-кнопочками. Не маркдаун, конечно, но так мне даже больше нравится.
#62 #621156
>>621044

> работал с OpenCV на питоне


На лоре такой чел был спроси там
#63 #621171
Уплотнил свою поделку с 4к до 1815 строк. Хочу от себя детей.
#64 #621180
>>621171
Я конечно жуткое нубло со стажем программинга вообще 1 месяц, но как вообще программа на питоне может быть такой огромной
Все что я пишу, а это типа пиздилки фоточек с фликра - ну максимум 50 строк
#65 #621183
>>621044
Гугли пдфки с научными статьями, почерпнешь идей.
#66 #621185
Что выбрать Django or Flask
И почему?
sage #67 #621187
>>621185
Анус твоей мамаши выбрать. Потому что заебал этот вопрос задавать по три раза в каждом треде.
#68 #621191
>>621185
джанго проще и быстрее, фласк понятнее и дольше

пройди пару туториалов по одному и другому и сам выбирай
#69 #621194
>>621180
Ну там биндинги к сишной либе, обвязки этих биндингов в питонячьи классы/функции (по сути своя либа получилась), ебля с curses, немного логики и самопальных портянок-сортировок, которые я изначально слишком хуево написал, плюс всякая мелочь вроде getopt'а и хелпа. Ну и вообще, 4к - ни разу не большая программа.
inb4 дианон по описанию поделки
#70 #621218
#71 #621235
Может Анон знает. Почему, если пытаться в raw_input ввести юникод строку, то он вылетает в EOF. Как фиксить?
#72 #621236
>>621235
Перейти на актуальную версию.
12 Кб, 1827x321
8 Кб, 578x216
#73 #621237
>>621236
Актуальную версию чего? Python 2.7.11 и последний Pycharm. Я уже думал, что глюки, но всё именно так. Если в PyCharm я ввожу тестовую строку 'Тест', то всё замечательно. Но если пытаюсь запустить скрипт, скажем через cmd, то вылетаю в EOF
#74 #621238
>>621237
[CODE]
# coding=utf-8

import os

os.system('chcp 65001') # UTF-8 encoding for win console
common = raw_input('>') # For test, I use 'Тест' word
print common
[/CODE]
#75 #621240
>>621237
Бля ещё один со спермопроблемами. Выше тред покрути
#76 #621242
>>621237
Поставь conemu вместо cmd
137 Кб, 364x273
#77 #621243
>>621237

>Python 2.7.11


>актуальная

#78 #621244
>>621242
Попадаю в тот же EOF
#79 #621245
>>621243
А что нет? У меня 2.7.6 вообще
#81 #621247
>>621246
Что за хер на третьей? У меня на работе оче похожий чувак есть, только он по openbsd угарает.
#82 #621248
>>621244
Вообще не понимаю, при чём тут EOF. Я же не посылаю в EOF в консоль.
150 Кб, 1024x768
#83 #621249
>>621247
это я. но у меня фряха

>на работе


>openbsd


увольте его
#84 #621250
>>621249
На работе очевидные линуксы, это он в личное время по опенку угарает. Кто ж фряхи в 2016 на серверах юзает.
#85 #621251
>>621238
Нет идей, Анон? Может кто сталкивался.
5 Кб, 642x386
#86 #621253
>>621251
Ах да. На Cygwin таки работает. Возможно дело именно в кодировке, которую я задаю консоли. Вообщем, призываю WinPython экспертов.
#87 #621254
>>621250

> Кто ж фряхи в 2016 на серверах юзает.


Дохуя кто на самом деле. По крайней мере в рашке. Ещё вроде в германии оно популярно.
#88 #621255
>>621253
Я тебе сказал тред выше промотай >>620729
880 Кб, 854x480
#89 #621256
>>621255
Проблема в том, что это я и есть. Хех.
#91 #621258
Кто я?
#92 #621263
>>621258
Хуй в пальто.
#93 #621270
>>621194
Забавно. Не думал что всё так геморройно.
Я что бы опыта набраться (ну и мне больше реально нехуй делать) прохожу https://github.com/karan/Projects-Solutions/blob/master/README.md
и оно очень редко когда за полтинник строк переваливает.
А более хай левел задач придумать не могу.
За библиотеку тебе от меня благодарности, у меня прям оргазм случается когда подрубаю всякую фигню типа Pillow или wikipedia и оно в одну строчку вместо меня всё нахуй делает.
#94 #621320
>>621171
Смотря засчёт чего уплотнил.
38 Кб, 512x334
#95 #621354
Аноны, планирую вкатиться в тестирование на пистоне.
Что надо знать-учить ? Синтаксис питона более-менее знаю, есть несколько личных прожектов на нём, когда то написал несколько парсеров на селениуме.
#96 #621355
>>621354
Тестирование чего? Дефектов в софте(гуи или не оче)? Вебсайтов? Интернет сервисов/api? Железок? Самих приложений на питоне?

> парсеров на селениуме.


че?
#97 #621356
>>621355
Ну и ещё есть всякие fuzz testing и прочее.
И есть некоторая теория за этим всем.
#98 #621358
>>621355

>Тестирование чего?


я только планирую, но скорее всего сайтов

>че?


ну тот который selenium, умеет неплохо граббить инфу с сайтов где надо использовать JS
#99 #621360
>>621356

> fuzz testing


изучал fuzzy-множества в универе, но логично, что сдесь нечто другое, но звучит интересно
#100 #621362
>>621358
Сайты которые используют js обычно имеют api какой-нить намного эффективней его использовать.
На селениуме много не награббишь. А вот для тестирование оно да. Правда там какой-то гемор, если, например надо файлы заливать.
#101 #621366
>>621362

> api какой-нить


там часть инфы декодировалась JSом, чтобы всякие умники не парсили, можно было переписать на питоне, но в данном случае был бы оверкилл

>А вот для тестирование оно да.


то есть имеет смысл его подрочить, но думаю это не все ? я просто для тестов исключительно unittest использую, ну и nose в связке с ним иногда
#102 #621367
>>621366
А что его дрочить селениум этот же сам генерит скрипты на питоне.
#103 #621370
А какой сейчас html редактор есть под прыщи? Раньше вот quanta+ ниче была
brackets?
#104 #621372
>>621370
любой - vim/sublime/atom/и тд
#105 #621373
>>621366
Зачем ставить пробел перед вопросительным знаком?
#106 #621374
>>621373
а что, не по pep-у ?
#107 #621375
>>621372
Хочется чтобы превью было интегрировано и быстро работало. В quanta можно было f6 нажать и в том же окне видеть всё.
#108 #621376
>>621375
ну то что я перечислил имеет тонны плагинов, если фича популярна, наверняка и для этого найдется
#109 #621377
>>621376
brackets покруче. Там из коробки live интеграция с хромиумом и ещё вроде есть хрень для нарезки шаблонов(adobe extract)
#110 #621390
>>621374
По-ублюдски.
#111 #621398
Почему на винде интерпретатор стартует так долго при первом запуске?
#112 #621401
>>621398
jit прогревается
sage #113 #621402
>>621401
Какой jit в сипитоне то?
#114 #621403
Написал для общего развития пример с mix-in и множественным наследованием. В чем зашквар? Меня напрягает повсеместный вызов super в конструкторах, можно ли перенести это в метакласс, чтобы подключать это только там, где нужна композиция из ряда классов?

http://pastebin.com/BsiSEpYj
#115 #621404
>>621403
Хм. Можно
#116 #621405
>>621403
А зачем класс вызывает супер инит себя? Разве это нужно не для вызова инита предка по наследованию? Или я чего то не знаю?
#117 #621406
>>621405

> вызывает супер инит себя


Где?

> Разве это нужно не для вызова инита предка по наследованию?


Так и есть
#118 #621407
>>621406

>Где?


Да везде

class SolidObject(BaseObject):
def __init__(self, args, kwargs):
super(SolidObject, self).__init__(
args, kwargs)

class DestroyableObject(BaseObject):
def __init__(self, args, kwargs):
super(DestroyableObject, self).__init__(
args, kwargs)

class Crate(SolidObject, DestroyableObject):
def __init__(self, args, kwargs):
super(Crate, self).__init__(
args, kwargs)
#119 #621408
>>621403
Можно сделать метакласс который будет заменять __init__ на дерганье всех __init__ из bases по очереди.. Но, это лишает тебя гибкости(в каком месте __init__ вызывать super и т.п.), твой код будет нетипичным если кому-то другому с этим работать, явное лучше неявного и т.п.
Лучше так не делать. Лучше вообще метаклассы не использовать если ты не делаешь что-то уж совсем такое типа ORM.

> class Crate(SolidObject, DestroyableObject):


вроде как mixin должен быть слева тут
#120 #621409
>>621407
А да, у него неправильно там.
Я, кстати, когда-то не оче понимал разницы между super и просто явным вызовом __init__ предка и часто так делал. И на собеседовании так написан. Мне начали задавать вопросы про __mre__ и прочее и не взяли)
#121 #621410
Поясните за метаклассы. Сколько ни читал на википедии, ничего не понял и не запомнил.
#122 #621411
>>621408
Согласен. Спасибо.
#123 #621412
>>621408
Вот в django, например.

> class SecretView(LoginRequiredMixin, View):


> class PrivateView(PermissionsRequiredMixin, View):

#124 #621414
>>621410
Глянь сначала на декораторы для классов. Они служат примерно одной цели.
Вот смотри
@decorator_function
class Foo: pass
Это аналог
class Foo: pass
Foo = decorator_function(Foo)
т.е. функция берет класс в качестве агрумента и возвращает класс. Ты можешь в этой функции как-то этот класс изменить или вообще переделать или сгенерить на основе каких-то полей из этого класса новый класс вообще(их можно на лету создавать функцией type)

Метаклассы делают примерно тоже самое они отвечают за создание класса, у них просто больше возможностей.
#125 #621415
>>621409
А как правильно? Кажется в DestroyableObject лишний вызов.

>>621410
Метакласс это прародитель всех классов, грубо говоря. То есть ты можешь вставить магию __metaclass__ = myMeta в тело твоего класса, потом создать этот самый myMeta, и переопределять в нем такие вещи, как __init__, __new__, __call__ и прочие. Делать синглтоны, хитровыебанные диспетчеры, всякий дебаг выдергивать, на что фантазии хватит. В сорсах модели Django можно найти примеры использования, в SQLAlchemy тоже.
#126 #621416
>>621415
>>621414
Т.е. что-то типа динамической смены предка?
26 Кб, 545x351
#127 #621417
>>621410
Вот типа примера.
Пример из жизни это django orm. У model.Model прописан метакласс, который на основе полей, которые ты указывал как поля класса модели создает другой класс с другим поведением да и полей таких как ты задал у него нет, они хранятся где-то в _fields.
10 Кб, 562x184
#128 #621418
>>621417
Блин сам dec не влез в скриншот
#129 #621419
>>621416
Короче у тебя у класса __init__ и __new__ там отвечают за создание объекта этого класса.
А __init__ и __new__ метакласса отвечают за создание самого класса(т.к. класс в питоне это тоже объект типа type)
Ты можешь как угодно переделать этот класс.
99.9% программистов никогда не писали метаклассов и не будут. Это хитрая магия, которая нужна авторам некоторых библиотек и то редко.
Не забивай себе этим голову.
#130 #621420
>>621415
Правильно
class Myclass(Base):
..def __init__(...
....super(Myclass, self).__init__(...
#131 #621421
Можно ли обернуть все методы класса так, чтобы при из вызове выводилось их __name__?
#132 #621422
>>621420
А, стоп, у тя всё правильно.
#133 #621423
>>621421
подредактируй __getattr__
#134 #621424
>>621422
class Crate(SolidObject, DestroyableObject):
def __init__(self, args, kwargs):
super(Crate, self).__init__(args, kwargs)

Ниет, неправильно. Тут нужно вызывать инит конкретного предка.
SolidObject.__init__(self, args)
DestroyableObject.__init__(self, args)
#135 #621426
>>621421
Да, есть несколько способов. Ты можешь в __getattribute__ если запрашивается метод выводить его имя.
Ты можешь взять класс, пройтись по его полям и для всех callable сделать setattr(Class, 'name', decorator(getattr(Class, 'name'))
Можешь сделать это в декораторе класса или метаклассе в т.ч.
#136 #621427
>>621424
super вызовет иниты предков в нужном порядке как надо(если у них в инитах тоже есть super)
#137 #621428
>>621423
__getattr__ будет срабатывать только для полей, которые не найдены. ему нужен __getattribute__ - он срабатывает всегда.
#138 #621429
>>621428
да, вечно путаю их
#139 #621430
>>621427
А он разве умный?
#140 #621431
>>621430
Ему не надо быть умным. Он вызывает следующего предка в порядке __mre__(method resolution order) и вызывает. Таким образом последовательно вызываются все предки даже если там множественное наследование.
12 Кб, 490x173
#141 #621432
>>621431
mro точнее
super(D) вызовет инит из B, super(B) вызовет инит из C, super(C) вызовет инит из A
#142 #621434
>>621432
А если ты будешь явно в каждом из этих классов вызывать инит всех предков у тебя получится, что A.__init__ вызовется 2 раза.
#143 #621435
>>621431
>>621432

Не всё так просто
http://python-history.blogspot.ru/2010/06/method-resolution-order.html

One problem concerns method lookup under "diamond inheritance." For example:

class A:
def save(self): pass

class B(A): pass

class C(A):
def save(self): pass

class D(B, C): pass

Here, class D inherits from B and C, both of which inherit from class A. Using the classic MRO, methods would be found by searching the classes in the order D, B, A, C, A. Thus, a reference to x.save() will call A.save() as before. Since both B and C inherit from A, one can argue that the redefined method C.save() is actually the method that you want to call, since it can be viewed as being "more specialized" than the method in A (in fact, it probably calls A.save() anyways). For instance, if the save() method is being used to save the state of an object, not calling C.save() would break the program since the state of C would be ignored.

After much discussion, it was decided that the MRO adopted for Python 2.2 was broken and that Python should adopt the C3 Linearization algorithm described in the paper "A Monotonic Superclass Linearization for Dylan"
18 Кб, 293x462
#144 #621441
>>621435
Что не так? Всё работает как я сказал.
#145 #621443
>>621441
Мезанизм разрешения зависимостей не такой уж простой.
#146 #621445
>>621443
Ну да там теория за этим есть некоторая.
Но на деле редко приходится использовать множественное наследование, за исключением mixin`ов.
#147 #621446
>>621443
В яве вот вообще нет множественного наследования и ничего.
#148 #621475
>>621446
Ну так его можно руками сделать, лол.
#149 #621566
>>621564
А ты хорош.
#150 #621572
>>621566
Да мы тут все хоть куда.
#151 #621668
Что выбрать Django or Flask? Аргументированно.
#152 #621710
В джанго можно сделать инлайн-формы не в админке а на самом сайте?
#153 #621717
>>621668
торнадо
заебали
#154 #621722
Змеяны, подсобите чутка, впервые вообще такое вижу и даже как-то не могу загуглить.
Вместо цифр питон в консольку выбивает 1D, 2D, ну короче цифру и D(наверное decimal).

Когда делаю просто
x = 1
print x
Все нормально, но вот в этой хуе-задачке получается ебала:
from sys import stdin

tokens = stdin.read().split()
n = int(tokens[0])
islands = 0
old_type = ""
for island in tokens[1:n + 1]:
....if island != old_type:
........islands += 1
........old_type = island

print islands

Примерчик:
Ввод:
3
10
10
10
Вывод:
1D

Что еще странного - добавил переменную которая считается на каждом витке цикла, и вывел ее до islands, теперь суффикс получает она, а с islands все ок, может это из-за ctrl+d?
#154 #621722
Змеяны, подсобите чутка, впервые вообще такое вижу и даже как-то не могу загуглить.
Вместо цифр питон в консольку выбивает 1D, 2D, ну короче цифру и D(наверное decimal).

Когда делаю просто
x = 1
print x
Все нормально, но вот в этой хуе-задачке получается ебала:
from sys import stdin

tokens = stdin.read().split()
n = int(tokens[0])
islands = 0
old_type = ""
for island in tokens[1:n + 1]:
....if island != old_type:
........islands += 1
........old_type = island

print islands

Примерчик:
Ввод:
3
10
10
10
Вывод:
1D

Что еще странного - добавил переменную которая считается на каждом витке цикла, и вывел ее до islands, теперь суффикс получает она, а с islands все ок, может это из-за ctrl+d?
#155 #621723
>>621722
На ideone запили. попахивает вторым пифоном и проблемами с байтостроками соответственно.
#156 #621727
>>621723
Да питон второй. У него проблемы с stdout'ом?
#158 #621730
>>621367
это ведь не путь совсем, тоесть пользоваться можно, но надо знать как и самому написать
#159 #621734
Любишь лего - Django
Любишь лепить из глины - Flask
#160 #621739
Анон, почему такой говнокод не работает?
http://pastebin.com/d9cGqq17
#161 #621741
>>621739
Понял.
#162 #621758
>>621729
И… что тебя не устраивает в выводе?
29 Кб, 367x367
#163 #621765
>>621734

>глины

85 Кб, 450x578
#164 #621767
Говно эта ваша джанга. У меня значит загружаются пикчи, в форме они проходят валидацию, там то pil не пытается прочитать всё изображение и всё вроде как заебок, дальше в модели у меня генерируются тумбы и все дела. И вот тут-то в модели-то и происходит исключение если пикча битая. Ну хуй с ним в модели запилил метод clean, он вроде появился в версии 1.2. Но блядь когда юзаешь это дело в админке, то метод clean вызывается дважды. Если используешь модель вне админки то clean нужно вызывать самому. А в этом методе у меня pil как раз и читает пикчу полностью, и если произошел фейл, то кидается ValidationError Пришлось завести специальный флажок для избегания этой ситуации (формочку планируется использовать не только в админке), в которой такая относительно тяжелая операция как чтение картинки вызывается дважды.
Что еще? Еще у меня в ModelAdmin переопределены методы add_view и change_view. У меня форма посылается ajax, так как нужен достаточно продвинутый функционал при работе с пикчами. Так вот, тут происходят два sql запроса на получения альбома который сейчас редактируется, сначала сам ModelAdmin получает для себя, потом получаю я для себя. Но тут-то хуй с ним, понятное дело, что автоматика есть автоматика, на это глаза можно закрыть.
Как итог, то наверное было бы быстрее если бы я взял какой-то более лёгкий фреймеворк. Ну и конечно оно на себе несет тот отпечаток, что оно создавалось для газеты. Джанго конечно годен если тебе нужно клепать сайтики как пирожки, но если ты хочешь попробовать свои силы в вебе один раз и знаешь как работают интернеты, то проще взять более низкоуровневую штуку.
#165 #621774
>>621767

>Говно эта ваша джанга


>Джанго конечно годен


А почему ты выбрал джанго для своего прожекта?
#166 #621778
>>621774
говно-годен в зависимости от того, что ты от неё ждешь. Там где тупо всякие текстовые поля да галочки она не создаёт проблем. Например в случае той же газеты. А в моём случае я мог бы так и не узнать о том, что она два раза вызывает clean.
Выбор был обусловлен знанием языков - perl и python, perl был отброшен сразу. А джангу я выбрал так как до этого не занимался вебом со стороны именно веба, а она наиболее попсовая и сулила наиболее лёгкую разработку.
#167 #621780
>>621739

>if words[(index-1)].isalpha and words[(index+1)].isalpha:


>return True


>else:


>return False


Explicit is better than implicit вышел на новый уровень
#168 #621796
>>621780

if words[(index-1)].isalpha and words[(index+1)].isalpha:
..return True
elif not words[(index-1)].isalpha or not words[(index+1)].isalpha:
..return False
#169 #621819
>>621796
if words[(index-1)].isalpha and words[(index+1)].isalpha:
..return words[(index-1)].isalpha and words[(index+1)].isalpha
elif not words[(index-1)].isalpha or not words[(index+1)].isalpha:
..return words[(index-1)].isalpha or not words[(index+1)].isalpha
#170 #621839
Как проще всего сравнить папки с подпапками? Через рекурсию с filecmp.dircmp?
#171 #621856
>>621819
Спасибо! Угорел... Писал для наглядности, чтоб не упустить ничего. Только там скобок нет в конце, по этому и не работало.

У меня еще вопрос! http://pastebin.com/RszXAMyw

Как пройти по всем объектам, так как for после удаления перескакивает. В итоге в примере остается 2 и 4.
#172 #621859
>>621856
Добавляй нужные элементы в новый список, например.
6 Кб, 445x103
#173 #621863
>>621758
У меня в терминальчике D добавляется.
#174 #621864
>>621859
Так работает, а без новых списков?
#175 #621868
>>621864
return [a for a in data if data.count(a) != 1]
#176 #621869
>>621864
return filter(lambda a: data.count(a) != 1, data)
#178 #621879
>>621839
хуйня получается пиздец
брр хоть циклом перебирай
пойду glob ебать, может хоть он сможет
#179 #621880
>>621864
import re
def abc(data):
....return [int(a) for a in data if len(re.findall(str(a),''.join([str(a) for a in data]))) != 1]
#180 #621885
>>621879
Я не совсем понял что именно ты задумал. Но есть подозрение, что тебе может помочь пересечение множеств.
#181 #621890
>>621885
Есть фтп, хочу с него грести файлы и папки, которые у меня ещё не скачанные.
Потому pysftp.get_r() качающий рекурсивно всё подряд не подходит, а надо это дерьмище как-то сперва фильтовать.
Ебусь через os.path.walk локально и urllib/pysftp удалённо сравнивая наличие соотвествующих файликов в соответствующе называнных директориях
dircmp удобней был бы для проверки локальной папки и составления списка, но оно блядь не умеет рекурсивно грести всё дерьмо из подпапок папки.

уже раз наверное 8 с нуля код переписываю
#182 #621894
>>621890
Так тебе по названию фильтровать или по содержимому?
#183 #621895
>>621864
А нахуя тебе отсутствие новых списков?
#184 #621896
>>621894
Просто названию файла
#185 #621901
>>621890
Почему не получить рекурсивно все файлы, которые не папки, а потом просто вычесть все что уже есть?
#186 #621904
>>621901

>рекурсивно


ОПТИМИЗАЦИЮ НЕ ЗАВЕЗЛИ!!!! АХАХАХ
#187 #621905
Уважаемые, простите за охуенно тупой вопрос, но у меня возникла проблема с инструкцией nonlocal. Стоит питон 3.5 и всеравно при запуске файла пишет инвалид синтакс и указывает на эту строку. Подозреваю что проблема в моей тупости но все же...
#188 #621906
>>621904
Любую хвостовую рекурсию можно превратить в цикл. Побудь-ка ты компилятором.
#189 #621908
>>621901
Так и делаю
Просто это как-то тупо. Я думал беда в том что я нубло и где-то в дебрях стандартной библиотеки или хоть pypi чего завезли, но всюду хуйня
#190 #621910
>>621908
А разве pysftp.walktree не подходит для твоих черных дел?
#191 #621914
>>621905
Код-то покажи
#192 #621918
>>621910

>pysftp.walktree


Как-то я его проебал.
С ним бодрее пойдёт, кажется.
Спасибо!
#193 #621920
>>621717
Нет, давайте серьезно ответьте.

>Что выбрать Django or Flask? Аргументированно.

#194 #621921
>>621914
Да любой код. Вот напримкр самый стандартный
def method():
def method2():
nonlocal value
value = 100
value = 10
method2()
print(value)
method()
Выдает ошибку
#195 #621926
>>621921
Если бы присутствовали отступы, то было бы проще тебе помочь.
#196 #621929
>>621921

>>> def method():


... def method2():
... nonlocal value
... value = 100
... value = 10
... method2()
... print(value)
...

>>> method()


100

И что у тебя не получается? Где ошибка? Какая ошибка? Ты можешь нормально вопрос задать?
#197 #621947
>>621890
Воспользуйся aioftp
#198 #621973
>>621863
Ну, раз на ideone всё заебись, а у тебя нет. Проблема у тебя в «системе».
#199 #621984
>>621863
Это потому что ты вводишь свою хуйню а потом жмешь Ctrl+D. Ctrl+D отправляет в терминал символ с кодом 4, который означает конец файла. Терминал его показывает как ^D. Питон считывает его, прекращает ввод, выводит 1, и в терминале ^ заменяется на единицу, а D просто не стирается.

Выполни вот так: python _344.py <<< '3
10
10
10'
#200 #622104
>>621984
Спасибо.
#201 #622248
Мне выбивает exit code -1073741515. Что это значит?
#202 #622255
>>622248
Это значит спермопроблемы.
35 Кб, 454x444
#203 #622256
Что почитать по Django?
Ну т.е. я вот сделал вьюшки, темплейты разделил.
У меня сверху в меню список категорий, который передаётся контекстом во все вьюшки.
Что-то мне подсказывает, что некрасиво так делать. Но в документации нет инфы.
Головой подумать я пока не могу, ибо слишком неуверенно себя чувствую в джанго/питоне, неделю изучаю
#204 #622260
>>622256
А что не так? Как вариант можешь template tag запилить для отрисовки меню.
#205 #622262
>>622256
Насчет что почитать - 2 scoops of django годная книжка типа best practices.
На http://djbook.ru/ куча рецептов
#206 #622264
>>622260
>>622262
Ясно, спасибо.
3565 Кб, 320x180
#207 #622549
Пару месяцев назад начал погромировать на путоне, преимущественно на линуксе. Появилась необходимость сделать executable для винды. Начал читать, как же сделать экзешник, да еще и с иконкой. Попробовал pyinstaller. Мало того, что для него еще нужно скачать Py4Windows. Ну ладно, это цветочки. Но размер вышедшей проги заставил мой пукан пробить орбиту. 15 мегабайт на прогу с гуем на ткинтере, несколькими формочками и оче простым преобразованием. 15! Вы серьезно? Чому так много? Такая же прога на плюсах (inb4: уходи, мразота) будет весить раз в 10 меньше. В общем, я знал что путон тяжелый и медленный, но я не думал что настолько. Может я что-то не так сделал? Посоветуйте как сделать вменяемый по размеру executable под винду.
#208 #622553
>>622549
На дискету не помещается, да?
#209 #622554
>>622549
Екзешник вмещает в себя интерпретатор питона. Меньше не выйдет.
#210 #622570
как регулярными выражениями пропустить (re.escape) всю хуйню кроме цифр и плюса?
33 Кб, 490x454
#211 #622586
слово из спам листа, блядь
#212 #622599
>>622549
Это норма! У меня с pyqt под сотню вышел… похуй вообще. Кстати, с pyinstaller-ом не доставлял никакой хуиты, всё заработало сразу и без ебли. Ещё хочется!
#213 #622624
>>622554
Забавно, что в дельфях когда-то никакой интерпретатор в экзешник не конпелировался, но он все равно толстым получался. Особенно на фоне своих современников. Помню, что даже какое-то время юзал aspack, который выкидывал из бинарника всякий мусор, и из-за которого позже антивирусы начали эти бинарники детектить, как зараженные. Веселые были времена.
#214 #622629
>>622624
Неправда. Там было 400 кб из-за статически прилинкованного VCL. Если же юзать динамческую линковку (как делал VB6, Visual C++ с его MFC и даже C++ Builder), экзешник весил копейки. Плюс была библиотека KOL с объектной системой от турбопаскаля (object вместо class), она генерировала ультрамаленькие exe будучи полностью автономным статически слинкованным модулем. И нахуя мне это нужно? Учил бы С++ сразу, не забивал бы голову этим говном.
44 Кб, 1277x706
87 Кб, 1277x706
#215 #622630
Подскажите, пожалуйста, почему.
#216 #622633
>>622630
total=0 выше цикла напиши
#217 #622634
>>622630
Зачем тебе вообще тотал, он же нигде не используется
#218 #622635
>>622633
А, он у тебя объявлен. Тогда global total
#219 #622642
>>622635
Помогло, спасибо. Тогда такой вопрос: почему для terms не надо global писать?
#220 #622645
>>622642
Потому что это питон, детка. Объекты и списки - это другое колдунство. Надо было учить мертвый руби.
#221 #622651
>>622642
Это специальные грабли, чтобы любители глобальных переменных наступали на них и получали по лицу.
#222 #622681
>>622256
Two scoops of django.
#223 #622687
Унылый, устаревший язык с плохой приспособляемостью к нынешним реалиям. В общем-то бесполезен для современного мира. Мертвый язык.
Удобен в использовании разве что для ньюфагов в программировании. Ничего серьезного на нем написать невозможно.

Кстати, есть ли примеры игорей на питоне? Можно даже не ААА.
#224 #622688
>>622687
civilization 4, eve online, frets on fire, pysol, Mount&Blade, battlefield 2
#225 #622689
>>622687
Относись ко всему проще: ЯП это просто инструмент. Нет плохих и хороших инструментов, есть подходящие и не подходящие.
Пока будешь всё мерить через призму того, что уже знаешь - ничему новому не научишься
#227 #622693
>>622688
Маловато и все старые.

>>622689
Уча питон после с#, делфьинчика, с++ и пары УГ языков я ничего нового не узнал. Язык простенький. Не знаю как такая простота может выполнять сложные операции.

>>622690
Мало же.
#228 #622694
Кто нибудь работал с FIFE? Как запустить сраный map editor?
#229 #622695
Вообще, fife - эталонный пример того, как не надо писать документацию. Вернее её вообще нет. Реквестирую движок под питон, на котором бы можно было сделать игру в стиле первых двух фоллаутов с нормальной подробной документацией.
#230 #622701
>>622695
Ты её никогда не сделаешь тем более один. Забей.
Можешь в браузере на html5 попробовать сделать проку больше будет от полученных знаний. Или рогалик в ascii кодах.
#231 #622702
>>622687
>>622693
ПуреВасян, ты?
#232 #622704
Парни, а что вы читаете из программинговых сайтов, может что ещё есть типа хабра с туториалами по всему подряд в частности по питону на любой вкус и цвет? Мову английскую знаю.
Реддит питон фор бегинерс и просто питон смотрю, но там филиальчик стаковерфлоу, а мне бы идей почерпнуть и подходов.
#233 #622707
>>622704
Кстати неплохо доставляют ещё эти ребята http://pycoders.com/archive/
#234 #622708
>>622704
Раньше был подписан на rss ленты всяких блогов и был какой-то их агрегатор. На русском есть http://pythondigest.ru/
Вообще хз реддит лучше всего там несколько субреддитов по питону и джанге. Тот же аггрегатор новостей и ссылок на статьи.
Ещё списки рассылки есть на них через google groups можно подписаться.
#235 #622709
>>622701
А мне и не нужно сделать, мне нужно начать делать. Писать на канвасе в хтмл - то же самое, что писать движок с нуля.
Хейта пост sage #236 #622712
Те кто начинал с каноничных плюсов, школодельфята, матлабобоги, объясните пожалуйста, почему питон такое дерьмо? Что за ебанутый синтаксис. Почему ебанный матлаб 2014 работает шустро, а ссаный пичарм, написанный скорее всего на том же говнопитоне имеет ощутимую задержку при любом действии. Что за ебанутые особенные правила работы с глобальными переменными для функций? Как так вообще жить? Где нормальные массивы, что за дерьмосписками с ебанутым интерфейсом нам подложили? почему нужно стольк скобок? СХуяли в 2016 году питон по умолчанию не умеет в юникод? Почему даже при явном указании на утф-8 он плюется на АСКИшные же символы!!Нахуй вообще это дерьмо нужно?
#237 #622716
>>622712

> ссаный пичарм, написанный скорее всего на том же говнопитоне


На java. Это тот же движок что intellj idea, phpstorm, clion и прочее.

> с глобальными переменными


Глобальные переменные - зло. Их надо избегать.

> Где нормальные массивы


в numpy

> питон по умолчанию не умеет в юникод


Умеет. Вангую проблемы консоли венды, но питон тут не при чем.
#238 #622719
>>622708
Я так понимаю аналогов хабра в общепланетарном масштабе и не существует?

Спасибо за ссылку, читаю, очень нравится
#239 #622720
>>622716

>Глобальные переменные - зло. Их надо избегать.


И передавать по десять параметров из функции в функцию или писать функции по 1 строчке. Увы, глбл - зло, с которым необходимо сотрудничать. А питон пытается всеми силами защитить от него.

> все остальное


посмотрю. Какие годные ide для венды есть, не написанные не на джваве ни на питоне?
#240 #622721
>>622708
Нульчую дайджест. Далеко не всё там интересно, но бывают ссылки на очень интересные либы и/или статьи.
#241 #622723
>>622720

> десять параметров


Параметры «пакуются» в контейнеры, желательно с именованым доступом.

> с которым необходимо сотрудничать


Нет.
ты какой-то долбоёб зачем тебе вообще пифон? сиди в своих дельфях и матлабах
#242 #622724
>>622720
Нахуя для питона вообще ide? Всякие автодополнения и подсветку умеют обычные редакторы.
http://komodoide.com/ попробуй чтоли.
Реальных ide два - pycharm и pydev и оба на java. Кстати для других языков ситуация аналогичная.

> Увы, глбл - зло, с которым необходимо сотрудничать.


Не необходимо. В глобальном скопе разве что какие-то константы можно хранить.
Используй ооп подход.
Кстати, доступ к глобальным переменным медленней, чем к локальным.
#243 #622729
Сап, двач. Начал изучать питон помоги разобраться. Код умножает каждый элемент списка на 3. Я не могу понять что делает вторая строка и почему она работает именно так? Хотя основной вопрос, все же как она работает, ведь если разнести эту строку на несколько, то нихуя не работает. Собственно сам код:
arr=[0,1,2,3,4,5,6,7,8,9]
i,x=0,len(arr)
while i<x:
arr*=3
i+=1
print(arr)
#244 #622731
>>622729
Эквивалент вот:
I=0
X=Len(arrr)
#245 #622741
>>620306

> Ребят, какие есть перспективы в плане работы на питоне?


Долбится в очко работая гей шлюхой есть перспективы. Потому что на питоне 2,5 вакансии куда нужен как минимум мид. на которые конкуренция человек 200.
Попутно можно учить перспективный и востребованный язык, а не говно для студентов.
#246 #622807
#247 #622808
>>622807
И хостится на шаредах. КАЗДЫЙ ХОСТЕР ПОДДЕРЖИВАЕТ
3 Кб, 558x125
#248 #622816
>>622586
пикрел?

>>622720

>Увы, глбл - зло, с которым необходимо сотрудничать


Вот, например, как этот >>622630 сотрудничает. Вместо того, чтобы в processTweetFile (инб4: >python >camelCase) создавать новый словарь terms и его же возвращать, он за каким-то хуем держит его в глобале. Завтра он захочет разобрать два разных твита и придёт сюда с просьбой разобраться, почему в словаре лишнее что-то.
Ещё и файл не закрыл...
#249 #622819
>>622630
Да, кстати, к твоему вопрос из главного треда доски: total в твоей функции не глобальная. '+= 1' это вам не '++'. Питон, соответственно, там видит "total = total + 1" (в случае с иммутабалами, по крайней мере). То есть ты определяешь (первый раз) переменную total, в значение которой нужно записать ... её же. Отсюда и referenced before assignment.
#250 #622829
>>622688
У варгейминга ui на питоне.
#251 #622831
>>622716

>Вангую проблемы консоли венды, но питон тут не при чем.


Я бы еще питон 2.х сванговал.
#252 #622839
Привет
#253 #622842
>>622716
Правильно вангуешь. Консоль винды настолько обоссаная, что скрипты если и запускают под спермосью, то либо пытаются их портировать на Python 3, либо, если хочется посадомировать с двойкой - используют Cygwin
#254 #622889
>>622842
А ведь им дали паверщель. Хуле они все с цмд.ехе, м?
#255 #622910
Господа-начинающие, на каких сайтах берете упражнения?
http://codingbat.com/python, practicepython.org - эти сделал
откуда еще черпать?
#258 #622914
>>622910
https://m.reddit.com/r/learnprogramming/comments/2a9ygh/1000_beginner_programming_projects_xpost/
http://blog.programmersmotivation.com/2014/07/09/list-projects/

Сам придумываю. Листаю хабр и всё что нахожу по питону, думаю где бы оно мне могло пригодиться - пишу. Стараюсь писать такое, что бы за один вечер успеть докодить до стабильной альфы. Благо с питоном это вполне возможно.
#259 #622915
>>622913
В checkio забавно сравнивать свои громоздкие решения с топовыми от местных маньяков. Идеальное решение по их мнению - это то, которое заняло одну строчку. Изгаляются там с лямбда-функциями, генераторами и т.п.
#260 #622916
>>622915
На самом деле это херовая практика, так код тяжелее читать как правило и разбираться в нем.
#261 #622918
>>622916
В спортивном решении задачек можно и побаловаться.
#262 #622935
>>622916
С одной стороны да, с другой - так можно найти более удобные/быстрые решения каких-то отдельных кусочков задачи, которые затем в нужной ситуации использовать.
#263 #622967
>>622915
Там разные есть. Есть и такие, как ты описал, а есть и очень даже хорошие.
580 Кб, 1920x1080
#264 #622988
>>622262
>>622681
Стоит ли пользоваться их cookiecutter'ом? Чёт он большой слишком.
#265 #622992
>>622988
Не обязательно. Хотя и неплохая штука вроде.
#266 #623021
стоит ли изучать питон для фриланса?
#267 #623023
>>623021
Да.
#268 #623024
>>623021
Нет
#269 #623026
>>622992
Отмена
#270 #623076
>>623021
Фриланса?
#271 #623077
>>623021
[САРКАЗМ]
#272 #623078
Как установить fife на линукс? Дайте пошаговую инструкцию.
#273 #623082
Допустим у меня есть иерархическая структура словарей, типа
{a: {b: {c: 1}}}, как мне безопасно получить значение по какому-либо пути, учитывая, что структура может быть не полностью заполненной?
В руби кажется есть для этого оператор элвис. В скале есть тип Option. Что в питоне для этого?
#274 #623084
>>623082
d.get('key1',{}).get('key2',None) ?
#275 #623108
Взял хостинг на AWS. Подскажите, есть ли какой-то иной вариант держать сервер запущенным, не коннектясь через консоль каждый раз к серву и не включая его вручную? Не хочется постоянно держать комп включенным, да ещё иногда 'Broken pipe' вылетают. Я на джанге.
#276 #623110
>>623108
Какой сервер? development сервер чтоли? запусти его внутри screen
#277 #623127
>>623108

>Взял хостинг на AWS


Сколько он вообще стоит? Дорого выйдет небольшой блог держать?
#278 #623128
>>623127
Палю годноту - cloudatcost.com
Минусы - сервера только в канаде
#279 #623129
https://github.com/rust-lang/rust/blob/219eca11b044de3644b3e9101124513c1a842b09/src/etc/check-sanitycheck.py

Я нуб и хочу спросить - это нормально что для пары маленьких функций написан целый декоратор? Причем как я посмотрел, он используется только в одном этом файле. Просто мне это кажется каким-то оверкилом.
#280 #623134
>>623127
Бесплатно первый год, думаю небольшой блог влезет в те бесплатные параметры.
>>623110
Я в этом ничего не понимаю, это EC2, instance type: t2.micro. Запустил через скрин - круто, то есть он теперь всегда будет работать, до тех пор пока я не подконнекчусь и не вырублю его, так? Спасибо тебе
#281 #623136
>>623129
Не нормально. Но что ты хотел от раста, который высрала команда не способная в нормальный код, и создавшая для своего фурифокса целый отдельный язык, на котором до сих пор ничего кроме серво не написано?
#282 #623161
Посоны, гляньте на код: https://dpaste.de/5BEg Он корректно работает на маленьких значениях, как искомой фразы, так и исходного набора символов. Но, начиная с 4-символьной фразы он уже не перебирает все варианты. 'abbe', например, находит, а 'acca' - уже нет. Я так понимаю, объект cwr содержит не все возможные комбинации. В таком случае, из-за чего останавливается генерация комбинаций? Не хватает памяти?
#283 #623193
>>623161
Все, разобрался. Не обратил внимание в доках к itertools, что в данном случае возвращается упорядоченный набор комбинаций, а не все возможные.
10 Кб, 233x203
#284 #623224
Анон, есть такой словарь:

someList = {
1000:[
("1","2","3","","5","","7","8","9")
],
1001:[
("1","2","3","4","5","6","","8","9")
],
}

Мне надо проверить все пустые ячейки из всех кортежей.
Пробовал так, но выводит лишь не пустые (FULL_BLOCK):

for i in range(len(listy)):
if ( "" == listy[i+1000][i-1000:][i-1000:] ):
print("%d\t%d\tEMPTY BLOCK\t[%d]" % (i+1000,i-000,i))
else:
print("%d\t%d\tFULL BLOCK\t[%d]" % (i+1000,i-000,i))
#285 #623225
>>623224
http://pastebin.com/CZM6V28P -- проще взять тут.
#286 #623248
Зачем читать Лутза (1к ебанины), если есть элегантный Dive into?
#287 #623253
#288 #623277
>>623224
>>623225
Кортежи еще и в списки заворачивать - обязательное условие? Если нет, то http://pastebin.com/9DNJp4GT
#289 #623291
>>623225
Что должно происходить-то. все дибилы забывают это указать
#290 #623403
Боже как я ненавижу фронтенд. Просили знакомые сделать говнолендинг что бы с мобильного норм смотрелся, сделал, у знакомых включился ВНУТРЕННИЙ ДИЗАЙНЕР, попросили по-мелочам переделать, сука, переделывай-переделывай нахуй хуйню эту бутстраповую блядь. Бесит пиздец. Днище.
Хочу уже добить и дальше в милый питончик писать своё консольное парсерное говнишко.

Просто поныть решил чуть. Хотя если чего посоветуете как лепить бутстраповую хуйню быстрее и что бы меньше возиться - буду крайне признателен.
Brackets live view кстати из коробки не запустился, сижу как лох ф5 жму.
#291 #623410
>>623403
Скоро вебассембля, полегче станет, не придется жс-дерьмо бочками жрать.
#292 #623506
>>623410
А чем питонодерьмо лучше? Я не встречал людей, которые считали бы питон хорошим языком, зная что то, кроме него.
#293 #623519
>>623506

>Я не встречал


Потому что в твоем классе никто больше в программирование не умеет?
#294 #623527
Решаю задачки на чекио - застрял на этой: http://pastebin.com/CnY5tqT4
Нужно из двух строк выбрать набор слов, который встречается в обеих строках. Так вот, решение, в общем-то, несложное, но что делать с тем, что сеты - неупорядоченные множества? Я могу упорядочить результат с помощью функции sorted(set1 & set2, key=set1.index), но третий проверочный assert нам как бы намекает, что упорядоченный результат составителей задачи не интересует. И ладно бы проблема только в этом assert была - можно пощелкать Run & Check несколько раз, пока не выпадет нужный порядок, но у них там еще свои проверки есть, и щелкать, чтобы проскочить сразу все я заебусь. Че делать-то?
#295 #623533
>>623527
Блять, "хакнул" слегка задачку, а потом посмотрел решения других пацанов, а они там sorted() без аргумента key юзают и им норм.
#296 #623536
>>623506
Классы, декораторы, импорты, система типов данных не такая ущербная, и многое другое. Яваскрипт вынуждает программистов писать свой собственный тулинг поверх языка, чтобы можно было решить на нем задачу хотя бы среднего уровня сложности. Или учить чужой фреймворк, каждый год новый. Съеби отсюда нахер, чушка js-ная.
#297 #623572
>>623536

>Классы, декораторы, импорты


в ES6(+) уже есть

>система типов данных не такая ущербная


а вот это, или There should be one-- and preferably only one --obvious way to do it. не завезли, и врядли завезут.
#298 #623577

> 2016


> бараны все ещё ищут идеальный язык, а не под конкретные нужды

66 Кб, 604x525
#299 #623647
>>623536
Кто бы говорил про ограниченность.
#300 #623724
>>623647
Кучу раз уже поясняли. Нужен новый пик.
#301 #623783
>>623724
поясни для нюфака
#302 #623809
>>623783
Есть три ответа:
1) Нинужно!
2) Допиливается с помощью костылей.
3) А у нас свой кривой аналог есть.

Применяешь их в случайном порядке ко всем пунктам списка и получаешь ответ.
#303 #623812
>>623783

>скорость выполнение


Естественно, это скриптовый язык. Причём общего назначения, а не как, например lua. Хотя вот JITа нет - это да. Хотя всё это зависит от реализации.

>многопоточность


Это относится к стандартной реализации CPython, в которой некоторой заменой этому является multiprocessing.

>компилятор


Охуеть. Без комментариев.

>проверка типов


Есть рантайм проверка. А проверка при написании целиком в руках программиста. Но при долгой работе с языком это более не ощущается.

>приватные методы


Гвидо сам говорил, что

>от i_ate_god (этот ник оскорбляет чувства верующих — прим. пер.)


Интерфейсы, абстрактные классы, приватные члены, др… Почему в Python отсутствуют эти вещи?

>Гвидо: Я вижу две причины: (а) они вам в действительности не нужны, и (б) их сложно реализовать, так как отсутствует проверка типов на этапе компиляции. Python начинался как экспериментальный проект (не утверждённый или одобренный начальством, но и не запрещённый), и я хотел быстро получить рабочий прототип. Поэтому я убрал возможности, которые были не особо нужны, и которые можно отложить; также пришлось все проверки типов делать в run time. Отсюда вытекают естественные ограничения на те возможности, которые поддерживает Python. Я также не был религиозным фанатом объектно ориентированного подхода. Я хотел получить простой язык, а объектно ориентированным он стал скорее по случайному стечению обстоятельств.



Да и вообще, есть общепринятое __methodname

>паттерн матчинг


>switch-case


Есть elif. А ещё можно функций в словарь/дикт напихать. А можно ещё много чего придумать.

>хвостовая рекурсия


Куда бы она делась? Есть.

>карринг


spam1 = lambda x : lambda y : spam( x, y )

>ленивость


Есть.

>алгебраические типы данных


Они и есть то только во всякой функциональщине и экзотике. А ещё инлайн вставки делать нельзя. И к памяти напрямую обращаться. Пиздец говно язык, нинужон.

>округление результатов


Щито?

>соглашения об именовании


PEP8, нуф сэд.
#303 #623812
>>623783

>скорость выполнение


Естественно, это скриптовый язык. Причём общего назначения, а не как, например lua. Хотя вот JITа нет - это да. Хотя всё это зависит от реализации.

>многопоточность


Это относится к стандартной реализации CPython, в которой некоторой заменой этому является multiprocessing.

>компилятор


Охуеть. Без комментариев.

>проверка типов


Есть рантайм проверка. А проверка при написании целиком в руках программиста. Но при долгой работе с языком это более не ощущается.

>приватные методы


Гвидо сам говорил, что

>от i_ate_god (этот ник оскорбляет чувства верующих — прим. пер.)


Интерфейсы, абстрактные классы, приватные члены, др… Почему в Python отсутствуют эти вещи?

>Гвидо: Я вижу две причины: (а) они вам в действительности не нужны, и (б) их сложно реализовать, так как отсутствует проверка типов на этапе компиляции. Python начинался как экспериментальный проект (не утверждённый или одобренный начальством, но и не запрещённый), и я хотел быстро получить рабочий прототип. Поэтому я убрал возможности, которые были не особо нужны, и которые можно отложить; также пришлось все проверки типов делать в run time. Отсюда вытекают естественные ограничения на те возможности, которые поддерживает Python. Я также не был религиозным фанатом объектно ориентированного подхода. Я хотел получить простой язык, а объектно ориентированным он стал скорее по случайному стечению обстоятельств.



Да и вообще, есть общепринятое __methodname

>паттерн матчинг


>switch-case


Есть elif. А ещё можно функций в словарь/дикт напихать. А можно ещё много чего придумать.

>хвостовая рекурсия


Куда бы она делась? Есть.

>карринг


spam1 = lambda x : lambda y : spam( x, y )

>ленивость


Есть.

>алгебраические типы данных


Они и есть то только во всякой функциональщине и экзотике. А ещё инлайн вставки делать нельзя. И к памяти напрямую обращаться. Пиздец говно язык, нинужон.

>округление результатов


Щито?

>соглашения об именовании


PEP8, нуф сэд.
#304 #623822
>>622910
Codewars.com забыли. Хотя может я чего незнаю о нем. сам нуб, 2.5 дня в теме, делаю все подряд на 8kyu
#305 #623823
>>623023
Ты пробовал? Как успехи?
#306 #623829
>>623224

>словарь


>someList

#307 #623871
Ебаный в рот, что такое хайп?
#308 #623906
>>623871
Это фейк что бы собрать классы
МММ всякие и тд
#309 #623961
>>620299 (OP)
Парни, дайте линки на годный редактор с подсветкой, и чем вы запускаете? Скачал уже три штуки, ни один нормально не работает.
#310 #623964
>>623961
Sublime Text 3
#311 #623968
>>623964
Ошибки не подчеркивает, непривычно. А собираете чем?
#312 #623972
>>623968
Накати на него Anaconda сверху и Sublime Code Intel. Ctrl + Shift + B > Build&Run, только укажи в настройках чем именно собирать и запускать. Гугл в помощь.
#313 #624150
Никак не могу врубиться как в питоне время между собой прибавлять
Говновелосипед из всего в секунды и из секунды обратно конечно сделал, но потом подумал что есть и более простой способо и уже добрый час туплю над ним.

Вот есть datetime - datetime, timedelta

> a = datetime(2010, 12, 12)


> b = timedelta(days=1, hours=2, seconds=15)


>print str(a+b)


этим говном можно запросто прибавлять время, но оно в datatime всегда будет требовать как минимум указать год-месяц-дату

может ещё чего есть, без даты?
#314 #624157
>>623871
Финансовые пирамиды.
#315 #624160
Анон, WTForms нормально обрабатывать вот так http://pastebin.com/8CR1QHyU ? Выглядит как говно. Валидации нет, формы необязательные.
#316 #624162
>>623812

> JITа нет


pypy же

> компилятор


http://nuitka.net/

> карринг


functools.partial

> инлайн вставки делать нельзя


можно https://pypi.python.org/pypi/instant
#317 #624163
>>623812

> памяти напрямую обращаться


через ctypes можно вроде
#318 #624166
>>624150
хз вот годный модуль для работы с датами http://crsmithdev.com/arrow/
#319 #624221
>>624163
Только читать (string_at создаёт копию)
#321 #624260
>>622645
Чому это руби мертвый?
#322 #624262
>>624260
Смотрите-ка, живой рабист!
8 Кб, 159x200
#323 #624268
>>624262
Лучше поешь хлопьев раби
#324 #624273
Вот код. Такого знания языка достаточно, чтобы пытаться податься в джуны?

http://pastebin.com/aDvFrhXD

Кое-что можно было написать незачительно компактнее, но было впадлу. Задача - типа найти наименьшее расстояние между точками в лабиринте, а потом прописать путь текстом.

Чувствую, что я ебучий говнокодер, и мне ничего не светит. Что думаете?
#325 #624282
Трудно и долго ли мне будет учить питон если я знаю Java?
#326 #624284
>>624273
Сейчас не то праздничное затишье, не то рынок перенасыщен быдлокодерами, но на мое резюме, например, полтора отклика за три недели пришло. При том, что пару лет назад меня HR-ы находили без всякого опубликованного резюме и предлагали варианты. Впрочем, возможно это конкретно у меня резюме какое-то зашкварное, хз.
#327 #624285
>>624282
Зачем тебе учить скриптовый динамический недоязычек если ты уже знаешь професианальный язык востребованый на рынке?
#328 #624289
>>624285
для фриланса ...сейчас я по состоянию здоровья не могу кодить в офисе...поэтому нужен язык на котором я смогу зарабатывать дома
#329 #624290
>>624289
php учи.
да и на java фриланс есть. всякие андроиды ещё можешь изучить.
#330 #624291
>>624289

>кодить в офисе


Всегда с этого проигрывал. Ехать в ссаный офис чтобы стучать по клавиатуре, когда точно такая же клавиатура со всем необходимым есть дома.
#331 #624292
>>624290

>php учи.


Шаред хостер, это ты? Когда из нашего треда съебешь?
#332 #624293
>>624289
p.s. я абсолютно серьезно. на питоне очень мало фриланса предложений, а желающих поработать море.
где ты вообще искать собрался фриланс этот? на upwork?
#333 #624294
Хорошо котаны если не питон ТО что я смогу быстро выучить и начать зарабатывать пока со здоровьем проблемы не решу?
#334 #624296
>>624293
фриланс площадок полно включая западные
#335 #624297
>>624290
тоже думаю над андроидом хотя у самого IOS смартфон....
#336 #624298
>>624294
Ну питон ты в любом случае можешь изучить, попробовать по крайней мере. Пригодится.
Если программировать умеешь это просто - почитай tutorial на оф сайте.
#337 #624301
>>624297
Ну как бы в android studio есть эмулятор. Да и можно android x86 запустить в том же virtualbox.
Если знаешь java тем более.
#338 #624302
>>624301
Ок,попробую ...
#339 #624343
>>624273
Ты делаешь сферические задачи в вакууме. Без промышленного опыта на любом языке ты не нужен, особенно сейчас.
#340 #624363
>>624343
что делать в таком случае?
#341 #624414
>>624293
Части заказчиков вообще наплевать на чём ты и как будешь делать. Уже несколько раз писал, что вкатился во фриланс слегка, нашлись постоянные заказчики. Правда последнее время я отклоняю их предложения, ибо задачи не особо интересные.
#342 #624420
>>623972
Нет там Build&Run, оба пакета поставил, wtf?
#343 #624423
>>624363
Вкатывайся на самую низовую работу в IT: тестировщиком и т.д. Пили что-то в интересной для себя сфере на актуальной технологии, через год меняй работу и показывай это на собеседовании.
#344 #624431
Парни, ещё раз реквестирую годный редактор/сборщик, ну что за хуйня такая с питоном.
#345 #624432
29 Кб, 1152x453
#346 #624435
>>624420
1. Tools - Build System - Python
2. helloworld.py > print('hello, world') > Ctrl+S
3. Ctrl+Shift+B
4. Profit
#347 #624438
>>624431
Сборщик чего?
#348 #624449
>>624162

>pypy же


Ну я подметил про реализацию.

>http://nuitka.net/


Не знаю, как оно работает, но тот же py2exe просто пакует исходники всех библиотек и твоего пакета в zip, кидает .dll в папку и интерпретатор туда же. Так что фактически никакой компиляции не происходит. Эта штука, как и все остальные, скорее всего делает так же.
331 Кб, 1200x900
#349 #624470
СВЕРШИЛОСЬ! НАКОНЕЦ-ТО Я СМОГУ ОТВЕТИТЬ БЛЯДЬ ВСЕМ ПАЦАНЫ ЧЁ УЧИТЬ ФЛАСК ИЛИ ДЖАНГО!

Открываешь раз: https://www.twilio.com/docs/tutorials/walkthrough/appointment-reminders/python/django
Открываешь два:
https://www.twilio.com/docs/tutorials/walkthrough/appointment-reminders/python/flask

Проходишь оба и идёшь нахуй учить что тебе там понравилось
#351 #624492
>>624482
Как видишь, все просто. Можно Ctrl+B юзать, кстати, это я проебался. Просто сам я всегда руками в сосноли запускаю из-за virtualenv и необходимости скармливать различные параметры.
#352 #624501
>>624492
Из MVS перекатываться тяжело, скачал и пиши код, а тут надстроек ещё дохуя для каждого редактора, не ожидал подобной ебли.

А библиотеки банально import'ом подключаются, или тоже ещё со скриптами и зависимостями ебаться придется?
#353 #624504
>>624501
Да, просто импорт. Если third-party заюзать хочешь, хуяришь pip install lib_name в консольке и тоже можешь импортировать сразу.
#354 #624508
>>624449
Оно делает по-другому.
#355 #624520
>>624501
Скачал и пиши код это Пичарм же
#356 #624521
>>624520
Пичарм требует ебли с донатом или таблеткой.
#357 #624542
>>624521
укажи сервером лицензии http://idea.lanyus.com/
#358 #624563
>>620721
легче вообще нахуй удалить питон этот уебанский
#359 #624567
>>624563
Тащемта это вендопроблемы, а не питонопроблемы. Такие проблемы есть с каждым языком кроме может быть джавы и сисярпа. А на какой-нибудь ноде или руби ты вообще хер под вендой нормально попишешь. Добро пожаловать в реальный мир.
#360 #624569
>>624508
>>624508
А, нашёл.

>Right now Nuitka is a good replacement for the Python interpreter and compiles every construct that CPython 2.6, 2.7, 3.2, 3.3 and 3.4 offer. It translates the Python into a C++ program that then uses "libpython" to execute in the same way as CPython does, in a very compatible way.



>It is somewhat faster than CPython already, but currently it doesn't make all the optimizations possible, but a 258% factor on pystone is a good start (number is from version 0.3.11).



Ну ок. Всё равно на костыль похоже.
#361 #624612
>>624414

> заказчиков вообще наплевать на чём ты и как будешь делать


Очень странно. Это видимо какие-то мелкие задачи.
Иначе заканчик будет думать - а что будет если ты пропадешь и надо будет найти кого-то кто будет это дорабатывать. И в этом отношении экзотические языки типа питона очень проблемны - мало специалистов, просят много, нос воротят.
Тут рулит индустриальный стандарт - PHP
#363 #624615
>>624567
нода вроде давно под виндой работает.
32 Кб, 436x461
#364 #624625
>>624431
Заскринил.
#365 #624634
Пилю систему по обработке эвентов. Есть базовый класс Event, который в ините просто пихает в свой __дикт__ всё, что ему дадут.
Теперь вопрос: Как лучше сделать собственно используемые эвенты - передавать параметр event_type, или наплодить кучу классов-потомков, типа SmthEvent(event) ?
С одной стороны система с event_type выглядит более гибкой, т.к. в строку фактически можно засунуть что угодно, плюс не надо заморачиваться с copy-paste класса-евента, тем более, что он кроме инита ничего и не умеет.
С другой стороны система с кучей классов выглядит стройнее и логичнее. Всё наглядно разграничено и тут уж точно ничего не напутаешь при её использовании.
Хотя есть ещё третий вариант: целиком забить на классы и представлять эвенты просто диктами, без какой-либо обёртки.
Собственно, хотелось бы услышать мнение анона, как он бы это сделал. И возможно то, как это обычно делается.
#366 #624637
>>624634
С event_type
#367 #624638
>>624637
Почему?
#368 #624640
>>624638
Зачем тебе плодить классы, которые делают одно и тоже? Какой смысл?
#369 #624641
>>624640
1) Так ты описываешь набор имеющихся событий. А с event_type ты, если заранее не напишешь их список или т.п., придётся по всему коду выискивать.
2) Можно задать параметры по умолчанию. Хотя для event_type можно запилить наборы диктов типа SmthEvent = {event_type:"Smth", params=(0, 1)} , что решает проблему описания, однако это выглядит почти так же, как и куча классов.
#370 #624643
>>624641

> заранее не напишешь их список


Что мешает?
Сделай
EVENT_TYPES = ((1, 'foo'), (2,'bar'))
Потом ты сможешь их комбинировать, чтобы создать маску если тебе например надо повесить обработчик сразу на несколько евентов.
#371 #624648
>>624641
А с параметрами по умолчанию можешь дикт сделать типа
EVENT_DEFAULTS = {'Smth': (0,1), 'Event2': (2,1)}
Типа как-то так. Так удобнее доставать будет оттуда их
#372 #624655
>>624612
Чего это питон экзотический?
#373 #624657
>>624655
Найди мне shared хостинг с поддержкой питона.
Найди мне что-то сравнимое по популярности с wordpress или drupal. С таким же количеством шаблонов и инстансов.
питон хипстерский язычок типа ruby.
#374 #624659
>>624657

>shared хостинг с поддержкой питона


Ты опять выходишь на связь?
#375 #624660
>>624657
то есть не стоит его учить?
#376 #624661
>>624660
Нет, ну смотря для чего. Какие-то наколенные скрипты может делать, perl намного лучше, но у него выше порог вхождения.
#377 #624672
>>624657
Ну, если тебе норм делать 10 однотипных быдлосайтов в скотоконторе каждый месяц и ставить их через фтпшку на шареды - тебе не по адресу.
#378 #624674
>>624657
Ну 2007 закончился же уже, вокруг хероку, амазон впс и тд и тп, ну сколько можно дрочить на быдлятник этот с хостингами в папочках
>>624660
Не слушай его, он поехавший. Ещё и пёрл рекомендует, интересно он его хоть видел блядь. Пиздец.
#379 #624675
>>624674
Зачем ты так ненавидишь анона? Вот выучит он этот язычок по твоему совету и будет сидеть без работы как все в этом треде.
#380 #624677
>>624672
А что ты хотел? Кушать то что-то надо.
Но можешь да на локалхосте делать суперподелки никому не неужные.
Бизнесу нужны "10 однотивных быдлосайтов". Или крупные проекты типа facebook, а они все делаются на php, java или c++. В некоторых случаях(суровый энтерпрайз) на c#/asp.net
#381 #624680
>>624675
Не толсти, заебал.
#382 #624688
Питон учат все кому не лень. Наса, гуглы, хуясы, спамеры, конспираторы, тд и тп.
Это такой современный паскаль с бонусами: во-первых дохуища всего на нём уже написано, значит лепить велосипеды веселее и быстрее, во-вторых широта применения - разве что драйверы человеческие на нём писать нельзя. Скорость тоже бывает сносной при простой встроенной возможности использования сишных библиотек.
Короче я тупо не вижу ни одной причины чего бы и не выучить, как минимум для себя он точно найдёт применение шире пёрла/баша/прости господи пхп
#383 #624694
Посните за @cached_property Django?
#384 #624722
Чот у меня загорелось. Какой-то СИСАДМИН форкнул и переписал мой код так, как я бы никогда не смог написать. СИСАДМИН, КОРАЛ
#385 #624728
>>624675
У меня есть работа. :P
#386 #624729
>>624722
Ссылку!
#387 #624745
>>624728
расскажи про работу, как нашел, нравится или нет?
#388 #624749
>>624745
Работаю сторожем на складе. На работе много свободного времени и я могу писать на питоне на смартфоне.
#389 #624769
>>624749
ноут нельзя приносить? сколько платят?
#390 #624771
>>624769
Это зеленый. Ты первый день тут?
#391 #624772
>>624769
Ноута нет
8 тысяч
#392 #624773
>>624771
Какой еще зеленый?
#393 #624798
>>624745
Работа норм. Embedded, госконтора, всё, что можно пишу на пифоне, нраится.
#394 #624818
>>624772
Планшет с клавиатурой пронеси.
#395 #624828
>>624772
смартфон же быстро заряд теряет
2621 Кб, Webm
#396 #624875
>>620299 (OP)
Джанганы. А где ВЫ делаете всякие проверка на вьюшках, мол, верность переданного PK для инишиала формы.

В методах get, post или таки dispatch?
#397 #624878
>>624875
Ну если ты используешь CBV там же это автоматически уже есть.
Глянь как зделано.
#398 #624879
>>624878
Ты не понял. Допустим, у нас есть категории тем блога/форума/неба с аллахм, считай разделы. При выборе раздела мы формируем ссылку "написать тему". И дабы не утруждать пользователя выбором категории и списка мы за него должны проставить инишиал. Чтобы его проставить мы кваргом передаем в урлу pk категории.

Т.е. CreateView получает дополнительный параметр, который сама джанга не отрабатывает. А верность этого самого pk (чтобы юзер не влупил 666, к примеру) мы должны проверить. Так вот, красивее проверять в dispatch, или в get и post?

Я к тому, как вы относитеть к засорению диспатча.
#399 #624886
>>624879
Там вроде есть get_initial метод, в нем можно дернуть параметры из self.request...
http://stackoverflow.com/questions/17191778/django-createview-with-pre-populated-and-uneditable-fields-specified-by-query-s
как тут делают.
#400 #624887
>>624879
Но ты я так понимаю хочешь чтобы ошибка была, если такой категории нет.
Вот тут подобное в dispatch делают
http://stackoverflow.com/questions/5607205/how-can-i-make-a-generic-class-based-create-view-for-a-model
#401 #624888
>>624887
А чуть ниже вариант с get_form
хм
А что метод dispatch делает? Подготавливает данные или что?
#402 #624958
>>624888
Тут dispatch находит тот самый объект, переданный через дополнительный параметр
#403 #624965
>>624729
Двачую.
122 Кб, 600x300
#404 #625009
>>624965

> Двачую


На сосач быдло
#405 #625048
>>625009

> На сосач быдло


> 2ch.hk/pr

#406 #625053
Сосачую капчу в этом итт треде! Уёбуйте на сосач с моего абучана
#407 #625105
>>625009
На быдло, сосач.
42 Кб, 355x396
#408 #625163
#409 #625229
Блин, чет вообще нихера не понятно с этой джангой. Как ты её вообще учил, анон?
#410 #625263
>>625229
Djangobook -точно хуйня ебаная, если ты пытаешься по ней. Лично после Лутца и документации нихуя не понятно, во многом потому что не приводятся сразу результаты.
А самое главное, потому что я не знал ничего про CSS, HTML, SQL и тд.
#411 #625265
Как совладать с pyqt5, если у тебя не python 3.4 и ты виндомразь? Установка без готовых exe какой-то пиздец, ад и Израиль.
Стоит ли овчинка выделки с 5й версией, или не стоит ебать себе мозг и установить pyqt4 на 2.7?
Вообще кто-то смог установить pyqt5 на 2.7 или на 3.5?
#412 #625269
>>625265
Я совладал с 5.5 на 3.5. Почти всё по туториалу. Но больше не хочется.
#413 #625271
>>625229
Вообще джанго очень высокоуровневая и навороченная хуйня. Когда я ей начал пользоваться я уже много лет делал сайты на cgi/perl потом на php. И имел дело с ORM, MVC фреймворками, шаблонизаторами и прочим. т.е. что там и для чего было очевидно сразу.
Думаю лучше начинать с чего попроще, а не сразу с джанги.
#414 #625272
>>625265
Не страдай хуйней а ставь pygtk и python 2.5
#415 #625273
>>625265
А в чём проблема?
#416 #625274
>>625273
Уже не помню, но пришлось какие-то то ли конфиги, то ли мейкфайлы руками править. Правда всё гуглилось неплохо. Но всё равно тоскливо.
#417 #625277
>>625265
изи для линуксобога
#418 #625278
>>625273
У меня упорно не видит qmake, хотя путь в PATH прописан. И по этому пути он есть.
Вместо программирования сижу и ковыряю какую-то хуйню уровня "после дождичка в четверг 5 раз постучите в бубен и 4 раза прокрутитесь вокруг своей оси в тройном сальто назад."

>>625269
И все работает?
То есть, если я продолжу сношение - меня не наградят необъяснимыми хуйпойми багами?
#419 #625281
>>625272
Разве у pygtk есть аналог Designer'а? Хочется уделять минимум времени на поклеп интерфейса.
195 Кб, 1183x770
86 Кб, 1153x671
#420 #625283
>>625281
Конечно есть.
#421 #625285
Можно я выскажу гипотезу, а вы меня поправите что бы по-человечески было

Вот джанго, пока все действия в тутуриалах что я видел - делаются с:
статичные файлы или шаблоны приложения - тут всё понятно, сюда срать выводом
urls - вызывает view который срёт выводом в статику
views - фигня которая определеляет что куда выводить и из чего
и
models - вот тут вся магия как мне кажится и крутится, если допустим мне нужно в джангу выводить данные какие-нибудь - то парсер этих данных мне писать нужно классом в models, и уже через views и urls выводить в статику
Так? Или как?
#422 #625286
>>625285
Ничего не понял. Какой парсер. Каких данных.
#423 #625287
>>625285
Тоже ничего не понял. Что значит " в джангу выводить данные"?
#424 #625291
Парсер это я так пизданул, на самом деле не суть важно.

Окей, мне надо выводить десяток изображений. Галерея ёбтыть.
Я пишу в models класс ImageGallery
через views определяю какой-нибудь def images_list(request)
через urls - url (r^/images/$), image_list
создаю статику с одноимённым названием куда пихаю
{{ for img in images }}
...<img src="{....
#425 #625292
Скажите, имеет ли смысл решать задачки на сервисах типа http://www.codewars.com/, https://codefights.com/ и http://www.checkio.org/ ? Стоит продолжать или лучше дропнуть это и пытаться дрочить какой-нибудь сложный реальный проект?
#426 #625294
>>625291
Ну и? models определяет структуру данных в БД. И всё.
Потом ты с этими моделями работаешь из views
#427 #625295
>>625292
На upwork тесты по питон пройди
#428 #625296
>>625294
И куда тогда мне код писать?
Ну в смысле вот захочу я инстаграмм делать с этой галереей, через PIL изображение пропускать - где мне эту фигню коннектить? во views?
#429 #625297
>>625296
Хм. Вообще такая обратотка будет занимать слишком долго скорее всего и придется складывать обработку изображений этих в очередь какую-то и обрабатывать отдельным процессом.
#430 #625299
>>625296
А так - да. Можно сделать метод наложения эффекта в модели, а дергать его из views.
#431 #625302
>>625297
Ладно, давай реальнее.

Есть горстка плагинов по добавлению в django google maps'ов, добавлению на них - своих меток и из коробки юзеры-группы
хочу добавить гугл карту, на неё - такие-то метки для такой-то группы юзеров, такие-то для такой, такие-то вообще для одного конкретного юзера.
в модель прописывать связь вывода группа юзеров - группа меток, пользователи - метки
потом через views их дёргать, так?
#432 #625303
>>625302
Ну да
34 Кб, 541x498
#434 #625307
Погромисты, скажите честно, существует ли что-нибудь прекраснее Питона+Джанго?
Я работал с php, js, c/c++, perl, java, но ничего изумительнее питона и джанго не встречал.
#435 #625308
>>625307
Конечно. ruby on rails. grails. asp.net mvc.
174 Кб, 1280x898
#436 #625310
PyCharm: http://idea.lanyus.com снова наебнулся, а значит настало время поклянчить ключик на 5.0.x
#437 #625311
>>625305
бляя, я боюсь, что меня во время интервью также запишут и выложат на ютуб.
#438 #625312
>>625311
Это чувак сам себя записал и выложил.
Кстати, я недавно проходил интервью по скайп и меня сразу предупредили что они записывают.
#439 #625315
>>625278
Да всё работает. Я делал фриланс проект под няшным линуксом и в ус не дул. А как дошло дело до деплоя (у заказчика венда) то обосрался, ибо бинарников pyqt5 под 3.5 не было, а я уже заюзал модный async/await. Так что пришлось собирать самому, но в итоге бинарник есть и всё работает. Рекомендую под это дело виртуальную машину делать, ибо засирается всё баснословно. Ну, и пользоваться для сборки удобнее и не сломается ничего само по себе.
#440 #625316
>>625303
Ну логично тогда, чё.
Просто мне казалось что не может быть все так просто.
программирую месяц, все это время на Питоне, учу джанго 2 дня
#441 #625318
>>625315
Под каждый проект vagrant подымать?
#442 #625322
>>625318
При чем тут vagrant?
#443 #625324
>>625310
Всем спасибо: http://us.idea.lanyus.com/
#444 #625325
>>625318
Нет, одна среда для сборки бинарника для pyqt5.5 python3.5. Да и то, пока бинарные сборки не вышли от ривербанка.
#445 #625359
>>625295
2.90 of 5
Это при том, что я на две трети вопросов гуглил, хоть и моментально находил ответ, но всё же.
#446 #625377
>>622741
Двачую.
72 Кб, 960x1040
#447 #625406
Анон, подскажи, почему с этим урлом не работает код?
Сам недавно начал учить питон, хочу поплотнее научиться парсить разные данные с веб-страниц. Нашел на фл задание с эти урлом, взял просто попрактиковаться, но ничего не выходит. Помоги, плиз.
http://socialblade. com/youtube/top/500
#448 #625407
>>625406
В чём сакральный смысл запускать в винде скрипт указывая путь к нему жопойслешем наперёд?
#449 #625410
>>625406
Ну ёбаны в рот блядь, вы, нахуй, с доступным сосачем совсем гуглить разучились. Просто пиздец. Почему, блядь, нельзя в гугле вбить 2 слова "urllib 403", перейти по первой ссылке и найти ответ, а? Бляяя, как же у меня бомбит. Ну что за пиздец.
#450 #625411
>>625407
Для кроссплатформенности питон (да и любой кроссплатформенный софт) конвертит вендовый обратный слеш в прямой. Потому что во всех ОС для указания пути используется прямой слеш, и только в венде обратный, и легче подставить костыли одному инвалиду.
#451 #625414
>>625406
Скорее всего из-за robots.txt или типа того.
#452 #625416
>>625359
>>625292
Бамп вопросу, ребятки. Задачи мне нравятся, учат писать код правильно, но стоит ли уделять этому много времени в начале обучения? На питоне пока написал только пару скриптов по ~100-120 строк, работают на продакшене, но что-то посерьёзнее еще не пробовал делать.
#453 #625417
>>625410
Спасибо, анончик, теперь буду знать, что именно гуглить при ошибках.
Проблема была в том, что сайту не нравится питоновский User_Agent.
#454 #625419
Укус питона и Погружение читаются вместе или это две почти одинаковые книги?
#455 #625420
Погружение в укус питона.
#456 #625435
>>625419
Как показывает мне практика прочитать в 4-5 книгах по одной теме за вечер-два куда круче чем одну книженцию целиком.
Короче читай по порядку, если что в какой теме не ясно - полистай ещё какой источник информации и ещё чего найдёшь.
А так читал обе. Обе "типа лаконичное" говно без задач. И Learn Python Hard Way с Доусноном туда же.

Если хоть чего по кодингу уже знаешь - сразу читай Think Python и попутно всякие Automate the Boring Stuff и всякое говно отсюда пиши http://blog.programmersmotivation.com/2014/07/09/list-projects/
#457 #625454
>>625435
А think python разве не про 2.x версию питона?
#458 #625457
>>625454
Последняя, что я видел, была по 3.2. Да и какая разница? Будешь к принтам скобки дописывать, да и все.
87 Кб, 1519x515
82 Кб, 960x1040
#459 #625461
Анончик, почему не парсятся первые два столбца? Ничего не пойму, уже перепробовал по-всякому и select'ом и find_all...
#460 #625504
>>620299 (OP)
Можете привести типичные ситуации в вебе когда используется celery? А то сейчас ищи работу и в некоторых вакансиях сельдерей проскакивает как требование.
187 Кб, 1702x676
#461 #625505
>>625461
У меня всё ок.
#462 #625507
>>625504
Ну например после регистрации письмо надо отправить. Это лучше делать в отдельном процессе, а не в веб сервере который заблочится от этого. Поэтому эти письма складываются в очередь и рассылаются отдельно.
Или обработка каких-то файлов - аналогично.
#463 #625510
>>625507
Понял, спасибо.
#464 #625512
>>625507

> Ну например после регистрации письмо надо отправить. Это лучше делать в отдельном процессе, а не в веб сервере который заблочится от этого


Синхробыдлопроблемы.
#465 #625513
>>625512
Картинки тоже будешь обрабатывать асинхронно умник или вычисления какие-то делать?
#466 #625514
>>625513
Конечно нет, речь шла об отправке письма.
#467 #625516
>>625514
Ну отправить письмо можно и из синхронного кода тысячью способов. Например тупо вызвать процесс которые письма шлет типа sendmail какой-нить.
#468 #625517
>>625516
Никто не говорил, что нельзя.
#469 #625520
>>625504
Вышеупомянутое письмо, какие-то периодические действия, асинхронные задачи, запускаемые пользователем.
#470 #625539
Поясните тупому ньюфагу, как написать hello world на питон через comodo.молю
#471 #625543
>>625539

>There is no debugging feature in Komodo Edit but you can just run the current file by creating a Run Command:



>1. go to Toolbox -> Add -> New Command...


>2. in the top field enter the name 'Run Python file'


>3. in the 'Command' field enter this text: %(python) %F


>3a. optional click on the 'Key Binding' tab and assign a key command to this command


>4. click Ok.



>You should now have a new Run Command in your toolbox called 'Run Python file'; when you double-click on it the command should run the current Python script open in the editor and display the output in the Command Output pane.



Или пиши в .py файл и запускай из консоли руками: python file.py
#472 #625544
>>625539
import __hello__
#473 #625545
>>625544
А в третьем не работает. Нахуй так жить?
#474 #625546
>>625545
А нет, работает. Я просто обосрался опечатался.
#475 #625548
>>625543
Спасибо, анон. Я уж испугался, что тут реакция на вопросы нью такая же, как в /б.
#476 #625638
>>625457
Читаю в общем Think Python и мне там объясняют как значения переменным присваивать, чего это такое-то?
#477 #625735
>>625505
Что это за ребусы? Я же новичок, ничего не понимаю в твоем коде. Как мне сделать, чтоб работало правильно?
#478 #625763
какую версию скачать? Просто у меня версия 3.5.1 и обычный print надо писать с (')
#479 #625837
>>625763
В чем проблема с принтом и его скобками?
Теперь это функция, которая работает, как и другие функции и методы, а не МАГИЯ.
Со скобками можно писать и в 2.7.
И так и надо учиться писать, потому что обратная совместимость и вообще рано или поздно придется.
#480 #625843
Сперва надо поставить скобочку перед print и после затем писать код. Если написать 'print' "Hello,world" то выдает
'printHello,world!
#481 #625845
>>625843
Зачем ты заключил принт в кавычки? ты сделал его строкой.
#482 #625848
>>625843
перед принтом только exec() нехватает
#483 #625853
>>625845
там написано что надо так писать.
#484 #625854
>>625853
для питон3.х:
принт("хелло")
для питон2.х:
принто "хелло" или принт "хелло"
#485 #625861
>>625854
а вот как, не подскажешь с чего начать изучать?
#486 #625865
#487 #625866
>>625861
Лутц или Доусон
#488 #625867
>>625866
Спасибо огромное!
#489 #625870
>>625861
Изучай третий питон. Второй протухшее говно и привьет только плохие привычки.
394 Кб, 1280x1024
#490 #625963
Нихуя не понял, где логика?
Проблема касается PyQt4 и центрирования окна по центру.

Есть говнокод
http://pastebin.com/cUU8856V

Левая и верхняя границы center 1 проходят точно по центрам экрана (я выделил их черным), если просто делить ширину и высоту экрана на два. С этим проблем нет.

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

center выходит совсем неравномерным относительно центра по вертикали. Сверху до края окна 13см. Против 12 от нижнего края окна до нижнего края монитора.

Сначала были мысли, что экран продолжается вниз и вправо, и потому можно увести за нижнюю и правую его границу курсор. Но границы center1-то располагаются точно по центру видимой области! 15 см сверху и снизу до границ окна. И формула почти та же. У center должно быть по 75 пикселей к северу и югу от этой условной линии середины, но ведь нихуя.

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

Может мне кто-то объяснить, почему неровно?
#491 #625965
>>625963

>я выделил их черным


В этом вся проблема.
Следующий!
#492 #625986
>>625963
Таки дошло.
self.resize(250, 150) - это именно размер без учета рамки.
Если убрать рамку через self.setWindowFlags(Qt.FramelessWindowHint) - все сойдется идеально.
Но вот расположение окна задается с учетом рамки. В итоге нижняя граница оказывается ниже центра на размер шапки, что порождает несимметричность относительно центра.
#493 #625990
>>625986
Отсюда следующий вопрос.
А есть ли возможность узнать размеры рамки? Допустим, я захочу застелить весь экран окнами, границы рамок которых стыкуются.
#494 #625992
>>625990
Или развернуть окно на весь экран. Если тупо задать размер монитора - рамки снова все распидорасят и окно уйдет за границы экрана.
#495 #625996
>>625990
Зачем эти костыли? У QRect есть и .center(), и .moveCenter()
import sys

from PyQt5 import QtGui, QtCore, QtWidgets, uic

app = QtWidgets.QApplication(sys.argv)
win = QtWidgets.QWidget()
center = QtWidgets.QApplication.desktop().screen().rect().center()
win.rect().moveCenter(center)
win.show()

sys.exit(app.exec_())
#496 #625997
>>625996
Допустим.
Но как

>застелить весь экран окнами, границы рамок которых стыкуются


например?
#497 #626001
>>625996
Ну или заспавнить рядом два окна, окна которых не будут перекрываться в области рамок.
#498 #626005
>>626001
Можно методом тыка подобрать. От разрешения и темы размеры рамки не меняются, да?
А вот в зависимости от ОС?
#499 #626015
>>625996
>>626005
И от темы и от ОС всё меняется и в документации qt чётко написано, что все эти размеры без рамок.
#500 #626021
Анон, какой GUI framework лучше выбрать?
Кто-нибудь юзал Kivy?
#501 #626030
>>624273

>5-строчка хуита с какими-то мудрёными лист компрехеншнами с условиями


Я бы сказал, что нет.
#502 #626070
>>625996
Ну да, куда короче и приятнее выходит. Центрируется с учетой ебаной рамки.
В PyQt4 покороче выходит, причем.
center = QtGui.QDesktopWidget().screenGeometry().center()
#503 #626248
Парни, что такое тестирование это? Вот я кодю под себя скрипты всякие околоадминские, проверки значений даже вводных обычно забиваю писать, ибо один пользоваться буду, но все что читаю все помещано на этом тестировании просто, всюду упоминают.
Что это за фигня такая? Что кроме вводных значений можно тестировать? Что вы тестируете?
#504 #626253
>>626248
Тестирование удобно для относительно больших проектов. Например, библиотек, ты знаешь как всё должно происходить и просто пишешь тесты вход-выход/оценка каких-то метрик и так далее. Это позволяет сильно рефакторить код не боясь запутаться что и где сломалось. Потому что тесты позволяют локализовать точку отказа.
#505 #626256
>>626253
Ага, т.е. смысл примерно или в рефакторинге, или в совместной работой над одними частями кода. А все эти тревис сиэл, автоматические системы тестирования зачем, какие есть и как их подключают?

Меня терзает смутное сомнение что ни в С++, ни в php таких культов из тестирований и не делали и как-то всё проще было: на тебе дебаггер и ебись. Это кажется или какая-то принципиальная разница влекущая за собой такую потребность в тестировании есть?
#506 #626275
>>626256
В PHP хуево с тестированием потому что там культура такая. Срущая на стол. В си и плюсах как раз без тестирования никак, т.к. способов наступить себе на яйца гораздо больше чем в динамикодрыснях.
#507 #626282
>>626256
Дебаг это и есть теже самые тесты, только проделанные ручками. Ну, представь, ты что-то изменил в своей библиотеке. И как убедиться, что она не сломалась. Проверять руками то место, что исправил? Так это и есть тесты.
Автоматические системы позволяют во-первых, видеть всем, что всё ок. Не просто у тебя на ноуте тесты прошли разок. Во-вторых, тестировать в разном окружении (разные версии питона и/или библиотек). В-третьих, автоматически тестировать чужие пулл реквесты.
#508 #626285
>>626256
Культа тестирования, как такого нет. Я тоже некоторых одержимых не понимаю. Где-то это нужно, а где-то нет.
#509 #626360
Объясните есть питон, а есть джанго, как понять, что за каркас?
#510 #626370
>>625416
Ебашил эти задачки 2 месяца, сейчас пытаюсь въехать в джангу и понимаю, что с джангой надо было начинать раньше
#511 #626382
>>626248
Мне вот тестирование очень помогает тупо правильно ставить задачи самому себе. Хотя я и нубас в программировании.
#512 #626388
>>626382
Как ты тестируешь, расскажи. Может и мне полезно будет.
#513 #626390
>>626388
Да я пока учусь только, лол.
А вобще - http://www.obeythetestinggoat.com/http://www.obeythetestinggoat.com/
Там понимание как это делать в питоне прибивается.
#514 #626393
>>626390
Кстати книжку уже не первый раз вижу, её иногда рекомендуют при чём именно в контексте django
Ознакомлюсь, спасибо.
#515 #626396
>>626248
Для скриптов тесты не нужны. Для больших проектов:
1. Упрощение совместной работы.
2. Рефакторинг
3. Возможность разработки некоторого изолированного компонента системы. Представь - ты разрабатываешь какую-то большую систему, в которой много-много взаимодействующих компонент, которые по отдельности в принципе не работают, то есть нельзя вот отдельный компонент запустить, только в составе комплекса. Вот написал ты очередной компонент (класс), как проверить, что ты его правильно написал? Ну тесты написать, убедиться ими, что интерфейс корректно реализован правда, при интеграции все равно какое-нибудь гавно вылезете, которое ты в тестах не учел, но там уже другие разновидности тестирования подключаются
4. Тестами защищаются от регрессии. Т.е. при возникновении бага, пишется тест, который этот баг воспроизводится, затем баг исправляют, с помощью теста убеждаются, что все норм. В дальнейшем, тест гоняются наравне с остальными, чтобы убедиться, что баг опять не вылез.
#516 #626399
>>626396

> Для скриптов тесты не нужны.


Для нубасов типа меня они нужны даже что-бы "Хеллоу Ворлд" писать. Помогает мозги правильно структурировать.
#517 #626401
>>626399
и как ты эту хуйню собираешься тестировать?
принт под каждым действием, каждой переменной?
или чего?

я за свою сраную жизнь нормально по программингу единственную книжку прочитал - SICP. Не то что бы этого было достаточно, но блядь не представляю что вы тестируете так интенсивно
#518 #626405
>>626401
Ага. Но у меня мозги так стоят. Мне почему руби оказались приятными и скрипты на них я пишу щас для своих целей достаточно быстро, потому что в книге по рельсам окунали в это самое ТДД и научили ставить задачи и мыслить корректно.

> я за свою сраную жизнь нормально по программингу единственную книжку прочитал


У меня знакомый тоже в свое время. Щас читает вторую по перлу сидя в своем букинге. Все люди разные. И мозговая деятельность у них разная. Кому-то нужно это все только на больших проектах, а кому-то желательно сразу.
#519 #626423
>>626401
Ну взять, например, небольшую программку, логика которой разделена на 3 модуля.
Которые состоят из автономных функций, которые принимают некие объекты, проверяют их и используют в вычислениях, и возвращают результат, который передается как аргумент в другие функции.
Тесты могут проверять только аргументы и возвращаемый результат, например. Что же там будет в теле функций - похуй, например, можно будет переделать.
Тут же без проверки каждой такой функции после написания все распидорасит к хуям при первых же запусках main.
Проверять прямо в main неудобно, особенно, если код из другого модуля запускается не сразу, а через час, например.
#520 #626437
>>626401
Можно добавлять декораторы к потенциально бажным функциям. Которые будут запускаться только при определенном событии. Глобальная переменная test = True, например.
А там можно отслеживать скорость выполнения, например, число вызовов, взаимодействие возвращаемого с другой функцией и прочую оберточную логику. Добавлять или изменять атрибуты функции или класса на тестовые значения, независимые от других условий, например. Чтобы не пидорасить оригинальный код.

Нет ебли с комментированием и марательства оригинального кода, при определенном и пердольном подходе. Чем больше программа - тем полезнее.
#521 #626474
Чего-то я в ахуе слегка от степени абстракции джанги.
Ну т.е. оно логично всё, без пизды, просто от питона далеко пиздец и хуй проссыш вообще за что хвататься. Делаю туториалы один за другим пытаясь нащупать суть, но как-то неверноятно тупо идёт.

Может на русском по джанго почитать есть чего? 2 scoops of django уже читаю, но башни моей не очень надолго хватает понимать иноземный язык, особенно в совокупности с непониманием ещё и описываемого предмета
#522 #626478
>>626474
Да нет там ничего сложного. Ну, может, кроме необходимости постоянно оверрайдить save-методы или туда-сюда сигналы слать, чтобы это говно сохраняло объекты моделей в нужном порядке, не проебывая связки PK-FK.
#523 #626481
>>626474
Ты что-то о SQL, HTML/CSS знаешь? О классах и атрибутах? О HTTP? Если туго с этим - нужно сначала раскурить это. Без этого там ничего не поймешь, только копировать примерчики по шаблону и сможешь.
Мне кажется, там вся суть в святой троице urls\views\models. Остальное свистелки и перделки для них.

>Может на русском по джанго почитать есть чего


Оф документация всегда лучше. Есть переведенные.
http://djbook.ru/rel1.8/
Djangobook есть еще, переведенная, но для старой версии.
#524 #626482
>>626481

>models


Особенно это тяжко может даться.
#525 #626493
>>626481
В том и дело, что туда-сюда знаю, хоть конечно и с переменной глубиной.
Про святую мвц-троицу понятно, хотя бы на уровне идеи, просто обилие хуилиардов встроенных методов что бы подтереть жопу не только сверху-вниз для мальчиков, снизу-вверх для девочек, но и слева-направо->снизу-вверх для смелых любителей необычного.
Что бы админка выводила с фильтром какую-нибудь хуйню - просто допиши в классе в admin.py list_filter = ..., а что бы сверху столбца таблички с каким-то методом написать отсебячину - просто напиздячь в models в классе (ну или модели, если будет угодно) волшебное имя_класса/модели.short_description
Логично аж пиздец, но уже постфактум. И так всё в джанго. Как в питоне стандартная библиотека документирована тремя примерами, так и тут традицию эту чтут и бдят.
Вот это меня и смущает.

Ну да ладно, то всё лирика.
Допустим мне надо в джанго встроить кусок своего кода на питоне, не суть важно мелкого парсера xml там или ещё чего-нибудь, хер знает, генератора счастливых билетиков. Такой штуки, короче, что в асинхронный код через всякие celery лепить его не только ненужно, но и вредно.
Как этот велосипед лепить? В models прописываю данные какие будут, в urls - ссылку, которая будет дёргать нужный view из views, который будет узнавать у movels хули ему делать и просить выгрести из базы данных. Где велик-то тут впихивать? По-идее в models, оно же данные, но по-логике ближе ко views, ибо их разгребать нужно.

Или другой вопрос: вот есть всякие https://github.com/rosarior/awesome-django с модулями и блек-джеком, вот хочу я взять например блог и голосовалку. И что бы совсем по-простому не будем их вместе комбинировать, а просто отображать по хронологии вперемешку будем на url(r'^$' или как тут index прописать - каком-нибудь. И что дальше делать, хоть на уровне идеи?
Записываем в setting что у нас два приложения лишних, делаем миграции под них, туда-сюда скорее всего views в них уже прописаны, осталось собрать в кучу во views самого проекта. И как такое делать?
Спрашиваю потому как вроде это самый быстрый способ ваять хоть какие-то проекты, в фреймворке для перфекционистов, любящих дедлайн, а никто вообще об этом не пишет. Иногда рисуют фигню из python3 manage.py shell мол для Blog.objects.get('huy') можете использовать просто Blog('huy') и практического применения этому я тоже пока ввиду своего куцего опыта не вижу
#525 #626493
>>626481
В том и дело, что туда-сюда знаю, хоть конечно и с переменной глубиной.
Про святую мвц-троицу понятно, хотя бы на уровне идеи, просто обилие хуилиардов встроенных методов что бы подтереть жопу не только сверху-вниз для мальчиков, снизу-вверх для девочек, но и слева-направо->снизу-вверх для смелых любителей необычного.
Что бы админка выводила с фильтром какую-нибудь хуйню - просто допиши в классе в admin.py list_filter = ..., а что бы сверху столбца таблички с каким-то методом написать отсебячину - просто напиздячь в models в классе (ну или модели, если будет угодно) волшебное имя_класса/модели.short_description
Логично аж пиздец, но уже постфактум. И так всё в джанго. Как в питоне стандартная библиотека документирована тремя примерами, так и тут традицию эту чтут и бдят.
Вот это меня и смущает.

Ну да ладно, то всё лирика.
Допустим мне надо в джанго встроить кусок своего кода на питоне, не суть важно мелкого парсера xml там или ещё чего-нибудь, хер знает, генератора счастливых билетиков. Такой штуки, короче, что в асинхронный код через всякие celery лепить его не только ненужно, но и вредно.
Как этот велосипед лепить? В models прописываю данные какие будут, в urls - ссылку, которая будет дёргать нужный view из views, который будет узнавать у movels хули ему делать и просить выгрести из базы данных. Где велик-то тут впихивать? По-идее в models, оно же данные, но по-логике ближе ко views, ибо их разгребать нужно.

Или другой вопрос: вот есть всякие https://github.com/rosarior/awesome-django с модулями и блек-джеком, вот хочу я взять например блог и голосовалку. И что бы совсем по-простому не будем их вместе комбинировать, а просто отображать по хронологии вперемешку будем на url(r'^$' или как тут index прописать - каком-нибудь. И что дальше делать, хоть на уровне идеи?
Записываем в setting что у нас два приложения лишних, делаем миграции под них, туда-сюда скорее всего views в них уже прописаны, осталось собрать в кучу во views самого проекта. И как такое делать?
Спрашиваю потому как вроде это самый быстрый способ ваять хоть какие-то проекты, в фреймворке для перфекционистов, любящих дедлайн, а никто вообще об этом не пишет. Иногда рисуют фигню из python3 manage.py shell мол для Blog.objects.get('huy') можете использовать просто Blog('huy') и практического применения этому я тоже пока ввиду своего куцего опыта не вижу
#526 #626499
>>626493
Я сам только начал. Но вроде

>из views, который будет узнавать у movels хули ему делать и просить выгрести из базы данных.


Наоборот, views задает всю логику обработки. models лишь упрощает запросы к БД.
Я так понимаю, функция из views дергает нечто из models, обрабатывает, и результат подставляет в html шаблон, в котором специально обозначенные места подставляются значения из функции из views.
#527 #626507
>>626493
Вот, например, http://django-debug-toolbar.readthedocs.org/en/1.4/installation.html
Приложение прописываются в setting, затем указывается в url
url(r'^__debug__/', include(debug_toolbar.urls))

Я так понимаю, include(debug_toolbar.urls) добавляет свои троицы мвц. Уже готовые. Параметры которых можно докрутить, (через наследование или переопределение во views например, (прост теория)).
Чтобы совместить на одной странице два приложения, нужно отдельный шаблон html, в который функция из views, которая наследовала/переопределила/хзчтоеще viewsы других приложений, будет пихать свои данные.
Чисто теория. Возможно, гон нубаса.
#528 #626510
>>626507
Чутка погуглил, и там советуют копипастить всю требуху приложения и менять под себя. Неужели нет более удобного способа?
#529 #626513
>>626510
Особенно, если в приложении 100500 функций.
#530 #626537
Анон, помоги дебилу прояснить фундамент джанго. Поправь меня, где я ошибаюсь.

Модели - поля заносятся в БД, потом с этими полями можно работать как через админку, там и через ОРМ.
Админка - тут мы определяем, к каким полям имеет доступ Админ.
Вьюшки - функции, через которые модели отправляются на фронтэнд. В них определяется логика того, как будут обработаны поля моделей.
Юрл - адреса на вьюшки/админку и т.п.

Все правильно?
#531 #626547
>>620299 (OP)
Как удалить все символы, кроме a-z,A-Z из строки?Кроме очевидного str.replace('1','').replace('2','')
Это слишком сложно, можно ли как-то удалить всё кроме букв другим способом?
#532 #626549
>>626547
import re
re.sub("[^A-Za-z]", "", "your_string")
#533 #626574
>>626537
Всё правильно.

Часть логики советуют переносить в модели. Чтобы можно было import и подёргать методы хоть прямо из пайтоншелла. Чаще всего это какие-нибудь действия типа "купить" в магазинах.

Вьюшки в джанге это контроллеры из MVC. Часто конкретные трансформации при отображении полей в хтмл происходят уже в темплейтах, а код вьюхи только вкладывает модель или коллекцию моделей в этот темплейт.
#534 #626579
Через PyQt можно перемещать чужие окна?
хочу наваять подобия этого шина http://jgpaiva.dcmembers.com/gridmove.html только кросплатформенное и с некоторыми своими идеями.
#535 #626582
>>626579
Оно хоть с хоткеев гоняется?
А вообще хедеры окон ловить и через винапи им пропихивать свои значения, не совсем помню как это делается, лет десять назад на плюсах в последний раз чем-то подобным занимался.
#537 #626588
>>626582
Может и хоткеями и мышкой, зажимаешь среднюю кнопку на коне и появляется сетка в которую можно запихнуть окно. Для меня эта штуха оказалась намного юзубельней чем динамический тайлинг.

>через винапи


Это понятно, но я хочу кроссплатформенности.
В окнах - винапи, никс - xlib, говно получается. Надеялся на PyQt, тем более его либы есть в этой мокропиське http://mizage.com/divvy/ которая мак/вин.
#538 #626606
тут кто-нибудь хоть копейку заработал на питоне?
#539 #626608
>>626606
Бравый ПХПшник опять выходит на связь?
#540 #626612
>>626606
Я хотел сделать сайт на питоне но выяснилоь что хостинги его не поддерживают.
99% хостеров это php+mysql. 1% - asp.net и только 0.0001% Это маргинальные руби и пайтон.
#541 #626615
>>626608
Питон рассматривается чисто как инструмент для работы в вебе?
#542 #626616
>>626615
Да нет, просто он тут уже вторую неделю вбрасывает что веб писать надо только на похапе потому что шаред хостеры поддерживают только похапе.
#543 #626627
#544 #626647
>>626608>>626608

так заработали или нет?
#545 #626674
>>626647
Нет конечно, ведь шаред хостеры поддерживают только пхп.
#546 #626678
>>626674
неужели все так грустно?
#547 #626697
>>626678
Да съеби ты уже, надоел. Ни разу не смешно и никакой ньюфаг на эту хуйню про шареды не купится. Они теперь даже не знают что такое шареды.
66 Кб, 540x726
#549 #626791
#550 #626899
Аноны, подскажите дауну, как сделать, чтобы при нажатии кнопки на сайте выполнялся скрипт (постинг на стенку вк пикчи, например)?
#551 #626974
>>626899
Пишешь в окошко для текста, а потом нажимаешь левую кнопку мыши на коробочку с текстом "отправить". Прям как тут, только там.
#552 #627023
>>626974
сложно. меня интересует, что нужно писать в скрипте, что обрабатывает html-форму, чтобы при нажатии кнопки, которая является html-кодом выполнялся скрипт и постил на стенку пикчу с хуем. я нагуглил только код, когда есть текстовое поле, которое обрабатывается файлом(а текст из поля просто отображается на следущей страницу), но ввиду уже указанной болезни я не понимаю как сделать, чтобы было норм
#553 #627967
>>620708
Это че, гафеха-смайл чтоли? Эти дети вк свои смайлы в имена файлов уже пихают? Лол блядь
Тред утонул или удален.
Это копия, сохраненная 3 февраля 2016 года.

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

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