Этого треда уже нет.
Это копия, сохраненная 10 ноября 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
#2 #855104
Сап программач. Планирую написать телеграм-бота на питоне. Какие подводные камни?
#3 #855106
>>855104

>Какие подводные камни?



Работы до сих пор не начал ты:

>Планирую

47 Кб, 891x418
#4 #855107
Начал проходить туториал на джангопрожект. Хуйня какая-то. Вьюхи, урлы, хтмл. Слишком сложно для дауна написали. На дэжэбук какой то бот переводил, даже упоминания не стоит. Что посоветуешь, анон: читать дальше и разбираться или сначала хтмл и всю хуйню учить?
>>855140>>855182
#5 #855140
>>855107
Язык разметки особо бекендеру не нужен, азы может только.
Начни с изучения работы сети и плавно двигай к основам фреймворков. Ключевики: http, request, response, dispatch, MVC. Хотя джанго это фуллстек фреймворк, так что думаю ты планируешь полностью создавать сайты. Тогда параллельно можно учить фронтенд.
>>855179>>856408
#6 #855172
Анон, есть система комментов. Нужно, чтобы под каждым комментарием была форма ответа на этот комментарий, и которая бы, в случае ошибки валидации, отображала бы валидейшн эеррор только на себя.

Щас у меня одна форма под каждый комментарий, и когда хуяришь непоходящий валидацию коммент, то валидейшн эеррор вылетает на всех формах. Как фиксить?
#7 #855173
>>855172
*Забыл указать, что Джанго
>>855175
#8 #855175
>>855173
покажи код
#9 #855177
модель http://pastebin.com/tj1LEyXy
вью http://pastebin.com/8SXjbpcL
форма http://pastebin.com/yRvnh1bm
фронт (которого еще нет) http://pastebin.com/1YdxTcAE
>>855178
#10 #855178
>>855177
>>855172
Это сюда
#11 #855179
>>855140
Спасибо, анон. Именно то, что я хотел услышать.
#12 #855182
>>855107
Скачай "Django by Example". Мне помогла для вката.
>>855363
#13 #855191
>>855172
Выводи для каждой формы Id и по нему уже вываливай ошибки
#14 #855203
дайте нормальную библиотеку для 3д-графиков
>>855205
#15 #855205
>>855203
requests.get(google.{}.format(locale)) ---> 3d plot python
#16 #855210
Имеется список, например 1000x1000, как его разбить на список списков по 4х4?
>>855211>>855736
#17 #855211
>>855210
Список 1000х1000 это как?
>>855214
#18 #855212
>>855213
#19 #855213
>>855212
Уходи в тот тред, откуда принес. Здесь люди общаются.
>>855215
#20 #855214
>>855211
Список из 1000 списков по 1000 элементов в каждом
>>855216
5 Кб, 300x168
#21 #855215
>>855213
Ебало своё закрыл.
>>855217
#22 #855216
>>855214
Пример есть у тебя?
>>855221
#23 #855217
>>855215
Отлично. И больше не открывай.
>>855218
28 Кб, 210x200
#24 #855218
>>855217
Ты здесь хочешь остаться?!
#25 #855221
>>855216

[[255, 0, 255, 134, 72, 24, 25, 26],
[255, 0, 255, 134, 72, 24, 25, 26],
[255, 0, 255, 134, 72, 24, 25, 26],
[255, 0, 255, 134, 72, 24, 25, 26],
[255, 0, 255, 134, 72, 24, 25, 26],
[255, 0, 255, 134, 72, 24, 25, 26],
[255, 0, 255, 134, 72, 24, 25, 26],
[255, 0, 255, 134, 72, 24, 25, 26]]
Из такого, нужно получить что-то такое:
[[[255, 0, 255, 134], [255, 0, 255, 134], [255, 0, 255, 134], [255, 0, 255, 134]],
[[72, 24, 25, 26], [72, 24, 25, 26], [72, 24, 25, 26], [72, 24, 25, 26]]]

Что-то вроде этого.
>>855736
sage #26 #855228
пиздец тут одни дауны блять сидят
рили питон - язык даунов
ссу вам всем на ёбла
#27 #855236
объясните ультра ньюфагу в каких случаях и зачем применять elif и в чем принципиальное отличие от if.
>>855258>>856410
#28 #855245
Как задать классу альтернативный конструктор? В одном случае у меня экземпляр класса должен создаваться с 0, а в другом по данным загруженным из файла.
#29 #855253
>>855245
__init__
>>855280
#30 #855258
>>855236
если хуец > 20 см:
трахать маньку
иначе если хуец > 15 см:
трахать маринку
иначе:
трахать кулак

Это дополнительное ветвление условий в случае невыполнения предыдущих if.
>>855269
#31 #855269
>>855258
Cпасибо, однако можно же добавлять if и нихуя не изменится, правильно?

if хуец > 20 см:
трахать маньку
if хуец > 15 см:
трахать маринку
else:
трахать кулак
>>855273
#32 #855273
>>855269
Неправильно.
>>855274>>855309
#33 #855274
>>855273
Потому что после того как он трахнул маньку на маринку он не будет переключаться? А в случае елиф он бы переключился?
>>855279
#34 #855279
>>855274
Если > 20, то:
C elif трахнет только первую.
С if трахнет обеих.
>>855281
#35 #855280
>>855253

>альтернативный

#36 #855281
>>855279
Я понял, спасибо!
#37 #855283
>>855298
#38 #855288
>>855245
Обычно один из двух вариантов используется:
1. проверять в __init__'е является ли filename None или не является
2. staticmethod from_file(...), который создает новый объект класса и заполняет его данными считанными из файла.
>>855298
#39 #855298
>>855283
>>855288
Спасибо.
#40 #855300
Есть здесь знатоки PIL?
>>855302>>855304
#41 #855302
>>855300
Неверно формулируешь вопрос.
>>855379
#42 #855304
>>855300
У тебя 3 ошибки в слове Pillow
>>855379
#43 #855309
>>855273
да, конечно там elif, обосрался
48 Кб, 720x720
#44 #855318
Анон, написал скрипт, он берет аргументы из командной строки - приделал к ему .bat для быстрого запуска. Проблема: при запуске через этот самый .bat, скрипт создает/пользуется файлами из каталога, в котором расположен .bat, но не сам скрипт. Непонимать, почему так происходит, ведь относительный путь прописан в скрипте и вычисляется относительно скрипта? Как это можно пофиксить?
>>855321
#45 #855321
>>855318
Ты использовал функции из os или просто указывал пути через слеши? Винда не подходит для питона. В первой строке скрипта обычно указывают путь к интерпретатору и .py можно запускать без команды python, но винда, похоже, не умеет.
>>855325
#46 #855325
>>855321
у меня из файлов только
clb = shelve.open('clipboard') #т.е. файл находится в одной папке со скриптом
аргументы беру через sys.argv[1]
в .bat прописано @py.exe C:\PyScripts\Clipbord\clipb.py %*
сам он лежит в PyScripts и при запуске создает файлы в Pyscripts, а не в Clipboard
>>855327>>855329
#47 #855327
>>855325
Импортируй os и пропиши пути по-человечески, проверь что выдает getcwd().
>>855343
#48 #855329
>>855325
chdir в батнике
__file__ (путь до питонофайла) в питоне
#49 #855343
>>855327
Если прописываю абсолютный путь к файлу - все работает
getcwd() выдает вот что:
запускаю через "Выполнить" в меню пуск - C:\PyScripts
запускаю через Ctrl+R - C:\Users\Username

> пути по-человечески


Это как?

> chdir в батнике


А можно как-то из самого скрипта определить, где он лежит, а затем через тот же chdir поменять рабочую папку?
>>855346
#50 #855346
>>855343

> А можно как-то из самого скрипта определить, где он лежит


__file__

> , а затем через тот же chdir поменять рабочую папку?


Ты можешь в питоне сделать os.chdir.
>>855347>>855356
#51 #855347
>>855346
chdir я предлагал как альтернативу, сам бы я сделал нашел нужную директорию через os.path.dirname(__file__), потом бы просто os.path.join(dir, filename) в нужных местах.
>>855349>>855356
#52 #855349
>>855347

> сам бы я сделал так:


фикс
#53 #855356
>>855346
>>855347
спасибо, никогда о __file__ не слышал, пойду разбираться
#54 #855363
>>855182
Спасибо анон. А сейчас ты чем занимаешься?
>>855377
#55 #855377
>>855363
Гей-шлюха
>>855405
#56 #855379
>>855302
>>855304
Обосрался.
Что использовать, чтобы разбить матрицу на блоки пикселей, для последующей работы с ними?
>>855380
#57 #855380
>>855379
numpy?
>>855384
#58 #855384
>>855380
Спасибо, посмотрю.
#59 #855405
>>855377
Видел как то в 'мы вам перезвоним' треде гайд, как стать гей шлюхой. У тебя случайно нет копии?

другой анон
>>858228
#60 #855434
Анон, тотали ньюфаг вернулся в тред. Объясните долбоебу на пальцах в чем прикол инструкции return в функциях. Уже 3 объяснения прочел и все равно не врубаюсь нихуя. Что значит вернуть значение?
#61 #855435
>>855434
Это уже ни в какие ворота. Читай источники, это можно и нужно понять самому.
>>855442
#62 #855439
>>855434

>Анон, тотали ньюфаг вернулся в тред. Объясните долбоебу на пальцах в чем прикол инструкции return в функциях. Уже 3 объяснения прочел и все равно не врубаюсь нихуя. Что значит вернуть значение?


Функция занимает значение, потом возвращает его. Что сложного? Главное переопределить __dir__, чтобы определить режим работы функции. Алсо, читни про декораторы.
>>855442
#63 #855442
>>855435
В том то и дело, Что читаю и не понимаю.
>>855439
Что значит возвращает? Как понять? Что возвращает?
>>855444>>855445
#64 #855444
>>855442
Я человек-функция. Ты научил меня резать яблоки пополам.
Ты даешь мне яблоко-аргумент, я его режу.
Если тебе нужно получить половинки обратно - то ты задаешь ретурн, и я возвращаю половинки тебе. Если не нужен, то я функция без ретурна - режу яблоки и оставляю их.
>>855450
#65 #855445
>>855442
Возвращает значение которое занимает. Понимаешь?
Вот ты занял 50 рублей, потратил их на клей, спиздил у мамы 50 в вернул. Твои действия - функция, которая переопределяется через __dir__ и оборачивается в декоратор (от 'декор' - дизайн). 50 рублей - возвращаемое значение.
>>855450
#66 #855450
>>855444
>>855445
А для чего возвращать? Вот например я читаю сейчас статью.

def add(x, y):
return x + y

>Инструкция return говорит, что нужно вернуть значение. В нашем случае функция возвращает сумму x и y.


>функция возвращает сумму



>>> add(1, 10)


11

И что происходит с 11 ? Куда ее возвращают? Что с ней происходит?
Мне наверное стоит сделать перерыв ибо мозг перестал работать и вероятнее всего это действительно элементарные вещи.
#67 #855453
>>855450
Тебе стоит просто прекратить думать о том чтобы заниматься программированием вообще. Я серьезно.
Я не понимаю откуда вас столько, и на что вы надеетесь.
>>855457>>855458
#68 #855455
>>855450
Усложняем художественную абстракцию.

Ты работаешь с мясорубкой. В мясорубку погружается мясо (аргумент). Мясорубка это функция. Получается фарш.
Если целью было проосто преобразовать мясо в фарш, то имеем функцию:
def slice(meat)
meat += salt + pepper + govyazhiy_anus
meat.cut()
Если же ты хочешь подать фарш в печь, ты подставляешь к мясорубке тарелку (переменную) и фарш ВОЗВРАЩАЕТСЯ туда.
тогда добавляется
....
result = farsh
return result

Далее ты используешь тарелку с фаршем в последующем:
plate = slice(meat)
serve = plate + spoon + knife
>>855458
#69 #855456
>>855450
Чувак, если ты не можешь понять такие простые вещи, то программирование - это не твое. Дальше все будет сложнее в 100 раз.
>>855457>>855458
#70 #855457
>>855453
>>855456
Вы все не правы и врете. Продолжай, я верю в тебя.
#71 #855458
>>855455
Вот теперь я понял, спасибо!!
>>855453
>>855456
А вы пошли нахуй.
16 Кб, 508x559
17 Кб, 668x718
#72 #855525
Как это в Джанго побеждать? Как только страница меняет размер так и косоёбит.
#73 #855526
>>855525
Что на фронтеде? Если респонсив фреймворк то его траблы. Если нет - то браузера. Джанга ни при чем.
>>855536
20 Кб, 584x197
#74 #855536
>>855526
Только Джанга тут.
#75 #855540
>>855536
Я вижу у тебя там синюю кнопочку. Полюбому какой-то css фрэймворк подключен. Сознавайся!
>>855543>>855613
#76 #855543
>>855540
Ты же видишь что она обычный тип Submit. Вообще есть один элемент Jquery Но он хрен знает где.
>>855565
#77 #855558
>>855536
Ебать ты дебил.
#78 #855565
>>855543
HTML вижу, да. Но есть еще CSS файлы, которые задают стили оформления элементов и всякие другие штуки типа позиционирования. Скорее всего, у тебя что-то такое подключено. Покажи весь шаблон и, если он наследуется от какого-то другого шаблона, то и его покажи.
>>855617
#79 #855613
>>855540
на foundation похоже
#80 #855617
>>855565
Да, есть css. Пороусь там. Спасибо.
#81 #855677
Вкатился в питон, имел опыт 100 лет назад на перле.
Какой сейчас модный редактор, в котором не стыдно будет сидя в стартапе писать?
>>855685
#82 #855685
>>855677
Pycharm
>>856028
47 Кб, 650x730
#83 #855692
Посоны, пару вопросов есть:
1) Уместно ли в python проверять типы данных? Сейчас как-то так. Может быть есть что-то более python-way?
Пример: http://pastebin.com/mpp8X7Mg

2) Можно ли как-то красиво завернуть большое количество try except в один? Единственное, нужно знать, на каком моменте падает код, не ведя избыточное логгирование.
Сейчас так: http://pastebin.com/WzU0pp1J

3) Я понимаю, что вряд ли, но может есть какой-то способ после fork'а приложения в multiprocessing очищать его память? Я понимаю, есть кеши, а еще можно коммуникацию осуществлять через внешнюю очередь, но может есть родное решение?
>>855694
#84 #855694
>>855692
1. isinstance, уместно, но не слишком часто.
2. logging.exception. Если тебе не нужно чтобы не падало, а работало дальше, то делай явные проверки.
>>855822
#85 #855695
Анон, я окончательно влюбился в питончик. С таким удовольствием я не изучал ещё не один язык, а их я в поиске 'себя' перепробовал не мало. Питон не трогал из-за форса, что это хуйня, а не язык. Каюсь какой же я был ведомый долбоеб. Не повторяй моих ошибок анон.
>>855716
19 Кб, 398x363
#86 #855716
>>855695
Ты молодец, мы тебя любим!
#87 #855736
>>855210
>>855221
Я нимножко понил. У тебя есть 2D-картинка 1000х1000, надо разбить её на чанки по 4х4 пикселя.

Вот решение:
http://stackoverflow.com/questions/16856788/slice-2d-array-into-smaller-2d-arrays

Проверка его на твоём примере:
https://gist.github.com/anonymous/490c094936016e14cc849a9695b40977
#88 #855751
В Питоне 2.7.2 не работает assert. Так и должно быть? На nonlocal хотя бы ругается, а ассерт просто игнорит.
58 Кб, 640x577
#89 #855822
>>855694

>1. isinstance, уместно, но не слишком часто.


Но это же, по большому счету тоже самое, разве что синтаксис приятнее. Или в этом вся соль?

>2. logging.exception. Если тебе не нужно чтобы не падало, а работало дальше, то делай явные проверки.


А можно подробнее про явные проверки? Или это как раз то, что я делаю?
Anyway, спасибо тебе за ответ, анон.
>>855826>>856089
#90 #855826
>>855822
isinstance проходится по MRO С3 родительским классам и если находит совпадение, возвращает true.
Полезно, если ты например написал свой словарь, наследуемый от UserDict, но тебе нужно проверить что этом именно словарь, а не твой собственный класс.
Плюс в isinstance можно кидать сколько угодно аргументов, они там просто распакуются и все.
>>855829
117 Кб, 700x525
#91 #855829
>>855826
Забавно, не знал. Спасибо. А то я был даже вынужден поменять либу, у которой и словари и строки отображались как собственный класс, а мне нужно было проверять.
#92 #855837
Алсо так же можно проверить является ли объект итерируемым или потомком еще какого-то базового класса.
Про мро я обосрался - это чисто для полиморфизма.
#93 #855910
Смотри ананас, есть такой сайт на обычной джанге.

На главной - список постов и список тегов. список постов и список тегов выводятся вьюшкой.

Можно зайти и прочитать содержимое поста. Это уже дургая вьюшка, другая страница. Вопрос: как сделать так, чтобы список тегов тоже сохранился? Или мне в каждой ебаной вьюшке и в каждом ебаном темплейте нужно прописывать эти теги, чтобы они выводились? Нет более простого способа?
>>855913>>855930
#94 #855913
>>855910
Сука, ты что теги вручную прописываешь?
>>855915
4 Кб, 289x81
#95 #855914
Говнокод? Когда делаешь импорт модуля вот так
#96 #855915
>>855913
Ну, у меня теги хранятся в БД, и я их вывожу из этой БД. Теги прописываются вручную при создании поста, а потом выводятся кверисетом.
69 Кб, 590x607
#97 #855916
Удавы, дайте пожалуйста совет для написания утилитки сканирующей сети и чекающей хосты на предмет нужных сервисов. Сам вопрос в алгоритмах и параллельности выполнения, в которых я как и в самом питоне ноль. Здесь http://pastebin.com/RBNMRSbB текущее состояние поделия.
Вопрос таков, как правильно передать результат выполнения из функции scanner в checker? Пока плодящиеся потоки сканера плодят потоки проверяющей функции, но это наверное совсем не правильно и нужно управлять состоянием скрипта из main()? У multiprocessing есть такая штука как Queue и ее можно передать в каждый из сканеров, но где в main() расположить цикл читающий возвращаемые через эту очередь значения и каковы будут условия выхода из него, ведь потоки могут работать довольно долго?
В общем, хочется параллельного сканирования и, по мере обнаружения открытых портов, параллельной проверки этих результатов. Буду признателен за наставления и блок-схемы кек.
subprocess остался от системных вызовов zmap, но что-то он много чего упускает, так что в итоговом варианте используется модуль nmap.
Изъебства с 35 по 50 строки, а не использование стандартного Pool, нужны ибо из пула обработчиков нельзя запустить новые процессы и передать этим обработчикам дополнительные аргументы.
>>856096
#98 #855930
>>855910
context processors
вот например как я делал
>>853839
>>853835
>>855957>>856103
#99 #855957
>>855930
Какая офигенная штука. Спасибо, няша, люблю тебя.
>>856103
#100 #856028
>>855685
а что-то более загадочнее? Типа там коды или текст мейта?
>>856042>>859370
#101 #856042
#102 #856085
кто-нибудь джинджу в джанго использует?
#103 #856089
>>855822

>А можно подробнее про явные проверки?


Ну, ты делаешь try/except, а явные это if "yoba" in dictionary:... else:
#104 #856096
>>855916
Без очередей тебе не обойтись. Сделай сканер и проверятель воркерами (если IObound то запускай в отдельных тредах, если CPUbound - в процессах), пусть обмениваются через queue.
Короче, гугли pub/sub worker pattern
>>856109
#105 #856103
>>855930
>>855957
Context processors срабатывают на каждый запрос
В данном случае рекомендую использовать template tags
>>856121
#106 #856109
>>856096

>pub/sub worker pattern


Сенкс, сейчас поищу.
[b]Загрузка файла на сервер[/b] #107 #856117
Аноны, нужна ваша помощь, тк гугл адекватного ответа не дал. Как мне загрузить файл на сервер если я имею абсолютный путь к этому файлу на компе юзера??
>>856120
#108 #856120
>>856117
Как ты все это абстрактно написал. На какой сервер? POST-запрос, FTP, WebDAV. Какой блядь протокол, откуда работает скрипт?
>>856126
#109 #856121
>>856103
Мне и нужно, чтобы они сраабатывали на каждый запрос. Теги должны всегда висеть в поле зрения. + еще присобачу формочку на поиск. И присобачу список популярных постов. И все это должно висеть постоянно в правой колонее. В левой - типа изменяемый контент, а в правой - нет.
#110 #856126
>>856120
Apache2, да POST, без фтп, http, flask приложение
#111 #856133
Двачик, ты знаешь книжечки по машинному обучению в питоне
или без питона? Главное что бы без юзлес информации?
>>856135
#112 #856135
>>856133
Наверное тебе сюда https://2ch.hk/pr/res/817451.html (М)
#113 #856136
def gradientDescent(x0, grad, h):
result = []
for i in range(len(grad)):
x = x0 - grad*h
result.append(x)
x0 = x
return result

Что делаю не так? Записывает хуйню в ответ.
>>856138>>856143
#114 #856138
>>856136
Кинь на pastebin, и да, как это функцию вызывать? Дай пример.
>>856146
#115 #856143
>>856136
Немного не по-питонячьи, но выглядит вроде верно.
У тебя что-то не то в grad наверное.
>>856146
6 Кб, 1829x206
181 Кб, 1788x856
#116 #856146
>>856138
>>856143

http://pastebin.com/sTBvQZBr

Получаю в результате ответ полный nan
grad вроде нормальный, пытался делать с меньшими числами типа 1,2,3,4,5 всё работает.
>>856150
#117 #856150
>>856146
Слегка исправил стиль:
http://pastebin.com/GaQZXWKL

> Получаю в результате ответ полный nan


sigmoid'ы небось где-нибудь используешь?
Как там это называется, vanishing / exploding gradient, вполне обычная проблема.
>>856152
#118 #856152
>>856150
не, я нашел проблему. В grad первый элемент nan и в итоге он ебет мне все результаты. Не подскажешь проверку на nan в списке с заменой его на 0? Чтобы не быдлокод уровня list.pop(i), list.instert(i,0)?
>>856156
#119 #856156
>>856152
Если перейдешь на numpy, то:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.nan_to_num.html

Если нет, то можешь воспользоваться math.isnan и вот этим:
http://stackoverflow.com/questions/1540049/replace-values-in-list-using-python
#121 #856192
>>856187
http://getbootstrap.com/
http://balbesof.net/info/lessons_web_design.html

Помог чем мог, пошел лечить глаза.
>>856196
#122 #856196
>>856192
Да похуй мне на дизайн. Тут постоянно форма сдвигается при изменении размера окна браузера?
>>856197>>856203
#123 #856197
>>856196
Ну я как бы не ебу, она у тебя в двух контейнерах или что? Потому что если у тебя это просто форма по координатам, то ясен хуй что она будет сдвигаться в ебеня.
>>856202
37 Кб, 664x396
#124 #856202
>>856197
В блоке Сайдбар.
>>856210
#125 #856203
>>856187
>>856196

Долбоеб, напиши хотя бы helloworld на питоне и пройди базовые курсы на w3 по html и css, куда ты лезешь блядь? Ты на каждый свой детский конфуз собираешь делать пост на двач? Я просто в ахуе от наплодившихся ленивых имбецилов вроде тебя.
Вам чтобы что-то из себя представлять нужно года 2 потратить на изучения с тех позиций на которых вы сейчас и я не особо верю что у вас получится, потому что ваш интеллектуальный потолок уже виден.
>>856207
#126 #856207
>>856203
helloword на питоне тут совсем не причем как и хтмл.
А вот с css да, не пойму.
#127 #856210
>>856202
А сайдбар, у тебя в контейнере который Vbox/Hbox?
>>856212
#128 #856212
>>856210
Ха-ха.
>>856214
#130 #856232
Бампую свой вопрос, и заодно задаю новый, оба касательно PyCharm:
1)При запуске скрипта, остается активным окно редактора, а не консолька снизу, поэтому если требуется ввести что то с клавы то нужно кликнуть на консольку снизу. Неудобно.
2)Как разукрасить вызов функции? Скажем создал я функцию def sobachiiHer(iayca), теперь я ее вызываю sobachiiher(2), но при вызове текст белого цвета. Тоже самое касательно методов и тд., поэтому код выглядит просто как стена белого цвета, только что аргументы цветные.
>>856244>>856245
#131 #856244
>>856232
Настроить.
>>856246
#132 #856245
>>856232
смени тему на тёмную - половину проблем это точно решит. по консольке вроде хоткей был, что пусть не идеально, но всё равно удобнее.
173 Кб, 1366x768
#133 #856246
>>856244
И где же тут настроить вызов функций?
>>856250>>856253
385 Кб, 1920x1080
#134 #856248
Лол, всего-то один контейнер в другой засунуть. забыл)
#135 #856250
>>856246
И как оно с вивальди?
>>856251
#136 #856251
>>856250
Брат жив, зависимость есть. Нравится дизайн и боковая панель с закладками и заметками, паранойей не страдаю, так что лису послал нахер, что то лагает последнее время
#137 #856252
Питоны, никто не сталкивался с тем, чтобы через джанговскую админку менять периодичность для сельдерея? Сильно велосипедить надо?
#138 #856253
>>856246
Console Font, Console Colors?
#139 #856299
Зачем во всех вакансиях питонистов пишут знание Линукса ? Мне предлагают помимо кододрочения еще и админом работать ?
>>856300>>856340
#140 #856300
>>856299
Нет.
#141 #856340
>>856299

Если у тебя возникает такой вопрос, то тебе не о вакансиях следует думать, один хуй в ближайший год не устроишься, а о своих скиллах.
#142 #856367
А че надо уметь в линуксе? Если я через судо и пип скачиваю всю хуиту, и если там в БД в терминале возякаюсь, то этих скиллов достаточно?
>>856404
#143 #856404
>>856367
виртуальные окружения, минимальные познания работы с файловой системой из коконсольки, grep особняком. Что-то еще есть полезное, вспомню точно.
#144 #856408
>>855140

> Ключевики: http, request, response, dispatch, MVC


А вот и сеошники подъехали, пиздос
35 Кб, 604x343
7 Кб, 267x188
sage #145 #856410
>>855236

> зачем применять elif и в чем принципиальное отличие от if


>>855245

> альтернативный конструктор


>>855434

> в чем прикол инструкции return


> Уже 3 объяснения прочел


>>855536
>>855525
>>856187

> Как только страница меняет размер так и косоёбит.


> Только Джанга тут.

#146 #856415
Неплохая выжимка из треда.
#147 #856420
Пилящий тестовый бэкэнд для андроида на связи.
Я разобрался как обрабатывать запросы и не могу понять как развернуть сраный json в сраный массив объектов. Как мне из этого
{u'paint_degree': 13, u'id': 0}

сделать это

class TestClass(object):
def __init__(self, _id, paint_degree):
self._id = _id
self.paint_degree = paint_degree
#148 #856425
>>856420
pandas!
#149 #856426
>>856420
может так
class TestClass(object):
def __init__(self, json):
list = list(json.values())
self._id = list[0]
self.paint_degree = list[1]
>>856449
#150 #856429
>>856420
[CODE]args, *kwargs[/CODE]
Блядь, элементарных вещей не знаете
>>856449
#151 #856449
>>856426
dict.values() не упорядочен

>>856420
Про dict unpacking (>>856429) можно почитать тут:
https://www.python.org/dev/peps/pep-0448/

Но он не поможет с _id в данном случае, придется либо в json'е указывать _id, либо править аргументы инита.
Вообще, такие вещи (де)сериализация часто вручную делаются. Можно например запилить список нужных ключей и пройтись по этому списку, вытаскивая из json'а данные и присваивая их объекту с помощью setattr. Или не список, а карту, по типу:
_id -> id
paint_degree -> None (то есть ключ не меняется)
#152 #856466
Анон, есть один языковой словарь (ен - ру, к примеру). Как можно из него сделать ру-ен?
Мой вариант:
[CODE]
r2e = {}
items = list(e2r.items())
for k, v in items:
r2e[v] = k
[/CODE]
Попроще способа нет?
>>856468
#153 #856468
>>856466
{v: k for k, v in e2r.items()}
Но это не учитывает, что может быть несколько разных слов с одинаковым переводом.
#154 #856499
ракуем в конфе http://comes.ee/2chdev
124 Кб, 375x500
#155 #856511
Парни, есть два списка, нужно элементам первого соотнести просто обработать их вместе элементы второго. Заковыка в том, что второй список меньше первого и, после достижения его конца, нужно начать чтение с первого элемента. Мне не хочется возится со счетчиками итераций внутри циклов и остатками от деления этих счетчиков на количество элементов в меньшем списке, поэтому задам вопрос, нет ли в питоне на этот случай заготовленной элегантной конструкции?
Есть идея в каждой итерации чтения большего списка pop()-ом вытаскивать из меньшего старший элемент, а затем инсертить его в начало, но как-то это тоже не оче..
>>856516
#156 #856516
>>856511
Попробуй:
zip(larger, itertools.cycle(smaller))
#157 #856593
Ананасы, что почитать, чтобы научиться работать с библиотекой requests?
И ещё вопрос: у двача есть своё апи, поэтому можно без проблем написать парсер треда или вайпалку. А что делать, если у какой-то борды своего открытого АПИ нет?
>>856598>>856646
#158 #856598
>>856593

> Ананасы, что почитать, чтобы научиться работать с библиотекой requests?


Документацию на их сайте.

> А что делать, если у какой-то борды своего открытого АПИ нет?


lxml или Beautiful Soup
>>856601>>856642
#159 #856601
>>856598
Спасибо.
#160 #856642
>>856598

>lxml


defusedxml
#161 #856646
>>856593
pandas!
>>856649
#162 #856649
>>856646
это золотой пост?
#163 #856690
>>855102 (OP)
бля, думаю, ебически нубский вопрос, но все же.
Какого хуя некоторые либы ставятся в pip, а всякие mathplotlib и tk ставятся отдельными пакетами в линупсах?
>>856691
#164 #856691
>>856690
Некоторые пакеты питона - это биндинги к C-библиотекам, соответственно они требуют наличия этих самых библиотек. По-моему, названные тобой пакеты не являются таковыми.
#165 #856696
>>855102 (OP)
Учусь по книге Майкл Доусон - Программируем на Python - 2014 потом перейду на три книги Лутца
Где мне брать задачки для моего уровня? Прочитал эти главы:
Типы переменные и основы ввода-вывода.
Ветвление, циклы с оператором while
Циклы с оператором for, строки и кортежи
Списки и словари
Функции

Ну или с чем мне ещё надо ознакомиться (если дадите ссылку на задания).
>>856735>>856753
#166 #856735
>>856696
Там после каждой главы задачки - их и делай/читай дальше.
>>856736
#167 #856736
>>856735
После глав там задачки уровня /рисуем сову.
#168 #856753
>>856696
Посоветую сразу ставить задачи для реального мира, а не ебаться с олимпиадными.
>>856776
106 Кб, 623x496
#169 #856757
>>856736

> После глав там задачки уровня /рисуем сову.


А ты что ожидал, уровня напишите_свой_фреймворк?
Там норм задачи, позволяющие закрепить пройденное. Можешь посмотреть "Простой питон" - там тоже в конце глав есть минипроекты.
>>856760>>856931
#170 #856760
>>856736
рисуем сову в смысле непонятные и сложные, или лёгкие, как в его >>856757 понимании?
>>856784
#171 #856776
>>856736
http://acm.timus.ru/problemset.aspx
Задачи от уровня "урок информатики в 8б" до уровня "практикующий ученый". Вопреки совету этого анона >>856753 рекомендую все таки порешать задачки, потому что если сразу начнешь решать задачки из реального времени, то 95% времени будешь исправлять синтактические ошибки, и искать в библиотках методы для работы со строками/словарями и тд., вместо решения этих самых задач
>>856806
#172 #856784
>>856760
Задания должны быть как в самой главе (в главе 2+2, а после должны быть 4+5), но на деле в книге после каждой главы идёт сплошное РИСУЕМ КРУЖОЧЕК, НУ А ТЕПЕРЬ СОВУ. Вангую для каждой книги эти задачки придумывают мимохуи.
>>856796>>858068
#173 #856796
>>856784
можешь пример задачи с рисованием совы из этой книги кинуть? месяц назад эту книгу прошел - там максимально подробно все объясняется.
#174 #856806
>>856776

>искать в библиотках методы для работы со строками/словарями и тд.


Тащем-то это неизбежно.
16 Кб, 610x146
#175 #856822
Антош, как пик рил записать в переменную какую? Ну ли прочитать поэлементно(есесно цикл for не катит)?
<class 'NoneType'> - это тип данной байды.
>>856874
#176 #856874
>>856822
Ну, например преобразовать в строку, а потом записать в список списков с помощью сплит (разделитель между ними скопировать попробуй).
>>857138
33 Кб, 637x297
#177 #856920
Аноны, чому у меня в консоли постоянно такая ошибка в цикле (что-то не так с вложенным блоком)?
Тот же скрипт в IDLE или обычном редакторе отлично работает.
>>856923
#178 #856923
>>856920
у print отступа нет, вроде бы. он должен в теле блока for быть
>>856924
#179 #856924
>>856923
блдж, я думал он автоматически определяет цикл и "..." - это вложение, ахуеть теперь. Спасибо.
#180 #856929
Мне нужен веб-анон.
Расскажи мне про асинхронные таски, селери, параллелизацию, разделение web/worker.
Где почитать как все это работает? Про деплой на платформах как сервисах.
Я начинаю понимать что знаний простого однопоточного бекенда мне не хватит и я не понимаю ничего в развертывании.
#181 #856931
>>856757
Вот мне интересна первая задача. Какие есть способы её решения?
У меня в голову приходят три, но они не самые оптимальные по памяти и времени. Просто интересно задрочить эту задачу.
1. Скопировать лист, брать рандомом элемент , напечатать его и удалить его из списка.
2. Использовать рандомные числа с периодом n, где n = len(list_of_words). В криптографии что-то такое есть, но забыл как называется.
3. Исходный лист не изменяется, но мы держим доп. структуру, которая держит все использованные элементы/индексы.

Еще варианты? Должно быть элегантное решение.
#182 #856932
Кстати, еще вопрос. Flask, когда приходят реквесты создает новый thread для реквеста? Где лимитируется число потоков?
>>856958
#183 #856933
>>856929
Только статьи и доки в интернетах, и пробуй сам всё делать, разбирайся. В Celery, кстати, ничего сложного нет.
Посоветую читать Светлова http://asvetlov.blogspot.ru/ - часто годные статьи бывают про асинхронность, GIL и всё сопутствующее.
#184 #856935
>>856929
django by example
#185 #856938

>856931


> test = ['a', 'b', 'c', 'd']


> for i in range(len(test)):


> test.pop(random.randrange(len(test)))


Чем тебе твой первый вариант не нравится?
>>856940
#186 #856940
>>856938
Он изменяет исходный массив. Этот массив, возможно, будет использоваться далее для той же задачи. А еще он может быть большой.
>>856945
#187 #856945
>>856940
я и импорт не прописал

> он может быть большой


и что дальше? Я вообще второй месяц питон и погромированние вообще изучаю, как и анон с вопросом про задачи. Мы не в курсе что и как там память ест.
#188 #856950
Есть мысль делать шафл, но без копирования исходного массива.
>>856952
#189 #856952
>>856950
Я имею в виду, посредством генератора псевдослучайных чисел, но без повторения. Вот убей, а не помню как это называется.
#190 #856957
Еще вопрос такой. Есть массив (лист) элементов. Нужно получить перестановку (permutation) номер n.

Т.е. у нас есть
l = [1,2,3,4,5,6]
и мы делаем
permute(l, 23)
и она выдает перестановку номер 23. Читал об этом раньше, но не разобрался с теорией. Насколько я понимаю
permute(l, 22) < permute(l, 23)
т.е. лексикографическое неравенство.

Призываются именно те, кто разбирается в этом. В инете я и потом почитаю по теме.
#191 #856958
>>856932
Полагаю, на продакшн-сервере. На хероку в гуникорне, например, число тасков выставляется в аргументах наряду с портом, ип и прочими параметрами.
мимо >>856929 дебич.
6 Кб, 595x144
10 Кб, 771x114
#192 #856959
http://pastebin.com/2uhGT4c3
Имеется вот это, а как теперь преобразовать в какой-нибудь список, чтобы можно было дальше работать с названиями этих тайтлов? Например, чтобы из всего списка случайно выбирать какое-нибудь однo название и уже с ним работать. Вот как привести это всё в рабочий вид внутри скрипта?
>>856960
#193 #856960
>>856959
Google: <data type> to <data type> Python
>>856964
11 Кб, 646x121
#194 #856964
>>856960

qqq = soup.find_all("td", {"tlistname"})
for www in qqq:
eee = www.text
rrr = eee.split('\n')
print (rrr)

Yeee, спасибо. Сам теряюсь, когда нужно что-то найти в гугле, просто не знаю, что искать.
>>856965>>856966
#195 #856965
>>856964
У этого nyaa.se, кажется, есть свой api.
>>856967
#197 #856967
>>856965
>>856966
Да я просто учусь, выбрал случайный сайт из своих закладок, чтобы разобраться, как доставать нужные элементы.
#198 #856980
В чем отличие yield в генераторах от return?
>>856984
#199 #856981
>>855102 (OP)

Питоноебы, как с помощью либы requests отправлять запросы и тем самым автоматизировать какую то гнилую браузерку?
Так вот: мне просто нужно прочитать заголовки запроса и, залогинившись, отправлять GET с этими заголовками? Или нет?
>>856986>>856989
#200 #856984
>>856980
Тупая ты сука, возьми любой справочник по языку, любую книгу по языку, прочитай, сделай примеры, поиграйся с тем что придумаешь по теме. Это то, как учится язык. когда ты с интересом можешь просидеть 12 часов впитывая информацию.
Нет блядь, лучше пойду спрошу на дваче.
#201 #856986
>>856981
requests.head
#202 #856989
>>856981
Да, но по идее для логина нужны кукиз, кукиз получается из чего-то под названием cookiejar, сам погуглишь, что это. Если нет джавпскрипта и защиты от ботов, то круто, если есть, то проще через силлениум будет сделать. Хотя на гитхабе есть либы для обхода всяких аимнотробот-галочка. Если браузера на флэше, ты в пролете.
>>856991
#203 #856990
Логин: r = requests.get('https://api.github.com', auth=('user', 'pass'))
Но да, брузерка на флэше, я в пролете. Но а на самом деле, нужно делать так, как я расписал?
>>856991
#204 #856991
>>856993
#205 #856993
>>856991
Думаю, да. Для флеша, мб, sellinium поможет (не помню, как правильно, пишется), но сам его пользовал лишь один раз года полтора назад.
#206 #856997
Общий вопрос по архитектуре аппы.
Возьмем в пример архивач.
Для каждого треда он с определенной периодичностью получает по нему информацию. Как это организовать? Я могу предположить что нужен отдельный скрипт, работающий с общей базой данных (с вебфреймом) и берущий оттуда даты добавления треда и возвращающий туда новые данные и последний момент обновления.
Есть варианты проще? И как делать эти промежутки? Уж явно не через sleep.
#207 #857000
def list_append(var1,var2,soup_name,list_name):
for var1 in soup_name:
var2 = var1.get_text()
list_name.append(var2)
return list_name
print(list_append(x,a,day_link,list))
Итог: NameError: name 'x' is not defined

Подскажите, где проебался, пожалуйста (только недавно вкатился, не ебу где ему определить переменную)
>>857003>>857015
#208 #857003
>>857000
Дай контекст, залей на ресурс где есть табуляция, перестань по-дебильному называть переменные.
>>857005
#209 #857005
>>857003
Нихуя не понял.
>>857008
#210 #857008
>>857005
Квиты
#211 #857015
>>857000
Подправлю:

def list_append(var1,var2,soup_name,list_name):
---for var1 in soup_name:
---var2 = var1.get_text()
---list_name.append(var2)
---return list_name

print(list_append(x,a,day_link,list))

Итог: NameError: name 'x' is not defined
#212 #857019
>>857015
Ты не определил первый аргумент своей функции, либо определил его вне области видимости. Неужели ты настолько глуп что не можешь прочесть эксепшн?
#213 #857020
>>857015
Под циклом должна присутствовать вложенность еще после двоеточия. В общем, садись за книжку.
#214 #857029
Зачем нужна команда raise. В каких конкретных ситуациях необходимо вызывать ошибку?
#215 #857030
>>857029
Когда надо стопнуть программу.
>>857031
#216 #857031
>>857030
А командой break?
>>857034>>857043
#217 #857034
>>857031
ВОЗЬМИ УЧЕБНИК УБЛЮДОК! БРЕЙК ИСПОЛЬЗУЕТСЯ В ЦИКЛЕ!
#218 #857040
>>857029
это нужно для pandas!
#219 #857043
>>857031
break стопает цикл, а raise стопается через экспешн и стопает весь скрипт нахуй. Т.е. после брика поток идет дальше, а после райза эксепшена все нахуй стопается и распидарашено крч кровькишки.
#220 #857046
Джанга, делаю функцию удаления объекта модельки из бд. Хочу сделать ссылку, после которой функция выдает страничку подтверждения действия (две кнопочки, да-нет), после нажатия кнопочки форма отправляет данные с нажатой кнопочкой, функция принимает ответ и делает соответсвенно дейтствие. Я никак не усложняю себе жизнь тем, что делаю сейчас форму с двумя кнопочками. Есть способы удобнее/продуманнее моего?
>>857047
#221 #857047
>>857046
чекни generic.DeleteView. Там прям все 1-в-1.
>>857216
419 Кб, 2080x1170
#222 #857124
Ну распарсил я сайтик с погодкой, да. Ну получу я данные о погоде на всю неделю с помощью взмаха Ctrl+Shift+F10, ну а дальше то что? Как из этого слепить что то полезное?
>>857128>>857134
#223 #857128
>>857124
Ну иди нахуй, например.
#224 #857134
>>857124
subprocess.call(["cowsay", parset.day.pogoda])
>>857220
#225 #857138
>>856874
Нет, не катит, выдает ошибку преобразования(ну или около этого).
P.s. Это scapy.hexdump(packet), если що.
#226 #857143
>>857029
Ну если в общих чертах, то когда твоя функция берёт чёткий инпут, а юзер притащил какую-то хуйню, то бросай ошибку в ебало мрази, пусть знает своё место.

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

В языках без ошибок их или велосипедят, или используют какие-нибудь "кодовые" или "заведомо невозможные" возвраты. Типа "наша функция возвращает нужный результат или строку МАМКУЕБАЛ, если у нас не получилось. Убедитесь, что возвращенное значение не равно строке МАМКУЕБАЛ".
150 Кб, 449x442
#227 #857150
>>857015

>for var1 in soup_name:


>var1 = x

>>857151
#228 #857151
>>857150
Ты долбоеб?
>>857165
#229 #857165
>>857151
а зачем он х пихает в параметры функции, если var1 все равно по soup_name бегать будет?
мимо
>>857167
#230 #857166
Питоняши, объясните на пальцах, зачем нужен virtualenv.

>>857015

> NameError: name 'x' is not defined


ты не задал "х"
Еще у тебя в var1.get_text() значение var1 берется из for, а не из аргумента
>>857169>>857172
#231 #857167
>>857165
Блядь, ты серьезно?
>>857168
#232 #857168
>>857167
И чего ты бесишься?
Я это имел ввиду как раз >Еще у тебя в var1.get_text() значение var1 берется из for, а не из аргумента
>>857186
#233 #857169
>>857166
для pandas
#234 #857170
Аноны, подскажите, с какой книги лучше всего начинать учить Питон?
А то рекомендаций много, и выбрать что-то действительное толковое трудно.
>>857171
#236 #857172
>>857166
A byte of python --> Простой python --> Прочий мейнстрим типа Лутца.
>>857174
#237 #857174
>>857172
А Луц ---> укус питона норм будет?
#238 #857175
>>857174
После лутца укус уже бесполезен будет
#239 #857177
>>857174
Я не знаю. Начал бы уже читать заместо того чтоб сиськи мять. Тут есть уже один дебил в треде, что по каждой хуйне пост строчит.
#240 #857178
>>857174
Мне говорили,что у Лутца ну очень много воды
40 Кб, 418x200
#241 #857180

>Мне говорили


>норм будет?


>будет


>бесполезен


>выбрать трудно

>>857182
#242 #857182
>>857180
Читал и лутца и и укус, укус достаточно поверхностный, лутц дает тебе все и сразу
#243 #857186
>>857168
И кстати, вот, например,
Переменная а типа ResultGet
А вот переменная b = a[0]
Какого типа переменная b?
>>857189
#244 #857189
>>857186
type() используй, заебал
>>857191
#245 #857190
Добрый вечер всем местным! Пишет вам студент в возрасте 21 год. С программированием не то чтобы на вы, а на Ваше сиятельство, учусь в местной шараге на учителя географии и маячит малоприятная перспектива соснуть хуйцов, точнее продолжить их сосание.
Поэтому решил вкатиться в программирование, полистал доску, сформировал мнение (лол). Знаю, что научить можно даже медведя на велосипеде кататься, но скажите объективно.
1. Нужно ли знание каких либо постулатов, или можно более менее вкатится с 0 опытом по программированию
2. Вопрос глупый, но всё же, представляется ли возможным найти какую нибудь более менее работёнку, на среднем уровне владения языком
3. Есть ли возможность шабашить во время обучения языку, какая нибудь халтурка для начинающих

Спасибо за ответы, хотя, вероятно, покройте хуями, но спрос не грех.
>>857192>>857199
#246 #857191
>>857189
Если б у меня была возможность, я бы сюда не писал
#247 #857192
>>857190
C++ -> C++ Builder -> C# -> Python
По порядку. Начинай.
>>857309
#248 #857193
1. Можно, но без знаний сопутствующих технологий и области от проганья смысла не будет.
2. Не знаю.
3. Upwork.
#249 #857199
>>857190
Вероятность соснуть высока по причине:

>Нужно ли знание каких либо постулатов, или можно более менее вкатится с 0 опытом по программированию


Тебе не язык нужно учить, а вообще всё и с нуля. Это очень много времени, крайне много времени, пиздец как много времени. И на все это нужно желание, интерес и воля. Хуесосов же поддавшихся на хайп в индустрии очень много (как можно увидеть и по этому треду с вопросами уровня детсада) и отсеивают их на собеседованиях очень хорошо.
>>857203
#250 #857202
>>857174

> А Луц ---> укус питона норм будет?


В укусе там всего 150 страниц и всё очень кратко.
#251 #857203
>>857199

> вообще всё и с нуля.


Что именно?
решил вкатится в 24 с другой айти-сферы
>>857307
sage #252 #857204
наступил сегодня в говно. присмотрелся по-лучше оказалось что это pandas.
>>857424
85 Кб, 670x503
#253 #857208
То чувство когда тебе в шараге на первом курсе задрочили дискреточку, си и алгоритмы, на втором - Ruby on Rails, бидлон, Таненбаума и асм, а сейчас ты уже играешься с NARMAX, ТАУ и промышленными сетями. Попутно получая повышение квалификации в очень крутой сфере с высоким порогом вхождения, которая скоро будет хайпом.
>>857209>>857212
#254 #857209
>>857208

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


Как к тебе в сварщики попасть?
885 Кб, Webm
sage #255 #857212
#256 #857216
>>857047
Не пользовался до этого в проекте cbv вообще, я же могу его прикрутить к одной вьюхе только?
>>857271
#257 #857217
Аноны, помогите нуфагу.
Нужно сгенерировать из одного двумерного массива(4х4), путем разбиения на 2 массива и прибавления/отнимания константы, k двумерных массивов.
То что есть:
http://pastebin.com/KhdRGbm7
Как на этапе выполнения избежать расчитывания одинаковых записей?
#258 #857220
>>857134
Выделить отдельный процесс для этого и держать в фоновом режиме?
#259 #857222
>>857217
lru_cache
>>857228
#260 #857228
>>857222
Нужно ведь чтобы объект был хэшируемый, а у меня двумерный массив, который не хэшируется.
Бросает
TypeError: unhashable type: 'numpy.ndarray'
#261 #857235
Ананасы, а каким IDE вы пользуетесь?
#262 #857236
>>857235
Читай шапку, пидор
блокнот
#263 #857238
>>857235
Pycharm
92 Кб, 306x295
#264 #857243
>>857235

>IDE для языка с динамическим петушением

#265 #857270
Аноны сетевики! Подскажите мне как быть в такой ситуации. У меня есть две базы данных и нужно синхронизировать операции в этих БД. В первой БД у меня пользователи (имя, пароль, время создания etc), а другая - это пользователи в онлайне в данный момент.

Делаю фласк сайтик (пока только в локалке) и хотелось бы знать, как такое следует делать.

Сам сделал через threading.Lock.
>>857277>>857279
#266 #857271
>>857216
конечно
#267 #857277
>>857270
А ты уверен что зранить в бд статус пользователя это вообще нормально?
>>857278
#268 #857278
>>857277
В данном случае да, т.к. количество будет большим, а памяти для проги будет мало.

Но вопрос довольно общий, к слову.
#269 #857279
>>857270
У баз одинаковая структура или во втором случае у тебя просто список юзеров?
>>857280
#270 #857280
>>857279
Разная структура совершенно. Причем есть вероятность, что код для базы с пользователями поддерживать буду не я.
>>857285
#271 #857281
Я понимаю, что в фласке каждый реквест обрабатывается отдельным тредом, т.о. нужно синхронизировать работы с разными базами.

Объединить все в одну базу - не вариант.
#272 #857282
>>857235
IDLE + Atom
#273 #857285
>>857280
Думая для списка юзеров в сети лучше будет использовать редис, так как тебе нужно постоянно удалять/добавлять онлайн пользователей. А памяти полюбому хватит. Непонятно только какие операции ты собрался синхронизировать если структура разная.
>>857286
#274 #857286
>>857285
Да можно и редис и mysql. Это уже другой вопрос.

Тут смотри какое дело. Есть база с пользователями, а есть база залогиненных пользователей. Пользователи могут создаваться, удаляться, изменяться etc.
И нужно держать эти две базы в корректном состоянии.
Вот для этого и нужна синхронизация. Ты представь, что будет если у меня придет запрос на логин, а примерно в то же время придет запрос на удаление того же пользователя. Это race condition в чистом виде.
>>857291>>857302
#275 #857291
>>857286
Мне просто интересно, как это делается в реале? У самого меня бэкграунд C/C++/Asm, так что мыслю категориями системного программирования больше, но думаю, что такой подход имеет довольно много ограничений.
#276 #857299
Даже еще более интересный вопрос. Допустим, у меня есть несколько баз и я их должен синхронизировать, т.к. там связанные друг с другом данные.

Я понимаю, что если у меня идут три запроса на чтение подряд, то я могу не лочить базы и давать читать их всем потокам (обработчикам реквестов):
read
read
read

Но если у меня, к примеру, идет такая последовательность
read
write
read
read
То я должен сделать чтение, далее дать эксклюзивный доступ для одного потока на запись, а уже потом дать свободный доступ на чтение всем (двум в данном случае) потокам.

Вопрос, как это делается стандартизированно? Наверное, не один я такой штукой маюсь. Причем, тут есть еще проблема масштабирования, точнее будет в будущем.
>>857312
#277 #857302
>>857286
Удаляешь пользователя из бд, обнуляешь сессию, удаляешь пользователя из списка онлайн если он там есть. Не думаю что могут возникнуть проблемы. Это то же самое что удалить пользователя который уже залогинен.
>>857305
#278 #857305
>>857302

>Не думаю что могут возникнуть проблемы.


Могут.
Если придет последовательно два реквеста:
1 - на удаление пользователя
2 - на запрос данных под профилем этого пользователя.
Может возникнуть race condition.
>>857311>>857314
43 Кб, 200x318
#279 #857307
#280 #857309
>>857192
Зачем это нужно, кстати? Я про последовательность.
Я другой анон, просто учу питон для себя, потому что интересно и хочется некоторые не самые сложные скрипты уметь писать, не преследую цель заработка.
75 Кб, 500x506
#281 #857311
>>857305
Первое: удаление пользователей из базы вообще не очень хорошая практика. В крупных проектах обычно используют специальные флаги, и просто изменяют логин.
Второе: если ты перед удалением\изменением своего пользователя будешь убивать его сессию в кеше, тогда при попытке данных он будет получать редирект на авторизацию и пока он будет ее проходить, ты спокойно можешь сделать все, что тебе нужно.
Никаких гонок.
>>857312
#282 #857312
>>857311
Ну хорошо, в данном случае, скорее всего, ничего страшного не случится. Но в общем случае есть риск гонок.
Плюс, интересует вот этот вопрос >>857299
>>857313
53 Кб, 600x480
#283 #857313
>>857312
Давай чуть более конкретно, с какой целью ты хочешь синхронизировать данные в базах? В случае с базой и кешем для сессии все понятно и стандартно, а твой use case я что-то понять не могу.

Дополнительно: синхронизацией, блокировками и атомарностью доступа обычно занимаются сами базы. Я слышал про очень сложные случаи, когда нужно обеспечить геораспределенные базы данных и вот там штатными средствами баз обычно этого не добиться. Но я что-то не думаю, что это твой случай.
>>857316
#284 #857314
>>857305
Нет же особой разницы. Вторая БД просто держит временные данные которые мало на что влияют. Если другой пользователь получит информацию об удаленном нескольно милисекунд назад пользователе, на что это повлияет? Ни на что. Если тебе реально нужна целостность БД, то используй одну БД с транзакциями.
#285 #857316
>>857313

>В случае с базой и кешем


Кеш как реализуется?

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


Это тоже интересно бы узнать.
>>857324
171 Кб, 1254x1057
#286 #857324
>>857316

>Кеш как реализуется?


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

>Это тоже интересно бы узнать.


Что узнать? Требовалась синхронизация данных в базах, которые расположенны на серверах в двух, очень далеких друг от друга точках мира. Обычные средства баз в таком случае редко подходят из-за высокого latency.
В подробности реализации я не вникал, но вроде как обошлись микросервисами и увеличением времени отклика для некоторых операций. Пользователи не заметили.

Так что с твоим-то случаем?
>>857329
#287 #857329
>>857324

>Так что с твоим-то случаем?


Постараюсь перенести все в одну базу. Если будет не вариант так сделать, то локи.
>>857331
401 Кб, 594x600
#288 #857331
>>857329
Мне интересно, как ты собираешься потом свои локи распределять, если вдруг у тебя будет больше одного инстанса приложения.
>>857333
#289 #857333
>>857331
Не очень понял вопрос.
Это не файловый лок, а просто тот, что threading.Lock()
>>857334
247 Кб, 736x1024
#290 #857334
>>857333
Я про ситуацию, когда у тебя есть N+1 машин (виртуальных\физических), на которых тебе твое приложение запустить надо, и чтобы они все вместе могли работать с данными и делать полезное дело.
>>857336
#291 #857336
>>857334
Это пока не рассматривается. Сейчас я на одной машине запускаю.
>>857340
241 Кб, 800x1131
#292 #857340
>>857336
Смысла тогда задумываться о масштабировании нет никакого, just sayin'.
>>857343
#293 #857343
>>857340
Пока нет. Но интересно, как это делается.
#294 #857424
>>857204
Уахахахахахахахахахахахахахаха!!!
#295 #857466
#296 #857528
Решил написать своего бота, подключил библиотеку pyTelegramBotAPI , создал бота, команды, написал файлик , запускаю из студии, висит питонье окно "нажмите любую кнопку для продолжения", бот в диалоге не отвечает. что я делаю не так и как отлаживать такое? из командной строки запускаю этот скрипт, тоже молчит(
>>857541
#297 #857541
>>857528
Телепаты соберитесь!
>>857551
#298 #857543
>>855102 (OP)
Как в джанго реализовать теги? Вот есть набор сообщений от пользователя и нужно к каждому сообщению прикрепить теги. Теги, естественно, могут быть одинаковые у разных сообщений. Теги потом буду использовать, чтобы высвечивать их по частотности использования для тегирования сообщений.
Как это на уровне модели реализовать? Есть готовый гайд?
>>857550>>857554
#299 #857550
>>857543
Я пытался найти подходящий тип полей, но не нашёл. Получается, нужно использовать обычный CharField, представляя все теги в виде единой строки, а затем уже на уровне питоньего кода разбивать эту строку через эти запятые?
Меня напрягает, что нет готовой модели, которая позволяла бы забить все теги в форму кортежа/списка и работать уже с ними. Или все так и делают?
>>857553
#300 #857551
>>857541
Это может быть изза того, что я питон последний 3.5 установил и библиотечка не поддерживает его? И еще смущает, что в проекте библиотека видна, но подсказки половина не работают, когда пишешь код.
>>857805
#301 #857553
>>857550
обычное many to many
#302 #857554
>>857543
пост = мени-ту-мени-филд(пост)
тег = моделс.ЧарФилд()
>>857566
#303 #857566
>>857554
Ага, я понял, почему я тупил до этого. Но всё равно не понятно, как это будет высвечиваться на уровне пользователя, т.е. как представить в шаблоне (ведь нужен не один тег, а множество, в то время как класс тегов использует чарфилды с единой строкой).
>>857621>>857624
#304 #857620
>>857217
Попробовал подругому сделать, теперь встал вопрос как мне получить все элементы из temp_code_book 13 строка вместо "???"
http://pastebin.com/HP0hJiLy
#305 #857621
>>857566
сейвишь несколько тегов, в чем проблема-то? Фильтруешь теги, если они нужны для конкретного поста, а если надо вывестьи вообще все теги, то просто выводишь через таг.обджетс.ол
#306 #857624
>>857566
несколько тегов вводишь либо через формсет, либо через какой-нибудь костыль, который бы, допустим, сплитил введенный стринг через запятую, и сейвил бы отдельный объект под каждый разбитый стринг.
#307 #857626
Анон, Марк лутц 4е издание изучаем питон стоящая книга? Скачал себе пдфку, а там 1.3к страниц, плюс в самом начале автор писал, что потребуется ещё прочесть 'программируем на питон'. Я не привязан ко времени, просто интересно мнение тех кто прочёл, смогу ли после прочтения онных устроиться джуном?
Извини за платиновый вопрос.
#308 #857629
>>857626
Книги хуйня. Читай укус и практикуйся.
#309 #857638
>>857626
Хуйня. Я тебе могу назвать еще минимум 5 книжек которые обязан прочитать каждый питонист, там на несколько тысяч страниц наберется причем все нужно делать с примерами.
Просто "освоив" синтаксис языка по вводному источнику ты никуда не устроишься, кроме совсем днища.
Укус говно кстати.
>>857644>>857692
#310 #857640
>>857626
Книги вообще хуйня. Определяешь цель и гуглишь
>>857647
#311 #857642
Всё говно.
#312 #857644
>>857638
Что за книги?
#313 #857647
>>857626
ты шапку видел? она там,вверху
там блядь чёрным по белому написано
codecademy -> укус питона -> думай питоном
а что непонятно - в лутце

нет давай буду ебаться пдфкой в жопу а потом ныть что сука справочник читается как-то не так хорошо как не справочники

укус говно, но хоть какой-то результат показывает для совсем нихуя не соображающих
Вот этого дебила >>857640 шли в пизду и нахуй. Книга может ответить на большее количество вопросов, чем у тебя может на данный момент возникнуть - тем и ценна. Всего-то прочитать пять-десять книжек и будешь классным перцем, который хоть понимает что ищет, а не недоучкой-ебанашкой с мантрой НУ ЧЁ СЛОЖНАВА ВИЖУ ЦЕЛЬ НЕ ВИЖУ ПРИПЯТСТВИЙ))))) как вот это уёбище
В других сферах то же самое, и чем в бэ спорить за мораль vs христианство или в медаче - онкология через хуйовую воду - наворачиваешь просто пару-тройку нормальных компентентных писателей и твои маняфантазии больше не нужны
>>857652>>857670
#314 #857648
Блять, как же сложно, мозги кипят.
#315 #857652
>>857647
Я как раз из фака и вылез где первым пунктом ссылка на хабр в котором советуют читать лутца первым делом.
>>857653
#316 #857653
>>857652
Ну, в общем, лутц - справочник. Читать его нужно как справочник. Т.е. если ты внезапно тупишь и не понимаешь что же за хуйня такая super() - вот как раз тогда.
А так хуярь курс бесплатный по питону на кодекадеми, а потом всё остальное.
>>857655>>857656
#317 #857655
>>857653
Спасибо, друже.
Хоть кто-то нормально ответил тому анону.
Мимо другой анус.
#318 #857656
>>857653
Спасибо.
sage #319 #857665
А вот и даун вылез со своими книжками.
#320 #857670
>>857647
Как же я ору с этого долбоаеба.

Я понаехал в ДС, сейчас я мидл с зп 110к, не прочитал ни одной книжки за свою жизнь.
>>857673>>857674
#321 #857673
>>857670
И как ты, спрашивается, учился?
Где рыл нужную тебе инфу и т.д.
>>857687
#322 #857674
>>857670
Умничка. Поздравляю тебя.
Весь мир читает книжки и учится по ним, но конечно твой единичный (и неподвтерждённой достоверности) пример - главное доказательство что все мы ошибались, ага.
>>857678>>857687
#323 #857677
да вы охуели! никто dive into python даже не упоминает!
>>857682
#324 #857678
>>857674
Он не единственный такой.
>>857688
#325 #857682
двачну за книгоебов и двачну за гуглоебов, потому что когда я изучал, я выбрал направление и читал нужные главы из книг. но ни одну книгу целиком, целенаправленно не прочел.
кроме >>857677 конечно же!
>>857688
#326 #857687
>>857674

>единичный


Среди знакомых прогеров знаю кучу таких же.

>>857673
Документация в интернете + анализ чужого кода.
>>857688
#327 #857688
>>857682
>>857687
>>857678
пацаны, да хоть в жопы ебитесь ради скилла, только других хуйне не учите
прежде чем вкатывающийся вообще врубится ему что-то надо понять
а если вы настолько верите в то что без книг можно чё угодно раздуплить - попробуйте писать сразу машинным кодом, или хотя бы ассемблером, разумеется если ещё не учили его, только не надо пиздеть что это невозможно
>>857690
#328 #857690
>>857688
Ассемблер простой как пробка, просто утомительный .
#329 #857692
>>857638

> ты никуда не устроишься


Так че делать-то, ебана?
>>857694
#330 #857694
>>857692
Тебе уже сказали. Всё - говно, чтобы ты ни делал, это будет тщетно и бессмысленно. Хватит барахтаться уже, дай наконец штурму жизни смести тебя и тем самым обрести покой.
>>857698
#331 #857697
Питоны, как дробить сайт на отдельные приложения? Есть какой-то гайд или на уровне интуиции делать?
Спрашиваю потому, что мне вроде бы нужно сделать два разных приложения, но при этом использовать модель из одного в другом. Дублировать код явно бессмысленно. Так и нужно делать (брать модель из другого приложения) или же это признак того, что всё можно/нужно реализовать в рамках одного приложения?
>>857699>>857700
#332 #857698
#333 #857699
>>857697
Что именно хочешь делать с моделью из другого приложения?
>>857705
#334 #857700
>>857697
app1
--models.py
app2
--models.py

> from app1.models import YobaQuestionModel



в чем проблема?
>>857705
#335 #857705
>>857700
Я так и хотел, просто боялся, что неправильно что-то сделаю. Да и непонятно было, как приложения дробятся всё же.

>>857699
В одном приложении определён класс "Посты" и оно их просто высвечивает по очереди. В другой приложении собираюсь сделать так, чтобы пользователь мог вбивать данные в формочку, тем самым заполняя атрибуты класса "Посты".
>>857714
#336 #857707
Осилил Укус и добиваю Think Python. Какую книгу купить в качестве настольной?
#337 #857711
>>857707
Библию.
>>857715
#338 #857713
>>857707

>Осилил Укус и добиваю Think Python.


обе говно
>>857716
#339 #857714
>>857705
Ну это ж типа все относится к функциональности блога? Тогда пихай все в одно приложение.
Вот, например, приложение "Комментарии" или "Теги" можно сделать отдельно. Потом удобно будет взять свое приложение и прикрутить к другому проекту, например.
#340 #857715
>>857711
Так и не осилил
#341 #857716
>>857713
Для вкатывальщика норм
#342 #857718
>>857707
А я купил про аккаунт в кодеакадеми
#343 #857719
Как сделать через функцию:

for x in day_link:
a = x.get_text()
list_day_link.append(a)
for x in date:
a = x.get_text()
list_date.append(a)
for x in month:
a = x.get_text()
list_month.append(a)
for x in min_temp:
a = x.get_text()
list_min_temp.append(a)
for x in max_temp:
a = x.get_text()
list_max_temp.append(a)

for x in date1:
a = x.get_text()
list_date.append(a)
3 Кб, 327x39
#344 #857722
Пачиму?
#345 #857723
>>857719
И да, это все - просто отдельные циклы for
#346 #857725
>>857722

> from .

>>857726
#347 #857726
>>857725
а как правильно? "from ." было взято из оф. доков.
>>857727
#348 #857727
>>857726
Кинь линк.
>>857728
#350 #857729
>>857722
ты файл точно views назвал, что пытаешься импортнуть?
#351 #857733
>>857722
апп в settings.INSTALLED_APPS?
>>857740
#352 #857735
>>857728
У тебя точно есть views.PY и __init__.pyв ТОЙ ЖЕ директории, где файл с импортами?
>>857740
#353 #857740
>>857735
Точно, но я вот здесь обосрался: >>857733
Теперь всё в порядке.
#354 #857757
>>855104
Придется возиться с унылым телеграмовским апи же.
>>857848
#355 #857770
Аноны, какую версию питона используете для работы 2.7 или 3.5?
Сейчас смотрю видосы орейли по алгоритмам питона ( бинарный поиск и т д). И его примеры не работают нихуя. Например в первом же видосе время выполнения выдают 0,0 а не разницу в начале и конце работы цикла скрипта. http://rutracker.org/forum/viewtopic.php?t=4821521
Кроме джанги в питоне в плане поиска работы еще что то есть? %%
>>857775>>857785
#356 #857775
>>857770
теперь юзаю только 3.5
кроме джанги писал парсеры на 3.5 (asyncio)
#357 #857785
>>857770
Пишу на обоих в зависимости от нужд проекта.
>>857798>>857799
#358 #857798
>>857785
давненько нужды в 2 неиспытывал
#359 #857799
>>857785
Легаси на 2.7? Вроде же есть тулза для адаптации 2 -> 3
#360 #857804
Может кто-нибудь в питоноконфу пригласить? Я приглашение проебал
>>857808
#361 #857805
>>857551

Ты может код покажешь? Сам пару дней назад писал бота, на 3.5 всё было отлично
>>857817
#362 #857808
>>857804
Там нет настоящей питонконфы.
>>857813
#363 #857813
>>857808
Питоны, проясните за jinja. Как этим вообще пользоваться? Приведите примеры. У меня одна неделя на освоение, а я даже не знаю с какой стороны подступиться.
>>857816>>857829
#364 #857816
>>857813
сначала укуси питон и установи pandas
#365 #857817
>>857805
Код брал один в один отсюда retifrav.github.io/blog/2015/10/24/telegram-bot/ чтобы для начала разобраться, как все работает, а потом под свои нужды допиливать. Там написано, что если на винде, то откроется черное окно питона и будет висеть процесс. У меня же если сам скрипт запустить, закрывается тут же, а если из студии, то вышеупомянутое "press any key" . Может я неправильно интеграцию настроил? Скачал с гитхаба архив, распаковал, потом запустил установку, в студии библиотека подключилась (я сужу это по присутствию ее в списках Python Envoronment проекта), питон в своей директории, проект в своей. Может я как-то неправильно запускаю?
#366 #857829
>>857813
Так же как самыми базовыми операциями в питоне. Только формироваться будет динамический контент внутри html и вместо задания переменных будет передаваться контекст из вью функции.
Изучи базовый синтаксис (суть скобочки {{ и {{%). Макросы, наследования, фильтры и дополнение блоков супером, по желанию, позже.
Официальный мануал две страницы.

Пиздец, мне обидно что я без ИТ образования не заработал программированием ни копейки, при этом объясняю что-то тем, кто спокойно делает шекели в конторе.
>>857846>>857880
#367 #857846
>>857829
Спасибо.
Дабы унять твой баттхёрт - я не в конторе. Неделя на освоение по другим причинам.
#368 #857848
>>855104
>>857757
Пиздатое апи. По сравнению с апи вк просто грааль.
36 Кб, 604x397
#369 #857849
Вновь телефонирую!
Пикрелейтед - схема для сервиса мониторинга сайтов (задумка не эта, но пример идеальный).
Описание: Django служит для отображения записей из БД, а также для добавления сайтов на мониторинг через формы. Отправив форму, пользователь просто выходит, мгновенного результата не нужно.
Некий абстрактный worker.py пользуется этой же базой, беря из нее элементы и формируя справедливую очередь (первый зашел-первый вышел). Он обновляет контент страницы и временной штамп, после чего отправляет элемент в низ очереди и так далее.
Вопросы:
- worker.py. Как это должно выглядеть? На уме celery, RabbitMQ, redis. Ни с одним не имел дел. Тут важно отметить что хранилище в RAM не нужно, результат сразу пишется в перманентную базу. Стоит ли интегрировать worker в django или пускать отдельно?
- Не будет ли воркер блокировать БД во время чтения/записи.

В общем, ваши мысли, похожие проекты, бредовые идеи: я рад услышать все!
>>857873>>857891
#370 #857873
>>857849
целери - самый распространенный способ для решения подобных задач, но я бы сделал на asyncio, aioamqp и aiopg, просто потому что мне так по фану.
>>857877
#371 #857877
>>857873
Спасибо за мнение.
Ты можешь заполнить пустые места в моей голове, особенно что касается архитектуры. Ты бы делал это отдельно от джанги или как-то интегрировал? И очень интересует вопрос по совместному использованию БД двумя клиентами.
>>857883
#372 #857880
>>857829
Образование нахуй не нужно, а то что ты до сих пор не вкатился только твои проблемы.
>>857882
#373 #857882
>>857880
Но у меня опыта около месяца, я не думаю что меня возьмут куда-то. Тем более что я учусь на дневном.
#374 #857883
>>857877
целери способ "интегрируется", мой нет и незачем.
в целери ты можешь выбрать бекендом редис или реббит или даже просто джанговкую орм.
в постановке задачи я не вижу каких то одновременных конкурирующих попыток записи, поэтому клиентов может быть миллион.
>>857887>>857895
#375 #857887
>>857883
upd. в обоих случаях блокировать не будет
>>857895
#376 #857891
>>857849
а еще глянь django channels вроде тоже позволяют запускать отложенные задачи. но сам я их не смотрел еще.
>>857895
#377 #857895
>>857883
>>857887
>>857891
Отлично! Я начинаю понимать куда глядеть, туман проясняется.
Начал еще искать проекты на хабе, пока вот статусчекер в виде джанго-аппа с селери нашел https://github.com/gpennington/django-ping .
https://github.com/gpennington/django-ping
#378 #857934
Есть ли в re какой-нибудь аналог .endswith(), только с регвырами?
#379 #857938
Как авторизоваться на сайте с помощью urllib?
>>857946
#380 #857945
Как реализовать личную страничку юзера джанго, мне по минималке, а-ля хеллоу %залогиненный юзер% причем наверное так чтобы на чужие профили ты залезть не мог, только на свой. Я так понял что юзер ид можно выудить прямо из объекта
request, стало быть вьюха грузит из бд инфу по этому юзеру и выдает ему страничку. А если у меня там будет форма например поменять ник, то как правильно сгенерить action в ней? У меня опыта построения архитектуры с гулькин нос.

В догонку - что новичка бустанет лучше (после Головатого и Каплан-Мосса): django by example или two scoops of django?
>>858167>>858601
#381 #857946
>>857938
BaseAuth?
#382 #857949
Посоветуйте либы для изучения новичку (если можно, то в сторону web)
>>857951
#383 #857951
>>857949
https://github.com/vinta/awesome-python
Вы все что вчера родились?
>>857966>>857967
#384 #857966
>>857951
такое ощущение что майлру сделал бота "питониста" и тренирует итт
47 Кб, 604x403
#385 #857967
>>857951
А хули я тыкаю на Downloader https://github.com/vinta/awesome-python/blob/master/README.md#downloader, а нихуя не происходит?
#386 #857970
Вот прочитаю укус питона и думатьпитоном, джангу поколупаю.
А че дальше-то? Меня же никто с такими знаниями наверно даже джуном не возьмет.
Какой-то проект пилить свой?
>>857972>>857983
#387 #857971
Пасаны! Как настроить Solr 6.2.1, чтобы он работал с джанго? Читаю django by example, и в главе, посвященной этой теме, есть мануал только для какой-то древней версии солра. В документации Haystack'a то же самое. Нужно ли создавать новое ядро в солре, если нужно, тот как? Куда засунуть настройки, которые генерирует haystack и которые в старой версии нужно было бы засунуть в schema.xml? Я нихуя не понял, короче. Может есть какой-то гайд по этим поисковым движкам чуть проще для восприятия чем документация солра?
>>858343
#388 #857972
>>857970
Накатай автоматизатор и вайпай каждый тред, Абу обосрется и в долю примет
>>857973
#389 #857973
>>857972
А если не примет?
А че я на собеседования скажу? Написал вайпалку для анонимной борды топ кек ))00?
>>857974
#390 #857974
>>857973
Нуу, типа готов написать парсер для вашей хуйни (если она не обрывает любое неподтвержденное соединение, конечно)
#391 #857975
А если блог показать, который ты по django by example пилишь вместе с автором, то хотя бы на собеседование пригласят?
>>857976
#392 #857976
>>857975
Они обязательно перезвонят.
>>857978
52 Кб, 535x528
#393 #857978
>>857976
Что еще можно интересного и просто на джанге запилить для нюфага?
>>857985
#394 #857983
>>857970
Вот блять теже мысли. Только уже и укус и дайв ин питон прочитал и еще пи-геймс поковырял. И даже задачик потыкал, которые тут анон оставлял. Спасибо Анон Кому я нахуй нужен без ИТ образование и в 29 лет хотя бы жуном.
>>857986>>857992
#395 #857985
>>857978
Ах да, кстати, хули вы все об этом джанго? Я в питоне только из-за bs4. Я не ебу просто, для чего он.
>>857987
#396 #857986
>>857983

>в 29 лет


Ну ты пиздец конечно. Я в 19 думаю, что уже все проебал.
>>857991
#397 #857987
>>857985

> Я не ебу просто, для чего он.


>Beautiful Soup is a Python library for pulling data out of HTML and XML files. It works with your favorite parser to provide idiomatic ways of navigating, searching, and modifying the parse tree. It commonly saves programmers hours or days of work.



Не благодари
>>857989
#398 #857989
>>857987
Я про джанго, и ты это понял, бля))
>>857995
#399 #857991
>>857986

> Ну ты пиздец конечно. Я в 19 думаю, что уже все проебал.


Кек с этого школьника))
>>857995
6 Кб, 200x200
#400 #857992
>>857983
А мне 26..
>>858013
#401 #857995
>>857989
Зная джанго намного легче работу найти наверное.

>>857991
3 курс уже не школьник
>>857999
#402 #857996
Ну чё сложного, пили свой супер-бложик, пили свою соц сеточку с картинками из того же джанго бай экзампл, вон из идея треда чего позаимствуйте и грамотно запилите, мало ли идей что ли?
Вообще если своих идей мало значит вы ещё недостаточно вникли в предмет, больше учите, больше практикуйтесь
>>858002>>858016
#403 #857999
>>857995
Мне 18 и у меня уже почти конец первой половины 4 курса (весь декабрь - практика в банке). Мда.
>>858005
289 Кб, 724x720
#404 #858002
>>857996
Спасибо анон. Пойду писать лучший блог с аниме и тюльпами.
#405 #858003
На рельсы инсалес несколько месяцев не может найти джуна на дохуя в месяц, даже в паблики рекламу кидали, а вы все в джангу лезете лол.
>>858007>>858010
#406 #858005
>>857999
Не гори так, не всех оставляют на второй год в школе.
>>858008
#407 #858007
>>858003

> Вакансии ruby developer в Киеве


> Найдена 21 вакансия за 30 дней


> Вакансии python developer в Киеве


> Найдены 73 вакансии за 30 дней

#408 #858008
>>858005
Не понял
56 Кб, 362x604
86 Кб, 604x454
#409 #858010
>>858003

> на дохуя в месяц

>>858034
#410 #858013
>>857992

Биз продал, уже пол года хуи пинаю. Безумная идея вкатится в код не отпускает. Это реально вообще?
>>858015
225 Кб, 869x1776
1525 Кб, 1357x1281
#411 #858015
>>858013
Реально. если ты няшная тян или трапик
#412 #858016
>>857996
Так им неинтересно и идей нет нихуя, лол. И либ не знают, и сети не знают, базовые алгоритмы не знают, нихуя не знают. Хотят денег.
Лепят бложики по туториалу и читают вводные книжки по питону типа как нотация работает, kjk.
То-то кому-то сраку порвет когда на собеседовани окажется что бэкенд - это не просто джанго, а дохуя чего.
>>858018>>858019
#413 #858018
>>858016
Да я понимаю, просто всё равно чем бы не занимались люди рано или поздно они врубаются и им начинает это нравиться. Это ж не на каменоломне кувалдой камни на щебёнку хуячить.
Так что даже при таком убогом подходе "ради денег" можно рано или поздно озадачиться серьёзно и на путь истинный встать
#414 #858019
>>858016

> читают вводные книжки по питону типа как нотация работает


Ну вот сказали бы что еще знать-то надо, я уже и в ньюжнем треде писал, и в других, никто кроме самих книг по синтаксису языка нихуя не советует.
>>858024
#415 #858022
Посоветуйте книжек по tcp/ip протоколам.
>>858024
#416 #858024
>>858019
Скажи какая тема интересна и что-нибудь посоветуют
Но пока синтаксиса не знаешь ясен хуй читать книги по синтаксису и прочей хуйне, потом sicp на питоне навернуть для общего представления
>>858022
TCP/IP Illustrated
#417 #858025
>>858024
Ну по алгоритмам, например.
>>858028
#418 #858027
>>858024
Книга 1993 года. Не устрарела ли она?
>>858028
#419 #858028
>>858025
SICP от беркли на питоне
Стивен Скиен
>>858027
Ну так и TCP/IP не шибко новая штука
>>858029
#420 #858029
>>858028
Ну раз такое старье советуешь, то наверное годнота. Пойду читать. Спасибо за наводку, анон.
#421 #858030
>>858024
По сетям - очевидный Таненбаум и очевидный Олифер.
>>858036
#422 #858034
>>858010
60-80 руби джуну. Не могли найти несколько месяцев. От отчаянья они уже рекламу в пабликах покупали и объявления в общаге бауманки вешали. Знаю лично человека который от них в Германию съебал, после чего им рубисты срочно потребовались.
>>858044
#423 #858036
>>858030
кстати да
227 Кб, 1200x900
#424 #858044
>>858034
60-80к - эти примерно 1-1.2к$. Не думаю что питон джун получает меньше.
>>858164>>858489
#425 #858052
>>857719
Бамп
#426 #858068
>>856784
полистал книгу, задания довольно простые. без понятия, где ты там сову увидел.
>>858253
#427 #858136
Грустнотреды в /b/ есть. Пожалуйста, сохраняйте тред чистым.
#428 #858155
Хочу сделать веб-сервис с регой, оплатой… личный кабинет, вся хуйня. Что брать для фронта? Достаточно будет бутстрапа какого-нибудь, чтоб красиво было и простые формы почти без жс или лучше сразу брать реакт и делать мощный клиент-сайд на жс?
>>858157>>858175
#429 #858157
>>858155
бекэнд торнадо уже точно
#430 #858162
>>855525
да возьми ты бустрап твитеровский, там ребятки сетку за тебя захуячили
#431 #858164
>>858044

блять вы в своем ДС ахуели в край. получаю 1к причем знаю django/flask + алхимию + angular + postgres+mongo+redis+git+gitflow+hg сам деплою при помощи женкинса который сам настроил + нгинкс и всю хуйню(будь то дебиан или фриибсд, сука я еще докер освою вообще ахуенный буду). где блять такие зп для джунов в 1.2к
>>858171
#432 #858167
>>857945
Бамп вопросам
sage #433 #858171
>>858164
В том же дсе. Ты явно продешевил.
#434 #858175
>>858155
Обратись в тематический тред.
#436 #858253
>>858068
Для кого простые? В главе тебе показывают как крутить педали на велосипеде, а в задании просят сесть в трактор и вспахать поле.
>>858267>>858278
#437 #858267
>>858253
Так и работает обучение погромированию. С подключением.
#438 #858272
решил вкатиться в погромирование
@
жалуешься на дваче что обучающие книжки слишком сложные
#439 #858278
>>858253
Тебе дают базу, ты включаешь голову, и оперируешь той информацией, которую получил.

Или ты хочешь, как долбоеб, типа просто копировать решения, не думая? Прям как в школке, да? Ну и иди нахуй тогда, мудила, свободная касса ждет.
#440 #858343
>>857971
зачем тебе solr? бери elastic
#441 #858366
Привет. Стоит задача запилить вебапп, который связан с бд и по запросам должен выдавать нужную инфу из этой самой бд. Был бы признателен за совет на чем и как это лучше всего сделать. Спасибо.
>>858368>>858380
#442 #858368
>>858366
Любой веб-фреймворк.
#443 #858380
>>858366
Если хуяк-хуяк и в production, то для очень быстро flask + sqlalchemy + paste как http сервер.
#444 #858394
Подскажите нубу что не так.
Вот хочу из директории где работаю импортировать файл, пишу
from . import file
SystemError: Parent module ' ' not loaded, cannot perform relative import
python 3.5
Добавлял в директорию также файл __init__.py, но не помогло, да и нужен ли он тут ?
#445 #858416
В джанго такую херню выдает притом что я использую вспроенный логин. Хуй его что хочет.

>Exception Value:


login() missing 1 required positional argument: 'user'
32 Кб, 693x381
#446 #858418
>>858416
Вот скрин юрлс
>>858458
#447 #858421
>>858416
написано, что ты аргумент user забыл передать в функцию login()
>>858428
#448 #858428
>>858421
Я понимаю, но она там на хуй не нужна.
Только раньше писалось так
'django.contrib.auth.views.login', а с версии 1.10
нужно писать просто логин предварительно импортировав.
Пиздос, в доках нихуя не нашел.
>>858432
#449 #858432
>>858428
Победил.
#450 #858440
>>858416
Ну куда ты блядь в высокие материи лезешь ебаный ты дурак.
#451 #858458
>>858416
>>858418
нахуй ты name передаешь?
>>858519
#452 #858468
Извиняйте за ебланские вопросы, но как из этого собрать апп? http://ru.stackoverflow.com/questions/312433/Как-сделать-поиск-с-помощью-flask
#453 #858479
>>858468
Из ответа на СтэкОверфлоу собрать апп нельзя.
Какой вопрос, такой и ответ.
#454 #858480
>>858468
он тебе неправильно сделал, там нужно после

> # -- coding: utf-8 --


вот это сделать

> import pandas as pandas

>>858804
#455 #858489
>>858044
Жаль по питону нет трейни:(
>>858494
sage #456 #858494
>>858489
Именно та контора не набирает, но ты всегда можешь найти стажировку по питону :3
>>858504
#457 #858502
Есть логаут из стандартной библы Джанго. Так вот, когда происходит логаут из админки то он кидает на страницу логаут из сайта после самого логаута. Если порядок подключения апов ставить Django.admin.auth> app_name то наоборот: при логауте из аппа кидает на страницу логаута из админки. Как это обойти?
>>858507
#458 #858504
>>858494
Гиде?
>>858564
#459 #858507
>>858502
Пока нашел спосбо изменять base.html самой админки Джанго чтобы не писать собсвенный логаут.
#460 #858519
>>858458
name - это название урл паттерна, чтобы к нему в шаблонах можно было по имени обращаться, например
#461 #858526
>>857719
Бамп, блядь, неужели тут все тупые?
>>858534>>858541
#462 #858534
>>858526
ну, во-первых нормально код оформи,на пастебин кинь, например.
>>858544
#463 #858538
Анон, неужели вьюхи в джанге не передают автоматом в темплейты request'ы? Хочу из реквеста прямо выудить юзера, никак не могу.
Задолбался я в словаре отправлять ему params['username'] = auth.get_user(request).username
>>858560
#464 #858541
>>858526
Как минимум один тупица есть.
>>858544
каждый раз разочаровывает #465 #858543
Вчитываешься в чей-то пост с надеждой, а там вопрос про джангу.
#466 #858544
>>858534
Я ж написал, что это все - отдельные циклы
>>858541
Ну я же проебался, вот и сюда пришел помощи просить
>>858548
72 Кб, 720x720
#467 #858546
Ануны, объясните, для чего этот джанго нужен своими словами
#468 #858547
Что в питоне кроме джанги и науки-то есть?
#469 #858548
>>858544
Открой пастебин и кинь туда свой смердячий говнокод.
И тогда может быть тебе помогут, как от джанги отвлекутся.
>>858558
#470 #858549
>>858547
Скриптинг программ.
>>858550
5 Кб, 314x161
#471 #858550
>>858549
Программирование скриптов.
>>858554
#472 #858552
>>858547
web scraping
#473 #858554
>>858550
То бишь скриптинг всякого промышленного ПО, использующего Пердон в качестве скриптового модуля. Написание плагинов, макросов, автоматизация, подключение к этому всему джанги.
#474 #858557
>>858547
Всё что угодно. От драйверов до ГУИ. Просто сделано оно всё как-то ебловато.
#475 #858558
>>858548
http://pastebin.com/efvg8We9
Просто ебучие циклы через функцию, что ж не так.
>>858571>>858572
#476 #858560
>>858538
Если в context_processors в настройках есть 'django.contrib.auth.context_processors.auth', то у тебя в шаблонах уже доступна переменная {{ user }}. Просто делаешь {{ user.username }} и все.
>>858582
#477 #858562
>>857719
Внимание, вопрос! звук бщьдзын-н-н-нь
Что ты продарумеваешь под словами "сделать через функцию"? Тебе все запихать в одну надо?
>>858563
#478 #858563
>>858562
Ты аутист? Ему вместо трех строк цикла нужно написать одну, в виде функции. Ква.
>>858566
sage #479 #858564
>>858504
А ты где живешь?
#480 #858566
>>858563
через лямбду пусть делает, заебали.
#481 #858571
>>858577
#482 #858572
>>857719
>>858558

Вот тебе питоническое решение:
http://pastebin.com/zA5yZdpP
>>858577
#483 #858577
>>858571
>>858572
Благодарю!
Один способ охуительней другого
#484 #858582
>>858560
Понял, у меня не работает потому что я отправляю данные через render_to_response, а там этого не предусмотрено.
а я думал что render_to_response это ультимативно и максимально удобно
>>858583
#485 #858583
>>858582
Используй render() - еще удобнее
#486 #858601
>>857945
Бамп вопросам особенно насчет следующей книги, за которую я возьмусь
#487 #858620
Нуб-френдли PyQt ананасы в треде есть?
>>858630
#488 #858630
>>858620
А нахуя?
>>858636
#489 #858636
>>858630
Спросить вопрос
26 Кб, 1473x168
#490 #858638
В погоне за однострочными решениями, пишу сюда.
Смог уложиться только в три строки.
Есть вариант компактнее?

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

Спасибо.
>>858653>>858680
#491 #858653
>>858638
Специальная олимпиада какая то :)
>>858661>>858663
#492 #858661
>>858653
Типа того, но уже неактуально, справился давно как. Сейчас ради спортивного интереса пробую всякие штуки писать очень коротко.
:)
29 Кб, 1646x147
#493 #858663
>>858653
Вот, например, хелловорлд однострочный на питоне, вдруг кому надо
112 Кб, 680x848
#494 #858665
#495 #858667
>>858663
Забавно, а у меня print('Fuck you, World') работает
#496 #858680
>>859095
#497 #858719
Сколько тут новичков обитает? Может замутим свой проект на питухоне или джанге? Заебало быть вечным студентом.
>>858723>>858884
#498 #858723
>>858719
Мути же, хорошая идея
Но целой толпой новичков ничего не запилишь, только тупить будете вместе в чятике
Так что мути но сам, а что не ясно - спрашивай тут и на стаковерфлоу
>>858756
#499 #858728
Поясните по-быстрому, чего не умеет питон и джанго, что умеют другие языки для веба? Какие подводные камни?
>>858735
#500 #858735
>>858728
изоморфныее приложения он не умеет, потому что догадайся почему. остальное все умеет.
>>858736>>858737
#501 #858736
>>858735
Будто этот олигофрен знает что такое изоморфное приложение. Ему срочно нужно найти хайповую хуйню чтобы зашибать бабло (но соснёт хуйцов, увы)
#502 #858737
>>858735
Я не освесм это имел в виду. Например, слышал, у джанги какие-то проблемы с запросами к БД. Я нюфаня, поэтому не очень понимаю, но там что-то ORM не поддерживает, что-то такое, вот. И говорят, мол, это плохо, приходится писать sql-запросы, а это нехорошо, потому что бд может поменяться.
>>858740
#503 #858740
>>858737
Я бы мог представить твою цитату в диалоге из зелёного слоника и она звучала бы там органично.
>>858742
#505 #858743
>>858742

>2007 год

>>858745>>858749
#506 #858745
>>858743
ВЕРНУЛИ!!!
>>858753
#507 #858749
>>858743
Ну вот из другого дискача цитата, декабрь 15го

>Используя Django, я половину обращений к таблицам реализовывал в чистом SQL, а затем стыковал результаты с данными полученными с помощью ORM.

>>858759>>858764
#508 #858753
>>858745
ПРОИГРАЛ))
#509 #858756
>>858723
А что мутить то? Для джанги на ум приходит только какой нибудь развлекательный сайтик с лайками и комментариями.
>>858762>>858765
#510 #858759
>>858749
этим страдают все orm независимо от языка. но тебе - нубасу джанговской орм хватит еще очень на долго.
>>858764
#511 #858762
>>858756
црм, инет-магазины, дилерские сервсы, да дохуя чего
#512 #858764
>>858749

>Я разработал на Django только один проект.


И он не уточняет когда. может быть в том же 2007-м

Двачую этого >>858759
#513 #858765
>>858756
а давайти луче замутим сайт на джанги что бы чилавечик регался, захадил в лични кобинетик и мог купить кравлир на многа запросав с проксями ... я магу например сделать кравлир распридиленни, асинхронни. а? довайти?
#514 #858774
где можно почитать норм гайды как мне запилить на джанге аякс-запросы через jquery? с жс знаком очень поверхностно, мне бы что-то на уровне скопипастить решение, подставив свои переменные. жквери нужен для того, чтобы не рефрешилась страничка при сабмите комментария, и чтобы ретйилось без рефреша
>>858775
#515 #858775
>>858774
джанго бай экзампл
#516 #858803
>>858468
Чувак, вкури в тему. Сейчас ты являешься одним из тех повылезавших в последнее время ебанутых домохозяек, которые думают что могут в программирование. И дело не в том, что у тебя мало знаний - ты просто неадекватен, ты не умеешь задавать вопросы, ты ленивое хуйло. Пиздуй гуглить, разберись блять во что ты влез и как это работает, прочитай ебаную документацию, раз уж ты решил дрочить фласк. Я блять ни словом тебе не помогу, потому что ты заебешь своими тупыми вопросами меня и всех остальных по всем форумам и тостерам. А самое главное ты заебешь самого себя - высрешь какую нибудь поделку через полгода, и не будешь знать что делать дальше, потому что ты ничему не научишься с таким подходом. Иди читай документацию, находи статьи по теме, не ной что не знаешь английский и бог тебе в помощь такому ебанутому.
>>858806
#517 #858804
>>858480

> import pandas as pandas


Это тралленк такой?
#518 #858806
>>858803
Двачую. Закройте раздел, а то приходят тут и спрашивают всякое.
#519 #858814
>>855104
Nothing
#520 #858884
>>858719
Я новичок. Давай мутить.
41 Кб, 316x311
#521 #858938
Парни, есть строка - высер urllib.request, нужно распарсить и несколько совпадений распихать по переменным. Помню в перле можно было в саму регулярку вставлять конструкции вида (?<_имя_переменной_>re_выражение) или просто \1, есть ли в питоне что-то подобное?
#522 #858939
>>858938
Есть.
>>858986>>858989
#523 #858986
>>858939
А подскажи на примере плиз.
>>858989>>859932
#524 #858989
>>858939
>>858986

>подскажи


покажи
#525 #858999
>>858938
Да он троллит. Нет в питоне такого, только ручками.
>>859010>>859013
#526 #859010
>>858938
Именованные сохранения, вспомнил.
>>858999
Жалко
63 Кб, 666x598
#527 #859013
>>858999
Всё правильно сделал.
>>859022>>859047
#528 #859022
>>859013
Ора, гвидо.
#529 #859047
>>859013
Проклятые перлманкисы не позволили святому Гвидо сделать сохранения?
243 Кб, 784x744
#530 #859060
Читал тут про юникод и регекспы и наткнулся на пик.
Чому текст на пике так распидорасило и как это называется?
Ссылка:
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454
>>859062
#531 #859062
>>859060
ZA҉LGO
>>859066
#532 #859066
>>859062
Спасибо, попробую кастомную распидорашивалку запилить и тригером на сайт повесить.
>>859087
#533 #859074
>>858938
Если кому нужно, нашел схожее в group() из стандартной поставки re
https://habrahabr.ru/post/115436/
>>859079
#534 #859079
>>859074
Ого, спасибо тебе. А как ты так быстро нашел, не поделишься методикой поиска?
>>859085
66 Кб, 461x600
#535 #859085
#536 #859087
>>859066
www.eeemo.net
#537 #859092
Вопрос свежевкатившегося ньюфага:
PyQt:
У меня на форме есть прогрессбар и текст-едит окно сообщений.
Чтобы их обновлять в процессе работы моей программы, нужно создавать отдельный поток на прогрессбар и текстэдит?
Или можно так:
1 поток - работа программы
2 поток - всё, что касается гуя.
>>859093
#538 #859093
>>859092
Второе.
>>859094
#539 #859094
>>859093
Спасибо!
#540 #859095
>>858680
Спасибо! чмок
#541 #859175
>>858663
Проиграл
43 Кб, 815x653
#542 #859198
Объясните нюфагу, как там вообще можно получить подобное задание? Ну очевидно с этим легко справиться, но человека, который только вкатился, никогда не возьмут. Как жить...
98 Кб, 247x248
#543 #859202
#544 #859204
>>859198

> очевидно с этим легко справиться


Мне нет.
нюфаг
>>859206
#545 #859206
>>859204
Если только ты полный ноль в ангельском - тогда да, будут траблы
>>859212
#546 #859208
>>859198
1. Написать крутой cover letter.
2. Сделать по-быстрому и показать ему результат работы когда будешь апплаиться.
3. Или предложить свои услуги за чуть меньший прайс.
Я хз что еще сделать, чтобы тебя заметили
>>859215
#547 #859212
>>859206
А причем ангельский?
>>859231
#548 #859214
>>859198
Какой веб-сайт изображен у тебя на картинке?
>>859215
#549 #859215
>>859214
upwork

>>859208
Вот только мне что-то подсказывает, что я не один такой.
А вообще да, нужно пробовать, без этого точно ничего не получить.
#550 #859231
>>859212
Тебе дают API, дают документацию
Какой дегрод не осилит манипуляции аля "прочитал-вставил-запустил"?
#551 #859243
ПЕРЕКОТ >>859242 (OP)
ПЕРЕКОТ >>859242 (OP)
ПЕРЕКОТ >>859242 (OP)
#552 #859370
>>856028

>загадочнее?


EMACS. Загадочнее некуда.
#553 #859932
>>858986
re.findall() выдает массив
#554 #866733
Хало питорасты. Кто тут знает, где смотреть реализацию pow?

(Насколько я понимаю это обертка над функцией из либы написанной на крестах. Как звать эту либу?)
>>867743>>867745
#556 #867745
>>866733
static PyObject
builtin_pow(PyObject
self, PyObject args)
{
PyObject
v, w, z = Py_None;

if (!PyArg_UnpackTuple(args, "pow", 2, 3, &v, &w, &z))
return NULL;
return PyNumber_Power(v, w, z);
}
#557 #869610
>>855102 (OP)
Господа, помогите разобраться с этими ебучими строками http://ideone.com/Hknw65:
Как получить из последовательности вроде "\xcd\xe8\xf1\xee\xed" строку русской кодировки? Строка приходит из html, при этом латиница там читается нормально, а русские символы именно так.
Тред утонул или удален.
Это копия, сохраненная 10 ноября 2016 года.

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

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