Этого треда уже нет.
Это копия, сохраненная 1 января 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №92 /python/ 1733222 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #92

Предыдущий: >>1720203 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.

Шапка: https://dumpz.org/bASGKD8cCFDf
2 1733245
Аноны, я прочиталуже не в первый раз что try...except серьёзно затормаживает код, и в рекомендациях советуют конструкцию в обще не использовать в крупных проектах.

Как тогда? Через if\else ловить исключения?
3 1733247
>>33245
Это не про питон скорее всего. И вообще сомнительная рекомендация - не пользоваться исключениями для возврата из вложенных функций.

Дурной стиль бросать и ловить исключения внутри одной функции, и дурной стиль использовать исключения для кодирования штатного поведения.
4 1733248
>>33247

>Дурной стиль бросать и ловить исключения внутри одной функции


Почему? Бывают же случаи, когда это нужно, например для всяких HTTP реквестов.
5 1733259
Как быть с ленью? Дрючу питон в рабочее время на телефоне, пишу куски кода которые мне нужны для основной программы дома, но придя домой мне становится лень переписывать то, что я до этого уже сделал. Как это фиксить?
image.png14 Кб, 138x44
6 1733263
все что нужно знать о питонодебилах
7 1733265
>>33259
Не пиши на телефоне, долбаёб
8 1733267
>>33265
Но это интересно и заставляет писать все слова вручную, а не пользоваться автоподстановкой, сам долбоеб
9 1733269
>>33267
Пиши в тетрадке.
10 1733270
>>33269
А в чем разница? В тетрадке я не проверю правильно ли я делаю или нет.
11 1733271
>>33270
Ну. Ты же просил мотивации, чтобы приходя домой хотелось переписывать. Вот и будешь переписывать, чтобы проверять.
12 1733273
Нихуя не понимаю, вот написал я себе простенькую програмку, дальше че? Хочу закинуть на рабочий комп где нет пайтона, как быть? Она же там без ide и самого пацтона хуй запустится?
13 1733275
>>33273
Если помолиться заведомо, то с Божьей Благодатью запустится.
sage 14 1733276
>>33275
Любишь ебаться под хвост псина? Харкаю тебе в еблет
15923110003560.png16 Кб, 1050x1050
15 1733278
>>33276
Господь с тобой.
16 1733281
>>33248
пример такого случая
17 1733296
Сап двоч, вкатываюсь в Python, решаю задачи эйлера. нашёл на просторах это решение 3-ей задачи http://euler.jakumo.org/problems/view/3.html
https://pastebin.com/DiiGRMSm

Объясните пж, как это работает, я вообще не втыкаю. Первые две решил за 5 минут каждую.

Сильно не бейте, первый раз зашёл на борду, треда с вопросами не нашёл
Screenshot20200625-084318Django Offline Documentation.jpg136 Кб, 1060x689
18 1733297
В доках Джанги пишут что "джанго самостоятельно не работает с файлами". Лол что? У меня на локальной машине небольшой проект где некоторое количество png и svg иконок из папки /static периодически рендерятся в темплейтах. Через runserver все работало, когда я задеплою в сеть нужны будут дополнительные свистоперделки что ли?
19 1733302
>>33273

> Дальше что?


Учить чистый Си, хули.
20 1733306
>>33302
Не ну реально нет решения? Гугел советует в ехе завернуть, не думаю что без ошибок получится.
Screenshot from 2020-06-25 09-14-12.png30 Кб, 584x312
21 1733315
>>33296
Минута работы в консоли. Без оптимизаций. Секунда вычислений максимум.
22 1733317
>>33306
Можно поставить питон. Можно смотреть на pyinstaller. Можно посмотреть на nuitka.
23 1733320
>>33296
А что в решении непонятного? Ты тупо раскладываешь на множители самым простым способом, перебором по всем потенциальным делителям подряд.
24 1733330
>>33281
Я не он.
Отправляю запрос (доставка должна быть обязательно), ловлю Timeout на ответ от сервера, запрос уходит в очередь для следующей попытки доставки. Перед этим 3 попытки на доставку. В чем проблема?
Или например ошибка SSL, ошибка логируется для разбора.
Или API отвечает ошибкой отличной от 200 для указания того, что запрос по той или иной причине не был отработан.

При 200 в ответе JSON, при 400 надо просить response.text.
Ну и по поводу замедления это херня. Уж лучше отловить Exception, отработать его, а не смотреть как колом встаёт. Все приложение.
25 1733331
>>33273
Pyinstaller собирает exe c интерпретатором внутри.
26 1733336
>>33297
Да. Деплоить ты же не через рансервер будешь
27 1733338
>>33330
Вот о чём. Дурной стиль внутри функции сначала порождать исключение, а потом его же внутри этой же функции ловить.

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

При этом ловить исключение в функции, а наружу кидать уже новое, своё, как раз нормально.

Заменять исключения на какой-нибудь "return err" конечно не нужно. В питоне исключения поддержаны хорошо. Это не ускорит код.

Рекомендуют отказываться от исключений в некоторых компилируемых языках в ряде случаев, потому что if-else и специальные коды ошибок могут работать заметно быстрее.

Питон же интерпретируемый и не про байтоёбство.
28 1733341
>>33297
Да. runserver не предназначен для продакшена вообще. Ни для статики, ни для много чего ещё.

Сколько помню, от тупо работает в один поток синхронно. К тебе подключится тормозной клиент и весь твой сервер затормозится на нём.

Тебе в любом случае нужны дополнительные свистоперделки.

Смотри на nginx. Но его недостаточно, ещё uwsgi нужен, например.
29 1733359
>>33336
>>33341
Не, я не про это. Я в курсе что придется ставить скорее всего nginx + gunicorn/uwsgi, что значит "django doesnt serve files"? Мои изображения с диска не будут подгружаться или что?
30 1733365
>>33222 (OP)
Написал несколько утилит на питоне для работы с байтами.
Что дальше чтобы подрасти?
data science далеко для меня, веб и ml я уже рассматривал.
31 1733384
>>33359
Не будут, тебе придется прописать url для статики, а в nginx'е прописать раздачу статики по этому адресу. Тот же момент с медиа-файлами, только ты их еще и загружать на отдельный сервер должен
32 1733390
Верно ли я понимаю, что перегрузка методов в Python достигается значением по умолчанию?
33 1733395
>>33384
При желании можно и джанго заставить статику отдавать в uwsgi-режиме, там есть специальные модули для этого, но только не нужно совсем.

nginx сделает это лучше, быстрее, надёжнее и на самом деле через nginx даже проще.
34 1733399
>>33390
В питоне нет перегрузки методов в том смысле, в котором есть в C++ и некоторых других таких языках.

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

В C++, когда ты обращаешься к функциям foo(int x), foo(double x) и foo(int x, int y) компилятор подставит вызов разных функций, которые внутри специально закодированы (mangling). В питоне в любом случае будет вызов одной функции по имени foo.
35 1733454
>>33365
ничего. миллионы джунов-байтоебов бесполезны в отрыве от задач бизнеса.
36 1733540
Сап двач. Вопрос по джанго. Значит у меня есть обычный юзер, и он состоит в команде(или во многих командах), команда это модель. Мне надо сделать чтобы данные для юзера фильтровались в зависимости от которого команды он зашел. Например вы есть в команде А, и вы загрузили документ_1 и документ_2, а также вы есть в команде Б и загрузили документ_3 и документ_4. И получается мне надо добавить в форму логина поле, где бы юзер указывал например код команды. И когда бы он в форме логина вводил код команды А ему бы отображались только документ_1 и 2 и аналогично и для другого юзера который тоже состоит в этой команде. Я понял мне это надо сделать через саб-домены и мидлвейр, но я хз как, и как такое гуглить. Да и сделать это без создания отдельных баз данных.
37 1733545
>>33540

> И когда бы он в форме логина вводил код команды А ему бы отображались только документ_1 и 2 и аналогично и для другого юзера который тоже состоит в этой команде.


В чем проблема отобразить не все документы пользователя, а только те, код комманды которых он ввел?
38 1733551
>>33384
А зачем медиа-файлы на отдельный серв подгружать?
39 1733564
>>33545
Да, только как это обработать. Типа добавить в модель юзера поле под код команды. И когда он логинится, то в это поле вводится значение кода, а когда логаут то это поле очистится?
40 1733579
>>33564
Но у тебя ведь документ - это тоже какая-то модель?

Среди её ключей должен просто быть как пользователь-владелец, так и команда.

Примерно как файлы в юникс-системах, у них есть владелец и группа.

Аналогично и у логин-сессии есть свойство группы-команды. И ты отображаешь только документы, доступные для этой команды.
41 1733584
Лол, в консоли написал from queu import Queue, затнм создал очередь: q = Queue(), написал q.get() и поток выполнения ожидаемо заблокировался (очередь-то пустая), пришлось прерывать исполнение через ctr+C. Только вот после этого интерпретатор вообще отказывается выполнять любые команды даже foo = 10. Поток выполнения блокируется и все, надо через ctr+C также его прерывать, чтобы это прекратить надо новый экземпляр интерпретатора открывать
Это баг или фича?
icon.jpg29 Кб, 150x150
42 1733627
есть ли таблица сравнения python web frameworks?
45 1733633
Каким редактором или IDE пользуетесь для Python? Я вот всё никак не могу выбрать, хочется чего-то легковесного и без телеметрии. Остановился на Sublime Text, но она как бы стоит 70$, не совсем свободный продукт. А зная Microsoft и как они телеметрию в Win 10 встраивают, то VS Code наверное её пропитан повсюду.
46 1733634
>>33584
get(block=False)
get(timeout=1)
get_nowait()
сделать то, что хочешь?
47 1733641
>>33633
Нахуя пользоваться чем-то кроме Пучарма?
48 1733644
>>33551
Потому что захламлять сервер файлами, загружаемыми пользователями - хуевая идея, они должны храниться в отдельном от сервера хранилище и выдаваться оттуда же. Если пойти дальше до какого-нибудь докера - он тебя нахуй просто пошлет, когда ты будешь грузить файлы в контейнер.
49 1733647
>>33641
пайчарм он с закрытыми исходниками. никогда не знаешь что там внутри.
50 1733653
>>33540
Я бы добавил юзеру поле "active_team", устанавливал в нем нужное значение(при логине или когда тебя удобно) и по нему фильтровал. Там и кнопку "сменить команду" приделать не долго.
51 1733658
>>33647
И что? Ты думаешь ты кому-то нахуй нужен, что за тобой следить будут?
52 1733674
>>33633
ну тогда komodo ide . у этих додиков тупо ресурсов не хватит за тобой следить, а редактор с серьезной историей.
53 1733676
>>33633
Ты можешь без анальных зондов и мокрописек с торрента ломануть лицензию сублим текста через хэш редактор, а можешь неограниченное долго пользоваться триал версией, максимальный срок её пользования нигде не оговорен.
54 1733719
Аноны, имею к вам вопрос. У жабы (мелкомягких, циско и т.д.) есть такая штука: экзаменация в оракле. Пара сертификатов дает тебе возможность найти работу по всему миру. Есть нечто подобное у питона?
55 1733721
>>33719

>Пара сертификатов дает тебе возможность найти работу по всему миру


найс маняфантаззи
56 1733731

>найс маняфантаззи



Возможность - это не означает, что каждый обрыган, который имеет два серта, устроится стопудово. А в оракле и прожженный мидл охуеет от подъебок 808 экзамена, так что не каждый василий способен сдать
57 1733778
>>33644
А к css и js файлам это как относится?
58 1733791
>>33634
Уже сделал. Просто интересно, почему терминал повис. Вероятнее всего потому что хоть я и прервал операцию через KeyboardInterrupt, она все равно продолжила выполняться фоном и блокировать main thread?
59 1733839
>>33778
CSS и JS ты просто раздаешь как статиу, они у тебя изначально просто файлами лежат
60 1733873
>>33633

>Каким редактором или IDE пользуетесь для Python?


PyCharm. Если параноик, то можешь заблокировать ему доступ к интернету.
61 1733911
Всем привет, не могу понять как работает этот код
def tester(start):
state = start
def nested(label):
print(label, state)
return nested
F = tester(0)
F('spam')

state - это ключевое слово что-ли? Найти не смог
изображение.png14 Кб, 544x214
62 1733912
>>33911
Сорри, вот так лучше. Выводит spam 0
63 1733931
>>33911

>state - это ключевое слово что-ли?


Нет, обычная переменная. Возможно тебе стоит почитать про замыкания.
64 1733988
прошло 2 года как по хиккански вкатываюсь.
единственное что заметно - начал обрастать программами \скриптами которыми сам регулярно пользуюсь.
база\органайзер\просмотрщик\аплоадеры на диски и тп, всякие игровые кликеры утилиты, перевожу кнопки на понадобившихся китайских прогах питончиком и тп.
приучился дрочить в терминале на винде, с ффмпегом и шлюхами.
потихоньку буду мамкин ноут ломать через смб на её пиратке.
но что дальше?
65 1733991
>>33931
Почитал, но не совсем понял, так откуда берется значение label?
66 1733999
>>33991
F = tester(0) -> возвращает тебе функцию nested, которая принимает первым и единственным параметром строку. Этот параметр и есть label. Вот упрощенный вариант происходящего https://ideone.com/3XDKJc
67 1734003
>>33999
Понял, большое спасибо!
68 1734032
>>1733042 →
Потестировал на своей лагучей убунте, в итоге % ошибок с дедлоком вырос до 80, правда БД запустил в докере мб из-за этого. Но в общем добавлю try catch для дедлоков с повторным запросом к базе, в гайде Mysql по дедлокам они так даже советуют делать
69 1734040
>>33633
Попробуй vim.
70 1734064
>>34040

>vim


Пердольская некропараша из 70х. Нужная только чтоб повыпендриваться "мама смотри я кулхацкер"
71 1734074
>>34064
Ути мой толстенький.
72 1734082
>>34074
Кроме выпендрежа его просто незачем использовать, морально устарел. Есть полнофункциональные VS Code и Атом
73 1734085
>>33454
я учу основы основ, даже могу выдумать простенький процессор и написать для него симулятор, а ты просто не шаришь.
74 1734086
>>34082

>Есть полнофункциональные VS Code и Атом


Для быстрого редактирования отдельных файлов лучше использовать легкий Sublime, а для всего остального есть IDE.
75 1734096
>>34082
Начнем с того, что в отличие от перечисленных редакторов, вим работает по ssh, а значит, покрывает потребности девопсов. А кроме ssh он отлично пролезает через последовательный терминал, например, покрывая потребности разработчиков встраиваемых систем.

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

Вим, конечно, не золотая пуля, но это такая штука, что если ты прошил себе в подкорке один раз все команды, то вряд ли тебе понадобится что-то еще. Не стоит делать громких заявлений, мой юный джуниор.
ssh-readme.gif6,1 Мб, 1686x1080
76 1734102
>>34096

>отличие от перечисленных редакторов, вим работает по ssh

77 1734104
>>34096

>Плагинами отлично догоняется функциональность до плюс-минус полноценной IDE


Нет. Подсветку синтаксиса и дебаггинг напердолить можно, но огромного количества возможностей IDE в виме нет и никогда не будет. Если нужны исключительно хоткеи вима, то проще потратить пять минут и добавить их в IDE.
78 1734113
>>34102
О, надо же, уже сообразили. Впрочем, выглядит как костыль. Насколько это ресурсоемко для серверной стороны?

>>34104
Именно поэтому я написал "плюс-минус". Если сравнивать с каким-нибудь Qt Creator`ом, то понятно, что многих визуальных вещей там не будет. С другой стороны, все зависит от области твоей деятельности. Я, скажем, работаю по бекендам и встраиваемым системам. Мне никогда не нужно было ничего от современных IDE.
79 1734123
>>34113
VS Code вроде можно и в браузере запускать, но я пока не пробовал.

А почему для сервера это должно быть ресурсоёмко? Фактически ты просто пользуешься сетевой файловой системой, а редактор работает на клиенте, тогда как вим ты запускаешь именно на сервере.
80 1734126
>>34096

>в любом контейнере и в любом окружении, потому что вим скорее всего будет доступен там или по дефолту,


Вот нет, и это тоже некоторая проблема. В большинстве контейнеров ВИМа не, его надо ставить дополнительно.

Я сам больше вимом пользуюсь, но это скорее в минус, чем в плюс.

Уметь пользоваться, конечно, очень полезно.
81 1734130
>>33721

>найс маняфантаззи


Анон преувеличивает, но реально эти сертификаты действительно котируются. Циско точно, Оракл и от что-то от МС более-менее тоже.

Потому что они действительно гарантируют, что за тобой какие-то знания есть, в отличии от строчек в резюме.

По языкам программирования и открытым платформам, как Линукс, Постгрес, Докер и др. вроде ничего общепризнанного нет.

Собственно и не понятно что такое знать питон. Для какой-нибудь Джанги ещё можно было бы сертификацию придумать, но чисто для питона лишено смысла.
82 1734155
>>33222 (OP)
class Test:
var = 1
var_list = [var for _ in range(10)]
почему сыпется?
83 1734158
посоны, что по кишочкам пистона почитать, кроме исходников, шоб про менеджмент памяти, про интринсики, про вот это вот всё
image.png11 Кб, 367x261
84 1734159
>>34155
хуй знает
85 1734160
>>34159
это в классе должно быть
image.png22 Кб, 540x397
86 1734161
87 1734162
88 1734163
>>34162
друх, твой лист компрехеншн не знает, что у класса тест есть проп var. поэтому у тебя падает.
89 1734164
>>34163
А почему он не знает?
друой анон
90 1734165
>>34164
патамуш, что лист коптрехеншон сосет переменные из ближайшего скоупа
91 1734166
>>34163
https://pastebin.com/raw/TVsYMA3B
а почему так знает?
93 1734168
>>34165
а пропы класса ты подсасываешь в метод через селф. те можно через селф подсосать проп в скоуп метода и там уже мутить лист компрехеншон
94 1734170
>>34167
потому что это не лист компрехеншон
95 1734171
>>34170
Спасибо анончик, вкурил
96 1734172
>>34165
Попахивает какой-то магической херней. А в данном случае, какой скоуп ближайший? Глобал?
97 1734173
>>34172
ну видимо лист компрехеншон не знает как сосать из скоупа класса(хуй знает это как называется). типа в данном случае лист компрехеншон это функция в которую не передают селф.
image.png18 Кб, 589x418
98 1734174
>>34172
походу да. ближайший скоуп - это глобал
99 1734175
>>34174
Причем игнорируется вложенность классов. А говорят, что в Руби много магии...
100 1734192
>>33271
Это все хуйня для даунов. Если программировать в телефоне, то ослепнешь и станешь овощем за неделю.
Если он хочет буковки сам вводить, без подсказок, то пусть в редакторе код пишет.
101 1734213
>>33222 (OP)
Сап. Не смог нагуглить решение.

Написал небольшой скрипт, который из папки загрузок сортирует файлы по дате и расширению. Скрипт работает без проблем. Когда закинул его в автозагрузку, вспомнил, что он будет открывать консоль при запуске(и видимо переставать работать, если консоль закрыть). Узнал, что для предотвращения открытия cmd нужно запускать в расширении .pyw.

Но скрипт перестаёт работать, если поменять его расширение .py -> .pyw

ЧЯДНТ?
102 1734214
>>34213
Алсо платформа вин10, для py файлов установлен python.exe, для pyw файлов pythonw.exe

То есть оба должны запускаться даблкликом. Первым точно запускается и работает, а pyw работу не выполняет.
103 1734229
>>34213
>>34214
Хоть я и решил это сейчас конвертацией в Windows based .exe, всё равно остаётся непонятным, почему скрипт перестаёт работать при смене расширения и запуске через pythonw.exe

Можно запустить .pyw через python.exe, но тогда консоль открывается так же, как при запуске .py
104 1734234
Анонче, стоит ли браться за kivy, или есть чего попизже? Где то слышал, что кто то жалуется на него, почему? И да, плохо, что рисовалки форм нет у него, но может допилят со временем, хз.
105 1734243
>>34234
все эти ебаные деды прошедшие беспощадную школу андроида просто завидуют.

тут смотря в чем твои цели.
Если ты хочешь найти работу - не берись.
Если у тебе нужно писать простые приложения с минимум взаимодействием с платформенными фичами телефона, типовые приложения CRUD современной эпохи - берись.
106 1734246
>>34234
Алсо, вместо рисовалки форм можешь пошукать программу KViewer.
И даже, кажется, в стандартной демке можно просто набирать KV и смотреть как он отрисовывается.
107 1734249
>>34243
А за что стоит браться, если хочешь найти работу?
108 1734252
>>34249
За Котлин, конечно. Но это займет годы и ты все еще не сможешь писать быстро
109 1734255
>>34175
>>34174
>>34173
>>34172
>>34170
>>34168
>>34167
>>34163
реквестирую знатоков кишочков! поясните позязя жабадебилу, почему так происходит.
110 1734265
>>33259
О, анон, ты - это я, только я дрочу питон на работе в нормальном мониторе, вместо работы
111 1734275
>>34243
>>34246
Всем спасибо за ответы. Просто иногда хочется какой-нибудь гуец знать, что бы не дрочить консольку, как Нео. Да и тестовые задания на собесы присылали такие, что надо в гуе с кнопочками пилить.
Но что бы этот гуй не вымер со временем и не пришлось опять какой то новый учить. Чисто один раз какой то один инструмент познать и всё, понимаете? Просто, что бы, если понадобилось, то всегда смог и это набросать, не обязательно суперсвистопердельный
4.jpg106 Кб, 980x612
112 1734280
>>34275

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



Тогда QT, guizero.

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

Помню, чуть не охуел от прожигателя linux на флешку. Там НЕТ КВАДРАТНОГО ОКНА.
Как это можно было придумать? Кто этот инопланетянен?
113 1734285
Есть такая интересная концепция: most advanced yet acceptable
http://actually.pro/0248.html

>«Лоуи полагал, что эстетическая привлекательность - это, по сути, баланс между двумя переменными: привычностью и уникальностью или, говоря на языке современной психологии, типичностью и оригинальностью; найти оптимальный баланс между этими двумя переменными значит создать наиболее коммерчески привлекательный дизайн.



В сущности, это означает, что делать десктоп на kivy нельзя, но мобильные приложения можно и нужно. И делать мобильные поделухи на QT, Delpi и пр неадаптированных для мобилы фреймворках тоже не стоит. Получится не принимаемая юзером какаха.
architecture-ssh.png43 Кб, 968x314
114 1734292
>>34123
Так я об этом и спрашиваю. У них на сайте написано, что они сами хуярят некий vs code server прямо на машину: https://code.visualstudio.com/docs/remote/ssh

Какие-то отдельные вещи работают через sshfs, но еще ставят свое апи. Ну хз, понятно, что без этого никак, но я не в восторге от засирания целевой системы всякой цугундерной шнягой.

>>34126
Если контейнеры собирал не джун с хлебушком в голове, то будут. Я с некоторых пор по дефолту во все контейнеры начал хуярить вим, нет-тулзы, стрейс и еще пару вещей по мелочи, и остальным говорю так же делать. Места занимает немного, а с учетом того, что у контейнера после деплоя может на быть доступа к репам, неплохо так спасает.
115 1734304
Посоны помогите жабамрази вкатиться в пистон. Почему так работает, а так не работает?
116 1734305
>>34280
Я тоже помню такой исо врайтер. Стильно, модно, молодежно. Прямиком из 2000 года. Спасибо за QT, guizero. Покурю.
117 1734309
>>34304
Почитай документацию, блять. List comprehension
[x for x in list(l)]
118 1734310
>>34304
Потому что блядь пиздуй читать любой мануал, а не просто хуярь как в жабе
119 1734311
Сап гайс, хочу врулить в питон. Нашёл в интернете пару книжек.
A Byte of Python норм? 150 страниц это совсем база для школьников хакеров? Или начинать и Лутца и его 1600 страниц? До этого имел опыт быдлокодинга на PHP в 16 лет, ООП не изучал, знаю примитив.
120 1734312
>>34311
Тебе проблемно официальную документацию почитать? В Пистоне ООП прям ваще для дебилов.
121 1734314
>>34311

>A Byte of Python


Нормас, если перекатываешься с чего то другого

мимо быдложабист

Пиздец конечно, в питоне дохуя чего по-другому. Массив - это значится по ихнему кортеж, фор используют в основном только как форич, нихуя не понятно, что за тип данных, ибо не подписано нихуя при объялении, но интересно
122 1734315
>>34309
>>34310
Посоны, не обессутьте плс. Можете тыкнуть где конкретно читать про эту хуйню?
123 1734319
>>34315
Попробуй набрать прям в коде
help(list)
124 1734344
>>34314
нахуя перекатываться с жабы на питон?
125 1734347
>>34344
Чтобы быть Создателем и получать удовольствие.
Если ты просто кодер за деньги, то не поймешь.
126 1734350
>>34311
Для вката, чем тоньше книжка тем лучше.

Byte of Python - норм.

Есть ещё "Автоматизация рутинных задач.." Свейгарта, там Питон даётся попроще ("для школьников"), зато много практичных примеров.
127 1734363
>>34229
Запускай чрез pythonw.exe .
128 1734364
>>34229
Может? автозапуск из неправильной домашней папки виноват.
Попробуй в начале скрипта добавить:

import os
os.chdir(os.path.dirname(__file__))
129 1734399
>>34347
ебашу за кашу на питоне, наоборот хочу перекатиться жаба->спринг->котлин
130 1734404
>>34399
забудь про котлин, если собираешься в серёзной галере работать
131 1734405
>>34404
если это не андрюха, конеш
132 1734435
>>34404
знакомые на котлине ебашат бекенды, вроде конторы нормальные
133 1734451
Сап. Вопрос больше по стилю.
Раньше где то читал( или мне кажется) что assert в продакшен коде не есть хорошо. Что лучше проверть через try и тд.
Но вот в продакшене Весьма не маленькой фирмы сейчас вижу assert это вообще как нориили неть?
134 1734456
Други, кто сталкивался: ебашу пересылку данных через ajax, все работает за исключением того что имя переменной почему-то меняется
Кратко о сути: я отсылаю на бэк json data с одним элементом posts:
data: {posts: [1,15,34]}
Внутри posts собственно лежит массив с нужными мне id. Только вот на бэке эта переменная почему-то доступна не по имени "posts" а как "posts[]". Че это за хня? Почему джанго добавил эти сраные скобки в конце имени? Ппц с толку сбивает
135 1734460
>>34456

>data: {posts: [1,15,34]}


Где кавычки, если это json, мб из-за этого как раз и неправильно воспринимает
136 1734481
>>34460
Неа, бро, это жс. Тут кавычки вроде бы нужны, а вроде и нет. То же самое и с точками с запятой: вроде нужны, а вроде и нихрена, попробуй в каждой 2й строчке в рандомном васяноскрипте их убрать, с вероятностью в 80% скрипт запустится
137 1734486
>>34456
Похоже, что ты отправляешь не жсон. Посмотри запрос в девтулс.
[] обозначаются множественные параметры в хтмл формах.
138 1734522
>>34344
Я заебался задрачивать джаву. Можно отдохнуть на питонехотя бы на лето? Прочитал зэ байт оф кодэ за пару дней, потыкал в клаву почти наугад, хуяк - запустилось и работает без говна. Написал пип инсталл pyodbc, просто первый попавшийся пример скопипастил - о чудо блять, вот оно, то, что я запрашивал из базы, работает сразу, карл, да я в жизни с жабой такого не видовал, что бы без запердоливания сразу работало всё! И главное - пиздец моментально всё ясно, как и чё куда работает.
139 1734525
>>34522
Если нет анальных танцев, значит плохой язык, не энтерпрайз.
140 1734605
Получил в джанго набор постов через posts = Post.objects.filter(id__in=ids)
ids это список нужных айдишников, если что
Как так же эффективно проверить что каждый полученный элемент из posts - принадлежит кому надо, то есть проверить условие post.owner == request.user ?.. только через цикл for?
141 1734616
>>34605
all(map(lambda x: x owner == request.user, posts)) это пока все, что у меня на уме, нет возможности сделать это на низком уровне (на уровне бд)?
142 1734626
Почему не работает?

>>>html.unescape('&qt;')


'&qt;'
143 1734637
>>34626
А что такое qt? Есть gt.
144 1734638
>>34637
Пиздец я обосрался, сори
145 1734662
>>34605

>Как так же эффективно проверить что каждый полученный элемент из posts - принадлежит кому надо, то есть проверить условие post.owner == request.user ?.. только через цикл for?


Нахуя тебе еще раз итерироваться по выборке, если ты можешь просто отфильтровать сразу по владельцу еще?
146 1734702
>>34363
Так запускал. Один и тот же скрипт, будучи сохранён как .py и запущен посредством python.exe работает, а будучи сохранён как .pyw и запущен посредством pythonw.exe- НЕ работает.

>>34364
Проблема вообще не с автозапуском. Она возникает при обычном вызове через даблклик вне зависимости от директории.
147 1734706
Вопрос больше по архитектуре.

Допустим, я делаю онлайн-игру. Соответственно, мне нужно хранить параметры пользователей. Как сделать это самым правильным образом?

Как я рассуждал:
- при регистрации создаётся объект класса player, в таблице реляционной добавляется запись с идшником этого игрока.
Отсюда ещё вопросы:
- как возвращать пользователю параметры актуальными всегда? При любом действии игрока делать запрос к бд? Звучит не очень производительно.
148 1734788
>>34706
На сервере держать всё в структурах с перидоическим сбрасыванием в базу.
Можешь пользоваться редисом, он ебово быстр. Вообще, большинство любых проблем решается редисом. Базарю, ещё захочешь.
149 1734798
>>34788
Спасибо. Долго в нем разбираться?
150 1734801
>>34798
Да за вечерок можно разобраться для практических задач.
151 1734803
>>34788

>Вообще, большинство любых проблем решается редисом.


Пока не закончится память или он разок не ебнется и ты проебешь важные данные
152 1734804
>>34706
Ты ммо там мутишь, что ли? В базу только бэкапишь данные раз в n минут.
>>34788
Разве редис для чего-то, кроме кеширования используют?
153 1734805
>>34803
Энтерпрайз бигдатовик в треде, все в мускл.
154 1734808
>>34804
Для кеширования используют, как элементарно навешиваемый вариант, как раньше был мемкешед, но он элементарно навешивается и на другие задачи.
155 1734813
>>34805
Ты хотел сказать в постгре.
156 1734814
>>34805
При чем здесь это, если при малейших проблемах с сервером из-за которых ебнется редис ты рискуешь проебать часть данных? Как хранилище какое-то промежуточное хранилище - отлично подходит, но не как полноценная БД
157 1734818
>>34814
Там есть опциональная персистентность.
158 1734821
>>34818
Которая или порежет тебе скорость, или все еще останется шанс, что между дампами базы что-то ебнет и ты проебешь данные
159 1734825
>>34821
Везде может ебнуть в неподходящий момент, и везде это решается при необходимости железной надежности.
160 1734826
>>34825
Принеси примеры использования редиса как БД.
161 1734829
>>34826
Тебе надо, ты и неси.
162 1734830
>>34829
Ты спизданул, ты и неси.
163 1734834
>>34830
По-моему, это ты спизданул и приписал мне.
164 1734861
>>34706
InMemory table для того кто присоединился к серверу.

Только выбери SQL подходящий, точно не MySQL.
Касательно Redis годная идея.
Игрок присоединился - сливаешь все в redis из SQL, а данные в SQL повременно сохраняешь в бэкграунде.
165 1734866
>>34456

> эта переменная почему-то доступна


Потому что нехуй дергать Джангу. Посмотри на FastAPI и Pydantic. Там хоть понятно какой объект получишь из JSON.
166 1734869
>>34804

>Ты ммо там мутишь, что ли?


И да, и нет. Но это так, пет-проект, в свободное время занимаюсь. Из-за отсутствия опыта и специфики проекта сталкиваюсь с тем, что вопросы почти не гуглятся, а основные проблемы возникают именно с построением архитектуры
image.png1 Кб, 123x36
167 1734940
Это больше к верстальщикам наверно но все же касается Джанги и ее темплейтов
У меня картинка практически слитно идет с последующими текстом, на пикриле видно. Как "отодвинуть" текст немного вправо? В html конструкция вроде этой:

<div class="my-shitty-class">
<img src="/images/1.png">
<p> {{post.title}} </p>
</div>
168 1734953
https://ideone.com/9WX9Yw
От нечего делать наваял мини-игру: надо на время угадывать числа, а машина говорит, больше или меньше число надо назвать. Игра идет параллельно с секундомером, который выводит в stderr текущий обратный отсчет. Проблема в том, что в консоли stdin и stderr перекликаются, отчего происходят ошибки. С чего бы это?..

(код надо скопировать и у себя запустить, в браузере работать в любом случае не будет)
169 1734955
>>34953
https://ideone.com/t6RDmV
Вот рабочая версия. Там через очередь получаем это число и в stderr не выводится время, так что крашиться нечему, но все же: почему выводы "перемешиваются" в предыдущей версии?
170 1734969
>>34955
Потому что стандартно stdout и stderr выводятся в терминал.
Можно перенаправить python script.py 2> error.txt
171 1734978
>>33222 (OP)
Как же я ебал ваш Postgres, сука... идите нахер, все кто заверяет, что это лучшая СУБД
Пытаюсь провести обычную миграцию: создал модель Pic и засунул на нее ForeignKey в уже существующую модель Relation. Каков результат? ОШИБКА: столбец news_relation.img_id не существует
Триггерится он именно на поле img = models.ForeignKey(to='Pic', on_delete=models.CASCADE) которое я создал внутри Relation, видите ли какого-то img_id ему не хватает. Пробовал ставить дефолтное значение - ему похеру. И такое уже блять не в первый раз. Просто ну его нахуй
172 1734981
>>34978
Попробую угадать, создал модель Пик и добавил ключ одновременно без миграций между ними?
173 1735027
>>34869
Дучше наверни фундаменталочки и сделай борду.
Гейдев хуйня непредсказуемая и неприбыльная.
174 1735030
>>34940
Добавить пробелов в строку
margin-left: 5px;
Screenshot20200627084731.png79 Кб, 741x738
175 1735050
Есть знатоки? Вкатывают в асинхронность, в материале подается через сокеты, и уменя именно к ним вопрос:
строки 27, 29
Допустим, кто кто установил с нами соединение и послал сообщение
Мы ответили ему хелоуворлдом
Но елды не обращаем внимания, будто нет
Мы вернулись в начало цикла - но клиент ничего нам не присылает
Мы ничего же не получаем, полему соединение не закрывается?
176 1735057
>>35050

>Мы ничего же не получаем, полему соединение не закрывается?


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

Соединение закрывается только в том случае, если был послан специальный tcp-пакет "закрыть соединение".

Отдельная магия есть с пакетами keep alieve и другими.

И ещё, не стоит особо ударяться в селекты в 2020, если ты только именно эту тему изучить не хочешь. Это такой откровенный low-level legacy, сейчас на практике так писать нельзя.

Тебе надо смотреть на asyncio. Глубоко в кишках там те же селекты плюс-минус, но тебе об этом знать не надо.

А asyncio три механизма работы есть, и какой-то аналог селектов, и так называемые протоколы, и совсем высокоуровниевые конструкции. Я бы советовал "протоколы" глянуть в первую очередь, вот для таких задач, как у тебя. Селекты-сокеты уже для самообразования, а не для практики, в том числе в asyncio.
177 1735059
>>35057

>Тебе надо смотреть на asyncio


Да, к этому и иду, просто через генераторы к async\await а там и asyncio/aiohttp

>А почему соединение должно закрыться, если ты его не закрываешь?


Логично.Получается, 27 строка заблочит поток выполения, и будет ждать, пока что то не придет? Зачем тогда вообще проверка if not request?
178 1735060
>>35059
Точнее, видимо, туда придет false если клиекнт пошлет пакет на закрытие?
179 1735077
Сап программач, кто может написать код под задачу

В комнате, в которой заседал президентский совет, были стулья на 4 ножках и табуретки на 3 ножках. Когда все члены совета расселись, свободных мест не осталось, а всего ног у сидящих и у сидений оказалось 39. Сколько было стульев и сколько табуреток?

С меня как обычно
180 1735080
>>34981
Пробовал и так и сяк. Все равно херня выходила. Почему? (а хуй его знает)
Помогла ручная правка файлов миграций, пришлось создать там поле явно, а в следующей миграции его изменить
181 1735082
>>35077
Напиши алгоритм решения, а я напишу тебе код.
182 1735084
>>35082
Вот уравнение сделал:

Пусть в комнате было x стульев и y табуреток.
Составил уравнение для количества ног и ножек.
2 (x + y) + 4x + 3y = 39.
Раскрой скобки и приведи подобные.
2x + 2y + 4x + 3y = 39.
6x + 5y = 39.
Вырази x через y.
x = (39 - 5y) : 6.
Путём подстановки вместо y натуральных чисел, начиная с единицы, подбери такое значение, чтобы x тоже оказалось натуральным целым числом.
x = (39 – 5
1) : 6 – не подходит.
x = (39 – 5 2) : 6 – не подходит.
x = (39 – 5
3) : 6 = 24 : 6 = 4.
Выполни проверку
2 (3 + 4) + 4 4 + 3 * 3 = 14 + 16 + 9 = 39.
Ответ: в комнате было 3 табуретки и 4 стула.

На питоне если можно. Заранее благодарю.
183 1735086
>>35077
пиши сам
184 1735088
m = list(permutations([i for i in range(1,39+1)], 2))
m.extend([(i,i) for i in range(1,39+1)])
for x,y in m:
... (а догадайся блять)
185 1735092
>>35084
Вообще проще. По условию, все стулья и табуреты заняты. Если предполагать, что у всех сидящих по две ноги, то ноги+ножки это либо 5, либо 6.

Итого, уравнение вида 5x+6y=39

Пишу слёту, не проверяю, могу налажать:
for x in range(39//5):
____if (39 - 5*y) % 6 == 0:
________print("Possible solution x = {}, y = {}".format(x, y))
186 1735094
>>35092

>if (39 - 5y) % 6 == 0:


fix, тут 5
x
ну и y перед выводом тоже надо посчитать
187 1735097
>>35084
https://pastebin.com/ddueUCim
Банальная функциональщина, но тебе другого и не надо
188 1735098
>>35097
Только пофикси там, чтобы не

> == 39


а

> == legQTY

189 1735138
вот тут редис советует в онлайн игру, ну сервер - клиенты понятно.
А если я на локальной машине пилю, и у меня поделенные сектора мировой карты обрабатывают отдельные процессы, что лучше использовать для таких целей? Для взаимодействия и хранения карты с общим доступом? Queue или лучше какой апи отдельно? Я тут klepto нашел, и там есть hdf5 словарь-файл. Стоит ли сразу на хдф5 переводить карту мира, или в итоге передача данных через Queue будет быстрее?
190 1735195
>>35097

>функциональщина


> цикл for


Ну ты чего, анон, перегрелся на солнышке?
191 1735225
>>34451

> Но вот в продакшене Весьма не маленькой фирмы сейчас вижу assert это вообще как нориили неть?


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

У меня вот вторая ситуация была, когда у нас появился новый разраб, который знает ГО/ПХП/С++/Реакт/Юнити/Питон, и какой же сука адок он писал.
192 1735231
Сап аноны, кто может перевести с паскаля на питон?

var
a, b, sum, n: longint;
begin
readln(n);

a := n mod 10; // последняя цифра
n := n div 10;
while n > 0 do begin
b := n mod 10;
n := n div 10;
end;

writeln(a+b);
readln;
end.

С меня как обычно с питоном вообще не знаком
193 1735232
>>34451

>Раньше где то читал( или мне кажется) что assert в продакшен коде не есть хорошо. Что лучше проверть через try и тд.


>Но вот в продакшене Весьма не маленькой фирмы сейчас вижу assert это вообще как нориили неть?


Нормально. Не слушай талмутистов. Для них всё говно, что не соответствует трактовкам каких-то других талмутистов-самоучек.

>>35225

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


Например assert очень активно используют в основных библиотеках самого питона. Их пишут и ревьювят те, кто считается, что питон более-менее знает.
194 1735234
>>35231
Для этого надо знать твой грёбаный паскаль. Если ты питон-3 используешь, то:

a := n mod 10
соответствует a = n % 10
n := n div 10
соответствует n = n // 10
цикл while примерно такой же в питоне, см доки

readln будет input()
writeln будет print()
195 1735235
>>35234
От души, щас попробую
196 1735237
>>35231
n = input()
a = n % 10
n /= 10
while n > 0:
----b = n % 10
----n /= 10
print(a+b)
input('Press any button')
197 1735241
>>35234
>>35237
Спасибо, сам только написал работает
198 1735243
Аноны, если я знаю все из этого чеклиста, кроме автотестов, и 2 года опыта работы на дядю, какую зп просить на удаленке? https://pastebin.com/vbqdNVEB
199 1735267
>>35243
Удаленка в России
200 1735307
>>35243
100-150тр
201 1735309
>>35195
Кстати, а пайтон транслирует хвостовую рекурсию как плоскую итерацию? Как всякие хаскелы, рэкеты
202 1735311
>>35243
Это от автора канала Диджитализируй?
Он же это для начинающих советует, лол. Я далёк от знания рынка, но вполне очевидно, что у знания какой-то технологии есть уровень сложности. Понимать основы всего стека в списке и быть профи в этом - разные вещи.
203 1735316
>>35307
Спасибо! Как раз на такую вилку и рассчитывал.
>>35311
Он говорил что эти знания не для конкретно джуна, миддла или синьора. Чем больше знаешь из этого списка - тем ты круче.
204 1735323
>>35316
А можешь пожалуйста сказать, чем конкретно занимаешься? Вебом?
205 1735336
>>35232

> Например assert очень активно используют в основных библиотеках самого питона. Их пишут и ревьювят те, кто считается, что питон более-менее знает.


Использование асертов, глобалок, построение логики вокруг try/except - не лучший подход и тактика, в большинстве случаев можно очень удобно обойтись и без этого.
То что это юзается в основных либах питона, не говорит о том, что это лучшая практика.
206 1735340
>>35323
Да, вебом. На прошлом месте работы занимался в основном созданием api для разных CRM'ок, микросервисов и т.д.
207 1735343
>>35309
Нет, это непитонично
208 1735348
>>35336

>асертов


А тесты ты как делаешь лол? открою секрет: под капотом unittest и ему побоных сидят те же ассерты

>глобалок


Даже ФП не запрещает глобалки. Оно запрещает изменяемые глобальные состояния

>try/except


Настолько же базовый прием как и цикл for, очнись
209 1735360
>>35348

> >асертов


> А тесты ты как делаешь лол? открою секрет: под капотом unittest и ему побоных сидят те же ассерты


Речь не про тесты, в тестах понятно что на этом все построено.

> >глобалок


> Даже ФП не запрещает глобалки. Оно запрещает изменяемые глобальные состояния


А кто запретит юному еблану изменить глобальную переменную локально?
Глобальные переменные - зло.
В погромировании много что не запрещено, но есть методы которые не без оснований считаются не лучшим подходом и это один из них.

> >try/except


> Настолько же базовый прием как и цикл for, очнись


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

Можно делать все что угодно, что не запретит компилятор, но адекватность, красота, удобочитаемость, поддерживаемость некоторый решений вызовет трудности. Вот и все, собственно.
210 1735369
>>35080
Возможно ты создал первую одновременно, оно упало, т.к. пыталось сделать внешний ключ перед созданием модели. Потом ты попытался по другому, но файл миграции с прошлой попыткой остался и оно все время пыталось применить его перед следующими изменениями.
211 1735371
>>35360
Ассерты полезны для того, чтобы проверить, например, корректность передаваемых типов данных в функции и сами значения, то есть ошибки уровня "компиляции". То есть когда функция используется некорректно. И некоторые схожие вещи.

Их плюс в том, что они просты и лаконичны. Ассерты можно отключить, это и плюс, и ограничение. В случае if-throw код нагроможенный будет, тебе надо ещё как-то определиться и задокументировать исключение, логика не понятна.

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

>А кто запретит юному еблану изменить глобальную переменную локально?


>Глобальные переменные - зло.


Это проблема еблана. Он может и методы в классе переписать, и много чего ещё. И проблема питона, в котором нет констант.

Переменная - это то, что меняется. Плохо глобальное состояние, которое может меняться из нескольких мест. Потому что сложно логику изменения состояния контролировать. Причём не важно, напрямую ты переменную меняешь или через какой-то метод, проблема общая. Хотя метод чуть проще контролировать при необходимости.
212 1735385
>>35371

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


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

Вообще, ассерт это лишь кратная форма проверки + выброс исключения. Но в одну строку и с понятным типом исключения. Ассерт не меняет логику кода.

Спич был о том, что талмутизм плох. Когда утверждают, что чем-то пользуются только неучи, это скорее плохо говорит о самом утверждающем.

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

Самая клиника - это фанатичные радетели за чистоту коду.
213 1735640
Не написал ли какой-нибудь добрый человек хорошую подробную книгу по Python, но не такую злоебучую и унылую, как у Лутца?
image.png21 Кб, 569x361
215 1735666
216 1735684
Ещё немного свежих книг. В данном случае по QT5:
https://cp.sync.com/dl/52fd621c0/efu44czu-kkth5757-yjdh5vw2-rwzy963x
217 1735704
>>34304
Причем тут жабамразь, ты просто тупой.
В первом случае ты в list comprehension передаешь аргумент функции, а в другом игноришь переменную от list comprehension и используешь несуществующий аргумент.
218 1735707
>>35704
Так-то второе довольное нетривиальная хуйня, я так сходу и не понял, почему оно не работает, какие-то нюансы со скоупом в компрехеншенах. Тут разобрано, надо будет почитать потом https://stackoverflow.com/questions/13905741/accessing-class-variables-from-a-list-comprehension-in-the-class-definition
219 1735708
>>35666
Достаточно просто [1] * 10
220 1735787
>>35640
как же вы заебали спрашивать это каждый тред

Лутц
Ромальо
Саммерфелд
Байт оф пайтон
Пайтон хард вей

Выбирай
image.png5 Кб, 426x245
221 1735831
>>34304
ммм, годнота пошла
222 1735837
>>35831
Выйди из треда нахуй
223 1735839
>>35666
В теле класса не должно быть блоков кода, просто.
Вобще, не мучай питоновкие классы, это не жава.
224 1735842
>>35839
Почему ж не мучать? Пусть попробует метаклассы: https://habr.com/ru/post/145835/ + https://gitjournal.tech/metaklassy-i-metaprogrammirovanie-v-python/
Вот где реално годный контент
image.png541 Кб, 620x425
225 1735867
>>35842

>метаклассы

226 1735902
Как работают авторизация и аутентификация на веб-сайтах и в мобильных приложениях, которые хранят данные на сервере. Кстати, разницу между авторизацией и аутентификацией тоже надо понимать.

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


Эмм... и как же работает аутентификация или сессии под капотом? Для меня это магия
227 1735916
>>35902
Работает очень просто.
Создаётся при авторизации ключ и его окончание времени жизни(записывается на сервере), этот ключ хранится у клиента в кукисах, при каждом запросе клиент должен передавать этот ключ для проверки на сервере. Сервер хранит инфу по этим ключам в памяти и при запросе от юзера проверяет наличие данного ключа и его актуальность(не сдох ли), если жив, то даёт доступ, если нет - 403 ошибка.
Вангую, что есть ещё какие-то периодические проверки этих ключей, шоб в памяти старое говно не хранить, во фреймворках всяких.
228 1735923
>>35902
авторизация это просто проверка прав на конкретное действие, в rest-фреймворках вроде DRF в классах-контроллерах просто определяется permissions, каждый из который является кастомизируемым классом. В самом даунском варианте это проверка:
if object.owner != request.user:
raise 403Error

аутентификация - процесс "логина" в системе с помощью credentials, хуй знает что там именно происходит, но писать свою аналоговнетную аутентификацию как правило не имеет смысла
229 1735929
Кто-нибудь может пояснить за потоки, процессы, асинхронность в питоне? В чём вообще разница между этими хуйнями? Особенно нахуя нужна асинхронность, если это теже потоки.
230 1735933
Что произойдет ели на одном серве я запущу несколько проектов, в каждом из которых юзается Celery?
Я ж во время настройки указываю переменную окружения, засовывая в нее ссылку на файл settings моег опроекта:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')

А что делать если проектов будет несколько? Переменная DJANGO_SETTINGS_MODULE перезапишется же
231 1735953
Здравствуйте!
Подскажите, пожалуйста, вот можно писать бота для всяких социалочек на джанго, создается апп в нем папка managment/commands и запускается потом приложение по той команде которую определили ему в этих командах, на сколько я понял из информации в интернете. А как его поцепить рядом с сервером? чтобы файл бота исполнялся вместе со стандартной runserver?
Murphys-Irish-Stout.jpg146 Кб, 1024x757
232 1735994
>>35787

> Лутц


Просил посоветовать, что-то кроме унылого Лутца и первым пунктом он же.

> Пайтон хард вей


Такое себе. На любителя.

> Байт оф пайтон


Редкостное говно. Никому не советую. Think Python много лучше.

> Ромальо


> Саммерфелд


Спасибо, анон, посмотрю. Хочется чего-то фундаментального, но не такого заунывного, как у Лутца.
233 1736053
>>33222 (OP)
Почему конструкция:
if os.listdir(dir) != []:
Валидна и мой скрипт работает, а коснтрукция:
if not os.listdir(dir):
Не работает?
Screenshot1.png63 Кб, 1125x829
234 1736075
>>36053
У меня работает.
235 1736117
Двач, есть нормальная статья про асинхронность? Три года её не могу понять. Везде одни заметки пидорасов-хуесосов уровня хабра.
236 1736138
>>36117
Если кратко - мне вот эта помогла когда-то https://www.aeracode.org/2018/02/19/python-async-simplified/
237 1736142
>>36117
А в чём конкретно затык, что именно непонятно, можешь сформулировать?
238 1736154
Часто требуется сохранять много однотипных страниц для последующей обработки. Как бы это делать оптимально?
А то я сжал 7зипом 2 гб в 25 мб и слегка охуел.
В принципе, можно в какую-то key-value базу пихать гзипы, но это тоже не идеал.
imagenew.jpg216 Кб, 1200x798
239 1736166
Товарищи, тут такая проблема.
У меня есть претрейнед модели для распознавания ретина и йоло и код спижженный из интернета.
Но оба файла моделей не распознают знак аварийной остановки. Треугольнык который ебаный.
Как доучить?
240 1736191
>>36154

>2 гб в 25 мб


Лол. они хоть открываются?
Untitled.png5 Кб, 197x324
241 1736204
>>36191
Да.
242 1736207
>>36204
Забавно, надо знакомому сказать, а то тоже жалуется.
243 1736219
>>36142
Ну вот типо есть aync def g(), в котором await f(). И пока f() выполняется, допустим секунд 10, то типо работает тот код, который вызвал g(). Но как он работает? В отдельном потоке? Но тогда, для какой функции создаётся отдельный поток, когда он создаётся, и вообще, в питоне же есть GIL, которая кладёт хуй на параллельность. Почему тогда код с await должен выполниться быстрее?

Ну и ещё, как я понимаю асинхронность пригодна только для выполнения запросов к серверу?
244 1736229
>>36219

>2020


>дрочить на скорость

245 1736240
Билеты в кино: кинотеатр установил несколько вариантов цены на билеты в зависимости от возраста посетителя. Для посетителей младше 3 лет билет бесплатный; в возрасте
от 3 до 12 билет стоит $10; наконец, если возраст посетителя больше 12, билет стоит $15.
Напишите цикл, который предлагает пользователю ввести возраст и выводит цену билета.


Решил сделать так -
message = input("Print your age")
message = int(message)
if message < 3:
print("Price = 0$")
elif mes == [3, 12]:
print("Price = 10$")
else:
print("Price = 15$")

Но после второй строки терминал выводит ValueError: invalid literal for int() with base 10: ''
Чяднт?
И как можно иначе написать цикл?
246 1736247
>>36240
try:
message = int(message)
except ValueError:
pass
247 1736255
>>36240
Или так int(float(message))
248 1736262
249 1736263
>>36255
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: ''
250 1736264
>>36229
Мне-то вообще на неё посрать, но некоторые таки просто текут, когда выходит новый хуйнянейм фреймворк, на 5% быстрее, по которому нихуя документации нет, и сам он вчера вышел, и бегут всё на нём переписывать.

Но тут типо, используются потоки, то это равносильно обычному коду, и потоки по сути не нужны.
251 1736270
>>36263
?

message = int(float(input("Print your age")))
if message < 3:
print("Price = 0$")
elif message == [3, 12]:
print("Price = 10$")
else:
print("Price = 15$")
252 1736272
>>36264
Сомнительное развлечение для красноглазиков.
253 1736273
>>36219
Нет, идея асинхронности в том, что есть специальный цикл выполнения заданий.

Для тебя, как для разработчика, логика в том, что твой код работает последовательно и в один поток, переключение исполнения возможно только в тот момент, когда у тебя в коде будет await (на самом деле чуть сложнее).

В тот момент, когда ты делаешь await (точнее await для future-task, но пока не существенно), в этом момент asyncio лезет в цикл заданий и смотрит, что там у него в очереди, и переключается на следующую задачу.

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

В этом ключевое отличие от обычной многопоточности. Там переключение происходит в случайный момент времени. Из-за чего возникают проблемы синхронизации, race conditions и т.п.

Как и многопоточность, асинхронность нужны для того, чтобы одновременно вести несколько потоков исполнения. Это не обязательно про производительность. Представь, что ты чат делаешь, где несколько клиентов к серверу подключены. Тебе их надо всех слушать и перекидывать сообщения от одного другому. Тут или многопоточность, или асинхронность.
254 1736295
>>36273
Но ведь долгие вычисления и с async будут выполняться столько же. Они же в том же потоке, а соответственно используют один процессор.
255 1736305
>>36295
Да. Асинхронность никак не увеличит производительность завязанных на процессор задач.

Асинхронность - это один из механизмов переключения потоков исполнения, когда твоей программе необходимо обслуживать несколько потоков сразу.
256 1736306
>>36305
А у нее есть подводные?
257 1736311
>>36306
Везде они есть. В случае asyncio их немало.
258 1736319
>>36305
А если допустим есть две async функции A и B. Как я понимаю, в функции A дойдёт до await, запустится функция B, в ней тоже дойдёт до await. А потом? Программа будет простаивать, пока не завершится один из await? Допустим, в функции B await завершился. Получается, после этого выполнится оставшийся код функции B, а затем основной код будет ждать, пока там доработает await в A, функция A, программа на этом завершится?
259 1736330
260 1736338
>>36330
А можно ли самому написать функцию, которую можно будет вызвать с помощью await, или это работает только с asynctime и запросами к серверу?
261 1736340
>>36338
Любую асинхронную функцию ты должен вызывать с помощью await
262 1736348
>>36319
Оператор await означает "ждать результата функции". Ты можешь, в принципе, запустить функцию и не ждать её результата, например как
asyncio.create_task(some_function())

Идейный смысл оператора await - это "здесь я жду результата функции, при этом разрешаю в это время запустить другие потоки исполнения".
263 1736352
>>36340
А если в ней внутри будет что-то вроде "много много вычислений"?

Допустим, такую функцию эвэйтят из функции A. На месте await управление тоже переходит к функции B? В которой вызывается await для ещё одной функции со множеством вычислений. После этого начинает наконец-то выполняться кода для функции, вызванной из A? Потом для функции, вызванной из B? А потом завершается функция A, функция B?
264 1736355
>>36352
Если у тебя куча синхронного кода - ты пойдешь нахуй. Читай блет, там объяснено >>36138
265 1736358
>>36348
Но ведь в то же время вся асинхронность работает в одном потоке?

Тогда сразу же за "ждать результата функции" должно начаться собственно само выполнение этой функции. И тогда получается что во всём этом нет смысла. Или вы это время выполняться начинает какая-то левая функция, а выполнение ожидаемой функции отложено на неопределённый срок?
266 1736363
>>36358
Асинхронность работает в одном потоке процессора, но внутри программы может быть несколько логических потоков исполнения. Одновременно работает один. Но потоков несколько. Периодически какой-нибудь приостанавливается, и отдаётся управление другому потоку.

Особенность async-await в том, что переключение возможно только в момент await (не всегда, чуть хитрее, тут подводные камни есть). В то время как в случае обычного threading исполнение может в произвольный момент времени переключиться.

Оператор await нужен для того, чтобы логика твоего кода смотрелась синхронной. Чтобы не было того callback-ада, как это на JS бывает, если не пользоваться там async-await, которые появились далеко не с начала.
267 1736384
>>36363
Вроде начинаю понимать. Просто до этого было впечатление, что у этого всего есть только два варианта использования. Либо await asyncio.sleep(10), либо await request.get(google.com) а остальное смысла не имеет.

Так получается, в точке, где стоит await, поток выполнения может перейти на любое другое место в коде?

Т.е
1) может начать выполняться другая async функция с самого начала
2) может начать выполняться код после await где-нибудь в другой асинхронной функции, которая собственно уже выполнилась до await, и то, что было внутри await, в ней тоже выполнилось
3) а может начать выполняться какая-нибудь функция, которая раньше не выполнилась, т.к. перед ней стояли await, и на этом месте поток выполнения переключился
268 1736389
>>36384

>либо await request.get(google.com)


Библиотека реквест синхронная, так ты сделать не сможешь
269 1736412
>>36389
А остальное ок?

А асинхронная библиотеке для реквестов содержит что-то системное, и на самом питоне такое написать нельзя? Там типо к функции запроса периодически возвращается поток выполнения, и проверяет, не завершился ли запрос?
270 1736430
Здрасуй Двач суть такова: хочу питон-бота в тилеги с АПИ Двача.

Классы для этого API никто за историю доски не писал? Мне б одним глазком посмотреть.
271 1736446
>>36412
Остальное ок.
Не ебу как именно устроено aiohttp (или другая библиотека для запросов) внутри, но почти все библиотеки питона синхронные и просто будут блокировать тебе исполнение асинхронного кода (пока ты не перейдешь на их асинхронные аналоги). Они и так на питоне, просто выполняются синхронно и блокируют выполнение.
272 1736490
>>36384
Исполнение кода любой функции, вызовов других функций, запуска задач через asyncio.create_task и др. идёт синхронно, не прерываясь, до тех пор, пока не встретиться await.

Причём специфика питона, что await должен быть для future-объекта (функция возвращает объект такого типа). Как только это происходит, исполнение блокируется и передаётся в менеджер по обработке задач. Этот менеджер смотрит на другие задачи, которые стоят заблокированные, и решает, кому передать исполнение. После чего та, другая, задача разблокируется. Примерно так.

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

То есть идея проста. Есть задачи. Есть менеджер, который переключает задачи. Переключение с задачи А на задачу Б может произойти только в тот момент, когда задача А разрешит. Для этого она блокируется в месте вызова с await, и исполнение переходит к Б. Потом через какой-то момент Б делает тоже какой-то await, и исполнение переходит к А опять, она продолжает работу из заблокированного места, если там, конечно, результат уже готов.
273 1736515
Блин, подскажет кто как правильнее работать с Гитом: находясь на даче где фактически не было интернета, дописал код в некоторых файлах, а пару новых файлов еще сверху докинул
Пришел домой, скопировал файлы в папку с проектом, заменив предыдущие, только хотел сделать git push, как он мне говорит что push rejected. Походу ему что-то не понравилось из-за замены доков. Как быть-то? Как файлы проекта объединять?
274 1736581
>>36515
git add
git commit
275 1736593
>>36191
Ну так архиваторы и эффективны там, нде очень много очень похожих данных. А вот если ты будешь сжимать фапапку, в которой джипеги, пнг, гиф, мп4, вебп и вебм, то вообще не выставляй сжатие, его не будет.
276 1736598
>>36581
Что add? Я заменил исходные файлы на новые через Ctr+V, они уже были в Гите
277 1736623
>>36430
Бамп вопросу про API 2ch
image.png956 Кб, 900x600
279 1736631
280 1736652
Можно ли в питоне перехватывать события как в жс?
В dom-документе например можно поставить событие onclick="myFunction()" на любую button и когда юзер нажмет на нее, то запустится установленный коллбэк. А есть события по типу onkeydown которые срабатывают (внезапно) при нажатии на клавишу down
Как перехватывать такие события в Питоне? Про gui я пока и не говорю, как в терминале перехватить событие по типу onkeydown? Единственное что я видел как перехватывается и обрабатывается это ctr+C но это стандартное клавиатурное прерывание для интерпретаторов
281 1736658
>>33222 (OP)
Устанавливал кто левые пакеты js внутрь своего веб-приложения? Как это работает?
У меня есть приложуха на Джанге, как и куда установить дополнительный жс-пакет, который мне нужен? Допустим я сделаю npm install, но как потом использовать его скажем из файла index.js, лежащего в /static?
282 1736685
>>36652
Ты сам подумал, что написал?

У тебя server-side язык, как ты на нём будешь перехватывать события браузера? Ты и на node.js их перехватить не сможешь.
283 1736688
>>36652

>Про gui я пока и не говорю, как в терминале перехватить событие по типу onkeydown?


А, если про это, то смотри на всякие curses и т.п. терминальные вещи. В принципе это возможно, но есть зависимость от ОС и терминала, и не очень красиво это.

Логика работы с терминалом сильно отличается от логики работы в браузере.
284 1736692
Есть функция вычисляющая и отображающая на графике рост населения в указанный промежуток. Мне нужно чтобы выводился год когда население перескочило отметку, допустим, 4.5 миллиарда человек, но ничего не выводится..

import matplotlib.pyplot as plt
from math import pi, atan
def arcctg(x):
arc = pi/2 - atan(x)
return(arc)
def population(t):
N = 172/45 arcctg((2000 - t) / 45)
return(N)

a = int(input())
b = int(input())
n = 100

h = (b - a) / (n - 1)
x_list = [a + h
i for i in range(n)]
f_list = [population(x) for x in x_list]
line = plt.plot(x_list, f_list)

#Вот тут ничего не выводится
for x in x_list:
if round(population(x)) == 4.5:
print(x)

plt.setp(line, color = 'blue', linewidth = 2)
plt.gca().spines["left"].set_position("center")
plt.gca().spines["bottom"].set_position("center")
plt.gca().spines["top"].set_visible(False)
plt.gca().spines["right"].set_visible(False)
plt.show()
284 1736692
Есть функция вычисляющая и отображающая на графике рост населения в указанный промежуток. Мне нужно чтобы выводился год когда население перескочило отметку, допустим, 4.5 миллиарда человек, но ничего не выводится..

import matplotlib.pyplot as plt
from math import pi, atan
def arcctg(x):
arc = pi/2 - atan(x)
return(arc)
def population(t):
N = 172/45 arcctg((2000 - t) / 45)
return(N)

a = int(input())
b = int(input())
n = 100

h = (b - a) / (n - 1)
x_list = [a + h
i for i in range(n)]
f_list = [population(x) for x in x_list]
line = plt.plot(x_list, f_list)

#Вот тут ничего не выводится
for x in x_list:
if round(population(x)) == 4.5:
print(x)

plt.setp(line, color = 'blue', linewidth = 2)
plt.gca().spines["left"].set_position("center")
plt.gca().spines["bottom"].set_position("center")
plt.gca().spines["top"].set_visible(False)
plt.gca().spines["right"].set_visible(False)
plt.show()
285 1736699
>>36593
7z, насколько я помню, умеет строить словарь не для каждого файла отдельно, а общий. Благодаря этому заметно больше эффективность сжатия большого количества мелких однотипных файлов.

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

zip-архив - это в некотором роде файловая система, в котором лежат упакованные файлы
7z-архив - это скорее файловая система, упакованная в архив. То есть последовательность другая.

В принципе юниксовые tar + gz/bz дадут аналогичный эффект, как и 7z.

>>36154

>А то я сжал 7зипом 2 гб в 25 мб и слегка охуел.


А что будет, если сжать обычным зипом? Или gzip, если в линуксе работаешь? Возможно ты и так получишь очень хорошее сжатие, пусть и меньше, чем 7z. Если ты сожмёшь с 2 гб до 200 мб вместо 25, это всё равно имеет смысл, но ты сможешь упаковывать и распаковывать файлы прозрачно, налету.

Смотри на модули gzip и bz2 в питоне.
286 1736705
>>36692

>if round(population(x)) == 4.5:


Ты округляешь до целого числа и пытаешься его сравнивать с дробным.

Как-минимум тебе надо делать round(population(x), 1) == 4.5 - это округление до 1 знака после точки

Но это очень багоёмко, опасно сравнивать явно нецелые числа.

Самое правильное сделать if population(x) >= 4.5. Если округлять, то брать модуль разности.
287 1736709
>>36705

>population(x) >= 4.5. Если округлять, то брать модуль разности.


Точнее, в случае, если ты хочешь выделить специфичную зону, то самое правильное делать
if 4.5 <= population(x) < 4.6:

И читаемо, и лишний действий нет, и достаточно гибко.

Но тоже багоёмко, поскольку ты выделяешь зону, а не границу.

Условно, у тебя в один год может быть 4.43, а на следующий 4.66? и всё, зона утеряна. Поэтому тебе, скорее всего, надо именно искать больше, а потом сразу выставлять флаг, что зона найдена.
288 1736723
>>36658

>npm install, но как потом использовать его скажем из файла index.js, лежащего в /static?


Сбилдишь и подключишь в индекс, по-идее так
289 1736750
>>36699
Да это всё понятно, это т.н. солид архив с большим словарем, всё жмется как один большой файл, грубо говоря, так что все повторения, коих большая часть в хтмл, легко ужимаются.
Гзип же просто последовательно жмет скармливаемые ему данные.
Вот хотелось бы что-то среднее, лол.
image.png336 Кб, 640x360
290 1736809
Аноны, подключчил, значица тинькофф апи, получаю через стримминг (Streaming) японские свечи (объем, максимальная цена в свече, минимальная, уена входа в свечу, цена выхода), внимание вопрос:
Как то можно данные из стриминга выковыривать? Например цену входа и выхода сохранять в список?
Костыльный уродский бот КоДой 291 1736810
Господа, нужна помощь, написал простенького бота, что бы голд получать в игре небезызвестной,(но не в корстных целях, просто опробовать себя). Так вот суть, бот агрит мобом и собирает лут, координаты приходится костыльно выставлять. В голове есть идея, что бы он на клике по мобу записывал координат и потом (якобы) проводил прямую к моему персонажу, но не доводил до конца а останавливался где то радиусе, приблизительно, 100 пикселей. Вроде пытался через мат уравнения решать, но не получилось. Помогите конченому найти путь к истине
292 1736811
>>36809
Анон, в алготрейдинг пытаешься?
293 1736817
>>36750
Так может тебе просто парсить это дело и хранить html-шаблон и данные отдельно?
>>36809
А чем проблема, обычный json же, не?
294 1736822
>>36817
Сначала распределенно выкачивается весь набор, потом уже разрабатывается и тестриуется парсинг.
295 1736915
>>36709
спасибо, из головы совсем вылетело >=
296 1736951
Анон, насколько глубоко нужно знать python (именно сам язык, не фреймворки) чтобы устроиться миддлом? Я про стандартную библиотеку и разные питонячьи особенности языка.
297 1736967
>>36951
давай сразу тимлидом, чо уж там...
298 1737048
Так блин, решил залезть в этот ваш питон чтобы наваять по-быстрому говно для бэка на flask или django
В темплейте закинул <script src"/main.js"> а после запуска браузер мне пиздит что такого файла якобы нет. Че это такое?
299 1737053
>>37048
если надо по быстрому, то лучше использовать то, что знаешь
а так скорее всего не указал серваку откуда брать main.js , мб надо указать путь к статике или типо того
300 1737058
>>37053
Какой еще путь к статике? Они в одной директории лежат
301 1737072
>>37058
Должна быть отдельная папка статик, эта папка должна быть указана в конфиге фласка, эту папку надо не забыать в хэдере подключить к ХТМЛу
302 1737084
>>36809
долбоеб не умеет в printscreen зато ебашит торгаша, спешите видеть.
>>37058
А откуда фреймворк об этом знает, ебобобо? Так и напиши что SRC там-то, TEMPLATES - там-то.

<script type="text/javascript" src="{% static "js/my_external_script.js" %}"></script>
303 1737109
>>37048

>а после запуска браузер мне пиздит что такого файла якобы нет


Для начала проверь в консоли браузера, к чему он пытается обратиться. И проверь, что будет, если попробовать выкачать этот url.

Вопрос в настройке статики. Тут есть немного магии, своя в зависимости от фреймворка.
изображение.png2,7 Мб, 2000x2000
304 1737121
Как доучить обученный файл моделей retina net или yolo?
Нужно чтобы распознавало аварийный треугольник. Она не знает такой знак.
305 1737214
Не пойму нихрена. Есть функция на проверку айпишников. Почему в винде все айпишники в локальной сети, даже несуществующие возвращают result.returncode == 0 и соответственно True, а в линуксе всё отрабатывает без проблем и не сущестующие айпишники в локальной сети выводят False.

import subprocess
def ping_ip(ip):
result = subprocess.run('ping {}'.format(ip), shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
encoding='cp866')
if result.returncode == 0:
return True
else:
return False

print(ping_ip('172.88.1.253'))
306 1737251
>>37214
мы не знаем
заюзай pying, там вроде ок все
307 1737252
>>37251
pyping
быстрофикс
308 1737383
Ебать, поставил простенький жс-скрипт в темплейт:

<script type="module" src="{% static 'index2.js' %}"></script>
<script src="{% static 'js/test1.js' %}"></script>

Внутри модуля index2.js обычная конструкция:
import {Sortable} from './@shopify/draggable'

При подгрузки страницы браузер в консоли выдает мне ошибку: Loading module from “http://localhost:8000/static/@shopify/draggable” was blocked because of a disallowed MIME type (“text/html”). Кто-то сталкивался? Погуглил, но там все вокруг Ноды-жс вертится, а у меня Джанго... Че это за хрень?
309 1737386
>>37383
Тебя забанили в Гугл ? Middlware CORS
310 1737408
>>37383
Апдейт: убрал багованный импорт, рандомно потыкал пакеты из node_modules, засовывая их в <script> и раз на 20й все внезапно заработало
Теперь могу официально именовать себя жс-разработчиком

>>37386
Че? Вообще хуй знает что это, гордому жс-боярину не пристало мараться о такое
311 1737410
>>37214
На первый взгляд, MSDN никак не специфицирует возвращаемое значение: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ping (win server, но все же). Одинаковые названия программ еще ни о чем не говорят.
312 1737413
Сап, двач. Какие вопросы задают на middle/senior собеседованиях?
313 1737419
>>37408

> Безопасность и изоляция данных во фронтенде


> гордому жс-боярину не пристало мараться о такое


))

Фиг с ней с джангой и ее middleware, но CORS - это достойная тема для изучения.
314 1737427
О, тут жава-еботы накинули
https://habr.com/ru/post/508674
315 1737451
>>37413
На самом деле, технические вопросы примерно такие же. Свежие выпускники без опыта точно так же могут отвечать на сложные вопросы.

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

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

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

Ну и иногда под этими лычками можно ожидать просто вопросы про достаточное или экспертное знание какой-нибудь технологии. Тут уж зависит от того, зачем им разработчик и насколько все в огне.
316 1737495
Докупил место в облаке и дозалил все книги треда из всех истоничков.
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6

Принимаю реквесты на книги от анона.
P.s. Было бы неплохо заняться и структурировать все книги по папкам и подпапкам.
317 1737499
>>37451
Антон, немного странный вопрос:
Есть ебо-продуктовая компания, на 20 человек, основной упор на мобилку и юнити, есть 1.5 бэкэндера(я среди них). Задачи простые, типа добавить модели в БД, подключиться к апи и выкачать данные для маркетинга, запилить новые простые сервисы. Я вроде как мидол и собсна вопрос: есть ли, в таком контексте, шанс вырасти или лучше бежать и искать что-то лучше? По ЗП все ок, но вот унылые таски..
f1d1a443290f0bec7cf8c276e502df0a.png59 Кб, 1875x898
318 1737504
>>33222 (OP)
Почему, когда в PyCharm я юзаю дебаггинг, то выскакивает ошибка "pydev debugger: process 30524 is connecting" (число может меняться). Как избавиться от неё, чтобы дебаг работал нормально? Пикрил.
319 1737549
>>37495
Где пиратские сканы Лутца 5 издания?
Постоянно использую Седер_Н_Python_Экспресс_курс_3_е.pdf в качестве шпаргалки. Ничем особенным не выделяется, но маленькая и не перегружена подробностями.
Неплохо держать под рукой навигационный справочник рецептов : Бизли Д., Джонс Б. К. Python. Книга рецептов / пер. с анг. Б. В. Уварова. – М.: ДМК Пресс, 2019. – 648 с.: ил.
(не скан)
Так же был удивлен, что вместо кучи книг по pandas, лучшей оказалась самая древняя от самого создателя pandas Маккинни_У_Python_и_анализ_данных.pdf (скан, )
(вообще в pandas 1.0 кучу слегка поменяли интерфейсы и ряд примеров не заработает)
video2020-06-3009-21-13.mp41,7 Мб, mp4,
640x360, 0:16
320 1737557
>>36817

>json же, не?


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

>>36811
Да какой там. Хотя бы сигнализатор для начала нормальный написать бы. А вообще задумки кое какие имеются, но без фанатизма.
321 1737559
>>37084

>долбоеб не умеет в printscreen


Спасибо за вектор направления, но поясни поподробнее, гугл хуйню выдает по запросу python printscreen
323 1737574
>>37557
У тебя твой "стриминг" печатает в терминал какой-то получаемый из апи объект, в виде справочника (dict). В чём проблема доставать из справочника нужные тебе цены?
out = {
\t'Цена открытия': dict,
\t'Цена закрытия': dict[c]
}
324 1737575
>>37574

>\t'Цена открытия': dict,


\t'Цена открытия': dict[o],
image.png233 Кб, 709x226
325 1737579
image.png160 Кб, 1856x873
326 1737580
>>37575
Одно из двух: или я тупой, или я тупой.
Как прикрутить твоё решение к моему коду?
327 1737582
>>37579
К сожалению ты слишком туп. Все просто было бы сделать через threading. Один тред слушает входящие данные, второй парсит, третий пишет в бд или файл для визуального разбора.
Я бы с таким набором mongo, redis, clickhouse использовал. SQL для истории, если потом строить графики поведения.

Я бы ещё и асинхроночки добавил, как у меня сейчас даже вебсервис на ней. Uvloop берешь и ебашишь.
328 1737583
>>37582
Ну да, многопоточность мы еще не проходили и асинхронность тоже. Но можно же и в одном потоке это сделать пока что?
Куда прикрутить твоё \t'Цена открытия': dict? Или в одном потоке это прям ну вообще не прокатит?
Screenshot1.png38 Кб, 1479x371
329 1737588
>>37580
Залезть в openapi_streaming, посмотреть какие ещё там есть функции, может там есть готовая функция экспорта данных куда-либо. Либо самому написать функцию, и вместо print_event вызывать.
Когда ты первый раз спросил, я вообще понял пикрил.
330 1737597
>>37588
Ну нее, твой пикрил я и сам умею. Но вот странность, кроме указанных мной в исходнике, там больше нет функций. Можно добавить другую акию только (до 8 штук). Я и говорю, смотреть можно, а забрать нельзя
331 1737607
>>37251
>>37410
Ок, спасибо
1304376955947.png457 Кб, 600x450
332 1737609
>>37557

>Видос


Чувак, ты так угараешь? Это какая-то постирония или уже метаирония?
333 1737622
>>37609
Это я бабуин, записывал для другого бабуина вообще, не для треда, а типа "пасатри, как я могу"
334 1737630
>>37609
нюфани в питон треде просто охуевшие
335 1737631
>>37495

>Принимаю реквесты на книги от анона.


>P.s. Было бы неплохо заняться и структурировать все книги по папкам и подпапкам.


Добавь эту книжку по asyncio
https://sharefiles.app/download/9103f94448be958d735836791a6f1bc6066cdc3c
336 1737649
Нужно ли совать в гит директорию /.idea из пичарма? Или лучше в .gitignore ее?
337 1737658
>>37649
Да нахуй она там нужна. Коммить только исходники
Screenshot1.png40 Кб, 1897x591
338 1737683
>>37597
Ну как-то так, чтоб в прямом эфире это писалось пока не нагуглил.
339 1737699
>>37683
Брат, спасибо, что заморочился, но мне не рандомные числа нужны, а конкретно из функции run_stream_consumer() из апишки openapi_client.openapi_streaming
340 1737726
>>37699
Ты тупой? Я в качестве твоей функции run_stream_consumer() написал свою функцию, которая принтит рандомные котировки.
Вторая функция в другом процессе запускает первую функцию, перехватывая то, что она принтит. Сложить первое и второе надеюсь сможешь?
341 1737750
>>37726
Я тупой, да. Сейчас попробую, спасибо
image.png31 Кб, 996x197
342 1737759
>>37683
Ну нет Popen в моём run_stream_consumer (и на PIPE уверен, заругается)
343 1737762
>>37759
СОЗДАЙ ОТДЕЛЬНЫЙ ПИТОНОВСКИЙ ФАЙЛ, ОЛЕНЬ, YADOLBOEB.PY НАПРИМЕР, В ТОЙ ЖЕ ДИРЕКТОРИИ, ГДЕ ЛЕЖИТ streaming.py

И В НЕГО ЗАСУНЬ КОД:
import subprocess

with subprocess.Popen("streaming.py", bufsize=1, stdout=subprocess.PIPE, universal_newlines=True) as p:
for line in p.stdout:
print(f"Ленивый алгодаун {line}", end="")
image.png40 Кб, 1030x210
344 1737764
>>37762
Сорян ,я в тот раз не ту пикчу прицепил
345 1737765
>>37762
И ЗАПУСТИ ЕГО. ОТСТУПЫ ТОЛЬКО НЕ ПРОЕБИ.
346 1737772
Создать несколько тредов и в каждом намутить asyncio.loop - так вообще делают? Выглядит стремно
347 1737774
>>37772
Звучит бессмысленно. Я бы понял ещё мультипроцесс.
image.png58 Кб, 879x388
348 1737776
>>37765
А вот с твоим subprocess тест
349 1737787
>>37776
Либо вместо Popen попробуй run, либо добавь в код:
import sys

params = dict()
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
params['startupinfo'] = startupinfo

и добавь в параметры:
with subprocess.Popen(..., params)
350 1737788
>>37787

>with subprocess.Popen(..., params)


перед params 2 звёздочки
image.png72 Кб, 965x474
351 1737807
352 1737834
>>37762
О, норм тема. А я могу так парсинг и запись в файл мутить для повышения производительности? Есть допустим основной скрипт streaming.py, который скачивает html файлы а затем subprocess.PIPE передает их второму скрипту parsing.py (который собственно и осуществляет вызов subprocess.Popen(["python", "streaming.py"],) и вот он уже парсит эти файлы и записывает нужные результаты в файл
Будет выигрыш в производительности?

(а если еще и написать 3й скрипт writing.py, который будет получать распарсенные данные от parsing.py и записывать их в файлы... так можно? Или смысла нет?)
353 1737837
>>37631
Готово
>>37549
Окей, займусь
354 1737869
>>37834
чел научись сначала хоть как-то что-то делать а потом уже занимайся улучшением производительности
355 1737881
>>37869
Бля, чел, успокойся, я вообще другой анон
356 1737883
>>37881
По теме, только что попробовал. Процесс, который должен был занять ровно 10 секунд занял 10.3 секунды, пройдя двойной пайп. Подводных пока не заметил
357 1737890
>>37499
Поговори со своим менеджером. Какие планы у компании, планируется ли что-нибудь и можешь ли ты в этом поучаствовать. Скажи, что тебе скучно, и тебе кажется, что твой рост замедляется. Если ты готов к какому-нибудь вызову, сообщи это. Во-первых, ты можешь случайно многое узнать о происходящем и возможно получить интересную работу не уходя с работы. Если ебо-продуктовая компания таких размеров не имеет абсолютно никаких планов, то я думаю, что это плохой знак.

Во-вторых, если ничего такого нет, у тебя есть прекрасная история на следующие собеседования: ты не развиваешься, по этому поводу ты вел переговоры с менеджментом и они зашли в тупик. У тебя есть опыт запиливания интеграций с апи и написания простых сервисов, так что с т. з. опыта проблем стать миддлом быть не должно.
358 1738059
>>37881
тогда лучше сделать через очередь чем ебаться с пайпами
359 1738066
У меня в субд есть "список" постов, то есть у каждого поста есть свой порядковый номер order: от 0 и далее по возрастанию, по этим номерам они и выводятся юзеру (сделано с помощью джанго)

Проблема в том, что эти "номера приоритета" постоянно меняются, был у поста номер 3, а стал 7, остальные соответственно тоже сдвинулись: номера от 4 до 7 уменьшились на 1, то есть двух постов с одинаковым номером быть не может, это как индексы в python list. Когда обрабатываю данные на бэке такое часто получается что 2 номера "перекрываются" на небольшой промежуток времени и вылезет ошибка, если это поле order было создано с ограничением unique, поэтому сейчас я его убрал, но в будущем это чревато ошибками

Как сделать поле order с параметром unique но при этом безвылезающих ошибок во время обработки?
360 1738104
>>38059
Пайпы же в разных процессах ебашат. В этом и профит. Причем самый первый процесс для закачки из сети может внутри ебошить асинхронку
361 1738144
>>37890
Спасибо, антош.
С манагером разговаривал в анчале весны, тогда вообще все было тухло. По бэку крупных и долгосрочных планов нет, после небольших правок и роста клиентской базы надо будет заняться небольшой МЛ задачей и всьо, но там ебучий рандом форест, нихуя сложного. Мне предложили заняться мобильной разработкой на реакте, от чего я отказался.

Видимо, осенью придется все таки валить.
362 1738204
Аноны, пишу приложение на kivy под андроид. Apk buildozer'ом собирается без ошибок, но при запуске приложения оно сразу же падает. Посмотрел логи на телефоне, он пытается найти main.py по пути, который у меня используется на десктопе и ему это ясное дело неудаётся.
В buildozer.spec: source.dir = .
Собираю командой buildozer android debug
Что за нахуй, он ебанутый?
363 1738295
>>38204 а каким образом ты умудрился собрать приложение без файла с которого начинается приложение main.py ?
это не ты ли тот ебанутый, что недавно в чате искал исполнителя "Склеить две программы в одну" ?
364 1738342
>>38295

> это не ты ли тот ебанутый, что недавно в чате искал исполнителя "Склеить две программы в одну" ?


Нет

> а каким образом ты умудрился собрать приложение без файла с которого начинается приложение main.py ?


Не знаю, создал отдельную папочку кинул туда main.py и второй модуль, в консолечке вмонтировал эту папочку, написал buildozer init, поправил buildozer.spec(название, заголовок, требования и версию API установил 26, ибо на 27, он у меня усиленно не хочет собираться), и после этого написал buildozer android debug, началась сборка apk, после чего он написал что сборка окончена, апекашечка в папке bin. Я сделал что-то не так?
365 1738354
>>38342

> в консолечке вмонтировал эту папочку


Ты наверное хуйни натворил в питоне с модулями и дело не в киви.
Исправь сначала все на десктопе

Чтобы проконтролировать систему сборки, распакуй обратно apk, распакуй private.mp3 (так выглядит kivy на самом деле, лол) и пересчитай файлы.
366 1738363
>>38354

> Ты наверное хуйни натворил в питоне с модулями и дело не в киви.


> Исправь сначала все на десктопе


Да я хрен знает, что там исправлять, я в этом не разбираюсь. Сам скрипт запускается и работает, что в линуксе, что в виндовсе.
В общем сейчас попробую установить убунту и прям по инструкции поставить buildozer и попробовать собрать apk.
367 1738393
>>38363

>Да я хрен знает, что там исправлять, я в этом не разбираюсь


Ну ахуеть. А как вообще ты программы тогда пишешь?

Надо разбираться с ошибкой, а не танцевать меняя тулзы как папуас.
368 1738403
>>38393

> А как вообще ты программы тогда пишешь?


Ну а кто его знает, как-то пишу, бывает даже работают.

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


Дак я в душе не чаю в чем проблема и куда копать.
Что там может быть с пакетами, если их билдозер сам ставит (покрайне мере как я понял)? Может быть каких-то пактов в самой системе не хватает, но я гуглил аналоги пакетов для арчеподобных систем из инструкции для убунту и установил их. Может я что-то не то поставил или что-то не установил, но как это теперь узнать?
Сейчас попробовал ещё раз собрать и увидел в консоли сообщение о отсутствии install_libs. С этим может быть связано и что вообще такое эти install_libs?
kivy.jpg6 Кб, 259x194
369 1738444
>>38403
для kivy нужны железные яйца и стальная воля.
stackoverflow не поможет.
Я - тоже.
370 1738475
>>37583
PIPE, Queue, socket, Kafka, RabbitMQ.
Если ты считаешь "мы не проходили" охуенным аргументом, то пиздуй-ка жарить картошку.
Я с нуля вливался во все. Увидел что одни и те же данные нужны многим сервисам и прикрутил rabbitmq, увидел что mysql не справляется с логированием - прикрутил clickhouse.
Если ты тупишь после того как тебе все разжевали учись собирать бигмак.
371 1738483
>>38475
Ах да сервисы - модули. Работают и не знают друг о друге, но ожидают входных данных.
Пытался разгрузить уебищную MySQL 5.5, на два ядра два гига ведре, иначе каждый раз лезть приходилось туда, а вот 8.0 уже бодрее и то жалею, что решил MySQL оставить как СУБД. Говно полное.

Алгодебилу советую изучить Threading и не ебать мозг с PIPE..
Одна очередь на входящие данные вторая на исходящие.
Я бы запили так:
Parent - producer/consumer, но в виде процессов. Threading это упор в GIL. Когда лочится исполнение кода на какое то время, а играть семафорами уже ближе к байтоебству
372 1738489
>>38444
Ещё и трипл

> для kivy нужны железные яйца и стальная воля


Да я уже как-то заметил
373 1738512
>>38475
С каких это пор mysql не справляется с логгииованием? Ты ахуел?
374 1738519
Пиздец beatifulsoup уныло медленный. lxml поставил, вроде на него чистый и рекомендуют переходить, когда надоест.
Читал ещё советы про частичный парсинг через soupstrainer, есть польза от него?
375 1738529
>>38512
Таблица 3 гига, хуйпиздаджигурда. 17 секунд выгрузка по партиции. Нахуй надо.
376 1738540
>>38529
не знаешь где EXPLAIN запустить?
377 1738752
>>33222 (OP)
Чем бы вы в питоне рисовали линии и буковки на экране?
379 1738764
>>38759
Спасибо, милый человек :)
380 1738884
>>38540
В DBA я не силен, explain запускал, индексы сделал, сделал даже партицию по weeknum, после первой выгрузки все снова поплыло.
381 1738925
За питоном будущее? Что на нем пишут кроме нейросеток? Смотрю, дохуя вакансий на него, стоит вкатываться?
382 1738966
>>38925 язык-клей может склеить все. Перекатывайся. Лишним не будет.
383 1738972
>>38925
Нет. Питон проебал async и теперь не нужен нигде кроме нейросеток.
image.png1 Мб, 1062x1500
384 1738990
начал изучать питон по этой книжечке, что скажете, анонасы?
мне пока все нравится, после каждой темы задания есть, на расслабончике по пару часиков в день заходит
385 1739019
Двач, в xcode можно ли скрипты python пошагово дебажить?
386 1739040
>>38972

>Срд 15:16:34 №1738972383


>>>1738925


>Нет. Питон проебал async и теперь не нужен нигде кроме нейросеток.


Какой же ты сука долбоеб, просто ссал тебе на ебало
387 1739137
>>38990
Книги это слишком медленно, лучше посмотри видоси от хауди хо учим пайтон за час на скорости 1,5х будет больше пользы, а потом сразу приступай к практике
388 1739174
Скомпилял через pyinstaller запускаю на другом пк, пишет что бы обратился к владельцу файла, вин 10, какого хуя?
389 1739187
Ребят, я что-то неправильно делаю или на Ubuntu в комплекте с питоном не идёт Tkinter? Попытался несколько раз запустить и пишет, мол модуля нет, вбил sudo aptitude install python3.8-tk шо-то скачалось и tkinter начал запускаться, что за дерьмо? Его же даже в pip нет, как мне узнать вообще, как его установить?
390 1739222
>>39187

> я что-то неправильно делаю или на Ubuntu в комплекте с питоном не идёт Tkinter?


У меня в убунту с минимальной установкой даже pip3 не было, так что не удивлюсь
391 1739253
1
392 1739271
>>39222
Дистрибутив для людей, говорили они... Легко использовать, утверждали они, никакой хуйни с поиском инфы в интернете, обещали они...
393 1739272
Двач, необходимо написать программу, которая будет брать массив данных из экселя и по нему вводить данные в отдельном приложении. Вопрос, как можно полученный из экселя массив данных вставлять в конкретные поля приложения? И как можно с помощью пайтона вообще редактировать конкретные поля и вводить данные
394 1739307
>>39271
Ну дак для людей же, а не разработчиков. Программист не человек
395 1739310
>>39307
Тоже верно.
396 1739344
>>39272
Xlrd/xlwrt для .xls и openpyxl для xlsx
397 1739359
>>39272
Pandas дохуя чего может,
398 1739415
>>39271
Ты троллишь? Нужна готовая среда качай activepython или anaconda.
399 1739420
>>39359
Pandas для визуализации больше, для датасаенс дебилов с jupyter вместо IDE. Ну и памяти потребляет в разы больше.
Я не вижу проблем выгружать данные как например умеет mysql-connector с атрибутом DictCursor() в виде словарей, где ключ это наименование столбцов. Априори не обосрешься.
400 1739472
>>39272
Лучше pandas.
Потом в ячейках сделаешь вставку в буфер обмена винды и заебись интегрируешься.
А дебсов местных с ограниченным мышлением слушай поменьше. Pandas пригодится еще не раз.
401 1739501
>>39472

>Винды


>Дебсы


raise ValueError
402 1739505
Я тот анон, который вчера жаловался на неправильные пути файла main.py (путь как на десктопе) в kivy android, и я олень. Не будьте как я.
На самом деле логи пытались мне сказать, что не хватает модулей. А неверные пути он скорей всего писал по причине того, что в апк копируются .pyc файлы, а созданы они были на пк.
В общем читайте логи внимательней. Всем добра
403 1739509
Господа, посоветуйте бесплатных интерактивных курсов по питону. Интересует и разработка и анализ данных. Цели вкатиться в разработку или дата сатанизм пока не стоит, слишком глубоко изучить их соответственно тоже, поэтому тратиться на платные курсы не хочу и надеюсь что есть годные бесплатные.
Цели - понять в целом принципы ЯП, разработки и анализа данных, чтобы мог хотя бы читать код и свободно общаться с разрабами и дата аналитиками.
Сейчас прохожу бесплатный курс на code academy, вроде годнота, но он супер поверхностный, рассчитан на 25 часов всего. Есть что-то пообъемнее и поглубже? Чтоб с задачами, практикой и возможностью свериться с эталонным кодом.
404 1739546
>>33222 (OP)
Блин, кто тут имел дело с Celery? Поставил себе в джанго эту ебень, а она отказывает отсылать e-mail. Причем я таки настроил cron на Celery: каждые 5 минут моя операция исправно запускается, так что утверждать что я где-то неверно настроил Celery не стоит, не работает именно отправка e-mail

Что именно происходит?При некоторых событиях во View вызывается мой таск send_celery_email.delay(), но вот вместо отправки email или хотя бы падения с ошибкой, джанго просто замирает блин и стоит на месте. С помощью могучего дебагачерез print я это и установил: джанго доходит до строчки с вызовом таска а дальше просто стоит, причем он даже не начинает исполнять тело таска (print на первой строчке не срабатывает). Че это такое? Может это с брокером redis что-то не так? Я хз
405 1739560
>>39546
1. Попытайся вызвать функцию без делея
2. Покажи как ты запускаешь селери
406 1739562
Братцы, есть у кого "Автоматизация рутинных задач с помощью Python" в нормальном качестве? Точно знаю что существует, в сети одна и та-же версия где в оглавлении 60е страницы криво отсканены, хорошую версию никак не найду.
407 1739565
>>37580
Что за шрифт?
408 1739606
>>39562
В шапке треда есть книги и там минимум две версии автоматизации задач.
409 1739647
>>39509

> читать код и свободно общаться с разрабами и дата аналитиками.


о зачем им с тобой общаться ? они уже законченная цепочка решения проблем.

По сатанизму нет курсов отвязанных от ML. Это как-то глупо крутить таблицы не имея цели их загрузки в модели. Этим прекрасно и на delphi занимались последние 25 лет.

Посмотри курсы по питону на stepik-е. Сделай там практические задачи
И курс по ML взять первую часть про вращение данным, а дальше не погружаться.
410 1739653
>>39505
тебе это и пытались донеси.
Сначала смотришь в логи, а потом совершаешь какие-то (тупые ) действия.
411 1739704
>>39606
Там одна и та-же версия(хуёвого качества)
412 1739725
>>39704
Перекатывайся на английские версии или страдай дальше.
413 1739729
>>38475
Ну да, наверное я раньше времени полез туда, про что еще не читал.

Алгодебил
414 1739733
>>39565
Библа cfonts, там же написано всё в коде
415 1739773
Пилю auth сервис на django-oauth-toolkit и drf, в ресурсном сервисе на джанго настраиваю интроспект токенов через auth сервис. Поставил dot на ресурсный сервис - работает, но падла тащит все модели, они естественно не нужны. Начал копать в сторону кастомного интроспекта и конкретно запутался. Идея пайплайна для реквеста такая: если реквест с токеном - идём проверять, при положительном ответе смотрим, есть ли такой юзер в бд ресурсного сервиса и, если нет, создаём по информации из ответа. Где нужно делать реквест, а где хэндлер создания пользователя, которого ещё не существует локально? django middleware / drf authentication_class / django authentication_backend?
416 1739774
>>39773
господи, какая скукота. это в яндексе такое?
417 1739798
>>39774
Нет, самая обычная контора
418 1739908
Кто-то пояснит, что за странная система миграций и orm в джанге?

Вчера создал новую модель Box, на которую кинул ForeignKey от уже существующей модели Customer. Эта срань падала с ошибкой ProgrammingError при попытке создать миграцию, причем даже если я вручную бы создал файл миграций и попытался сделать migrate, эта манда все равно бы мне показала эту ошибку. Почему? А само поле box = ForeignKey(to=Box, null=True) его вызывает! То есть его надо закомментить и только потом делать migrate, сука нахуя?

Также недавно работал с тестовым проектом из другого места, поэтому изменил в настройках основную БД с Postgres на sqlite (постгреса там не было), решил создать новое приложение через startapp, сын твари упал... Как думаете из-за чего? Из-за невалидного импорта ArrayField в models.py от другого приложения. С хуя ли? Я ему сказал новое приложение создать, его ебать не должно что да как импортируется в другом
419 1740099
>>33222 (OP)
>>33222 (OP)
Суп народ

Есть одно тз:
https://docs.google.com/spreadsheets/d/1LFknKlNyarjpAwb5jm-9ZOHyi3zaXt-cadAUo39MSnA/edit?usp=sharing

Тут очевидно про звук что то. Что означают числа в столбце F - я хз.
Подскажите, от чего отталкиваться, чтобы найти особенности в данных? На что обратить внимание, что сделать в первую очередь?
420 1740111
>>39560
settings.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json',]
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'

Запуск celery:
celery -A my_project worker -B -l INFO
421 1740124
>>40111
А без делея запускается?
422 1740146
>>40099
распарси F столбец на несколько столбцов,построй pairplot / scatterplot всех признаков со всеми, построй распределения всех признаков (distplot), посмотри если ли выбросы в данных, нарисуй кореляционныую матрицу, посмотри что с чем сильнее всего кореллирует, дальше делай выводы на основе того что видишь
423 1740183
>>40111
Сколько celery будет актуален? Джанго уже обоссан простейшими фреймворками c uvloop на борту. Где ещё нужен этот комбайн celery+rabbitmq/redis?
424 1740190
>>40111
Вернее такой вопрос. Будет ли выигрыш в передаче таска (асинхронный реквест + запись в БД) в celery из основного потока?
425 1740229
>>40146
Звучит нормес, пасиба
426 1740240
>>40124
>>40111
Травлю кулстори: по какой-то причине таск фризит только когда я его объявляю через декоратор @shared_task
Когда в файле my_app.tasks я обозначил таск через:

from my_project.celery import app
@app.task(bind=True)

Все завелось и заработало. Естественно надо в таком случае передать аргумент self в функцию, т.к. он туда идет по дефолту
427 1740248
>>40240
Делал эмейл через шаред и спокойно работало, возможно хуйня где-то в другом месте
428 1740252
>>40248
Я хер знает, может версии какие-то несовместимы?
redis-server 3.0.6
celery 4.4.5
Django 3.0.7
redis(python) 3.5.3
Ubuntu 16.04
429 1740255
>>40252
В душе не ебу в чем конкретно проблема, мб ты автонахождение не включил, настроил не так, импортировал хуево. поэтому я уже раза 3 написал вызвать функцию без делэя, чтобы посмотреть в чем именно у тебя блять проблема
430 1740261
Какие-то питоновские хуитки, не знаю, если ли что ценное.
https://www.humblebundle.com/software/python-programming-software
431 1740265
Так. Теперь киви приложение на андроид не может выполнить реквест, ругается что не может установить соединение. "HTTPSConnectionPool(host='myhostname', port=443): Max retries exceeded with url: myurl
(Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0xc85f1820>: Failed to establish a new connection: [Errno 7] No address associated with hostname'))"
И как бы да, мой хост был забанен любимым роскомпозором, но я перед запуском приложения подрубил впн на телефоне.
Причем самое смешное, что AsyncImage так же не может загрузить изображение, хотя я даже ради теста взял ссылку на изображение из поисковика. И всё это точно с этой же ошибкой. Такое чувство что моему приложение просто отключили интернет.
Кто-нибудь может подсказать почему такое происходит?
432 1740269
>>40265
Добавлю что на ПК всё опять же работает
123.JPG39 Кб, 664x330
433 1740274
Парни, простите за дурацкий вопрос. Второй день учу питон по самоучителям. Написал простой прогноз погоды с выводом того что одеть отталкиваясь от температуры (что бы девушка не спрашивала каждое утро что ей одеть, лол). Написал все на одном компьютере на версии 3.8.3, сейчас нахожусь на другом компе тут версия 3.4.3. Пытаюсь так же запустить программу с EXEшника она сразу закрывается, а в командной строке выдает пикрелейтед. Очень прошу, разъясните что он от меня хочет. Все модули в питон установились используемые (OWM, Pyinstaller).
434 1740277
>>40274
Он же тебе написал, что нет модуля с именем 'typing'. Херач pip install typing
435 1740278
>>40274
typing это стандартная либа начиная с 3.5
436 1740281
>>40261
Полгода Пичарма довольно дешево выходит - остальное хуйня
437 1740284
>>40278
Благодарю. У меня тут старый ноут с XP. На него 3.5 не встанет уже.
438 1740285
>>40284
Можешь его выкинуть и почикать эти типы.
photo2020-05-3119-05-45.jpg135 Кб, 720x1280
439 1740306
>>40265

>No address associated with hostname

440 1740313
>>39725
Дык у меня upper intermediate, вся хуйня, просто вечерами как то влом иногда бывает на английском читать - кто бы что ни говорил, но это так или иначе часть ресурсов хавает.
441 1740319
>>40313
Ну так это не худлит чтобы разбирать форму, там по делу пишут.
442 1740322
>>40319
Дружище, я не против книг на английском, просто мне, сука, хочется вот эту вот конкретную книгу, понимаешь? В бумаге, возможно, куплю если не найду, но пока надежды не теряю.
image.png1 Кб, 175x54
443 1740339
django + react
Они ебанутые?
444 1740342
>>40339
А что мешает?
445 1740343
>>40255
Без делея все запускалось... С делеем он даже в тело таска не заходил. Пока буду через app.task сидеть (надеюсь я ничего не наебнул в долгосрочной перспективе)
Вообще говоря redis принимает и возвращает аргументы которые можно сериализовать в json, а как ему python object передать? Это вообще возможно или нинужно?
446 1740346
>>40343
Тогда хуй знает, я помню у меня похожее было, но в итоге вроде оказалось что в самой функции проблемы были, хотя я точно уже и не помню. Попробуй полностью по документации пройтись, там для джанго фактически скопипастить все надо.

>python object передать? Это вообще возможно или нинужно?


Можешь сериализовать и закинуть, можешь взять сразу какую-нибудь django-redis, он сам за тебя будет сериализовать.
447 1740348
>>40342
overkill
448 1740360
>>40348
Да нет, самое то. Ты же не будешь писать какой-то выебистый фронт сразу на темплейтах джанго?
449 1740362
>>40348
В чем проблема? У джанги куча модулей не связанных с фронтом, которые могут пригодится
450 1740364
>>40348
Ну апиху спокойно можно накинуть на джанго, просто часть функционала не будешь использовать.
451 1740366
>>37580
Ты же просто калбеки вешаешь на получение эвента, в чем проблема закбошить туда все что хочешь?
packages.png9 Кб, 186x281
452 1740375
Псос, ебанул я такой pip download channels и он мне скачал штук 20 разных пакетов, как мне их всех перенести и установить на сторонней машине, где нет инета? Чтоб вбить 1 команду и питон сам правильно их поставил, не упав? (на выходные на дачу с херовым инетом поеду)
453 1740406
>>40375
Забанили на SO? https://stackoverflow.com/questions/11091623/how-to-install-packages-offline несколько вариантов.
454 1740412
>>39704
Нет, не одна.
Вот вторая версия автоматизации в отличном качестве, ибо куплена для анонов.
https://ln2.sync.com/dl/6018bb520/vha7gz3k-xxs9ask2-xrdiuqf6-dtirh597
455 1740472
>>40412

> 8026 This link has been deleted by the owner.

456 1740522
Знание вебсокетов важно любому бэкендеру или это лишнее?
457 1740545
>>40339
а как надо?
458 1740552
>>40522

>Знание вебсокетов важно любому бэкендеру

459 1740560
>>40472
>>40412
Kurwaaaaa !
460 1740688
461 1740706
>>40265
Разобрался. Необходимо в buildozer.init указать 'android.permissions = INTERNET'
462 1740710
Пацаны, насколько хороша идея вкатываться в питон с помощью онлайн курсов? Например скилбокс или яндекс практикум?
Кто-нибудь использовал?
463 1740732
>>40710
Вообще, идея "прошел курс - стал погромистом" это хуйня на палке, рассчитатная на лопухов.
Но в целом смотреть видяшки норм, мне легче удерживать внимание. В процессе можно догоняться документацией по поводу
деталей, потому что обычно очень всё поверхностно у них.
464 1740746
>>39040
Ага, ага, иди портируй ещё пару либ на async.
465 1740791
>>40710
идея норм, только не ведись на всякие яндексыхуяндексы, они вообще охуели со своими ценами
Иди англоязычные на udemy и на datacamp

пиздос, датакамп всего 1700р, по сравнению с хуяндексом
466 1740812
>>40791
У яндекса есть наставник которого я могу ебать вопросами, плюс 3 проекта в портфолио, плюс в конце дипломный проект который я буду делать в группе с такими же макаками как и я. То есть навыки работы в группе, как минимум.
udemy и на datacamp - разве такое могут?


Я иду в первую очередь чтобы бороться с прокрастинацией. Когда у тебя на изучение тем и на определенный проект есть определенный дедлайн, мне кажется это должно мотивировать что-то делать. Но так же опасаюсь, что если вдруг смогу дойти до конца, катализатора в виде дедлайна не будет, и я опять начну волоебить. Тут либо срочно нужно будет искать работу джуном, либо все пропало. А таких как я андрюшей выпускают пачками, и для того, чтобы попасть джуном я хз что нужно будет сделать. Так что я блядь пока в раздумьях, но обычные онлайн курсы мне точно не подойдут.
467 1740820
>>40812

>Я иду в первую очередь чтобы бороться с прокрастинацией



Ну хуй знает, так себе идея

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



Не

Попробуй совмещать свою РАБоту|учебу с питончегом.
Тип надо обработать таблицу ->pandas + openxlxs+xlrd
Тип надо надо сделать презентацию -> python-pptx
Тип надо сделать, чтобы все охуели ->plotly, K3D Jupyter

Тогда точно пройдет, а это все хуйня, если тип просто заниматься "для себя"
468 1740836
>>40820

>Попробуй совмещать свою РАБоту|учебу с питончегом.


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

>Попробуй совмещать свою РАБоту|учебу с питончегом.


>Тип надо обработать таблицу ->pandas + openxlxs+xlrd


>Тип надо надо сделать презентацию -> python-pptx


>Тип надо сделать, чтобы все охуели ->plotly, K3D Jupyter



И вот такой вопрос, а правильно ли самому начинать? Может если начинать под руководством наставника, меня научат сразу грамотно писать код, с правильными комментариями. Возможно ли такое, что после самообучения мне придется переучивать себя писать, так сказать - правильно?
Screenshot173.jpg27 Кб, 577x276
469 1740839
Посоны, я чет не понимаю в xpath или это питоническая реалиция - говно ?
как выбрать ПЕРВЫЙ <ol> ?

namelist = tree.xpath('//ol[@class="n8H08c BKnRcf"][1]/li')
- выбирает 607 значений, а должно быть около 500

Вот полный пример https://pastebin.com/YEBNGEu7
470 1740847
Поясните одну вещь с базами данных.

Всю работу с БД выношу в отдельный файл. В нем функции, каждая делает что-то свое - обновления, выборка etc.

Мне нужно в каждой функции создавать соединение заново, создавать курсор и закрывать соединение?
f93d1203ca5c6c01ebd23ebeb71249bf8a9f697chq.jpg32 Кб, 600x421
471 1740849
>>40839

Бля, ну я как обычно.
стоит написать на форум - сразу гуглится решение и становится все понятно.

https://stackoverflow.com/questions/4117953/get-second-element-text-with-xpath

>This is a FAQ about the // abbreviation.


(//ol[@class="n8H08c BKnRcf"])[1]/li
472 1740856
>>40847
делай что хочешь, но не удивляйся если все тормозит.
Прикидывай условия в которых будет работать твой код. Важно это или нет.

Конечно же, шаблон в том, что нужны постоянные соединения.
Важность пула соединений в mysql и примитивных бд сильно преувеличивают.
473 1740859
>>40847
Создаешь один раз и передаешь параметром.
Ещё удобнее использовать класс для бд, в котором всё будет сидеть.
474 1740867
>>40859
>>40856
А что с закрытием соединения? Насколько я понял, тут with не сработает.
475 1740868
>>40867
Так же явно закрывать.
Можно вообще не закрывать, само отвалится.
476 1740869
>>40836
так тебя на udemi и datacampe научат правильно писать

И не будут драть по 10к
477 1740877
>>40869
А дедлайны там есть для сдачи? Если нет, то я как обычно брошу через месяц, другой..
478 1740884
Я передал на бэк json с помощью ajax, как мне вернуть HttpResponseRedirect?
То есть я хочу обработать данные и перенаправить юзера на другую страницу, а он не желает перенаправлять. Данные принимаются и обрабатываются, но redirect не происходит
479 1740886
>>40884
Это выполняется через хттп заголовки, как они у тебя сработают на ажахе?
480 1740913
Долго писал на FastApi, а теперь учу Django REST. Господи, какой же он божественный, простой, всё работает из коробки.

Почему такая собачья хуйня, как FastAPI вообще существует, и почему на ней пишут?
481 1740920
>>40913
ты писал на fastapi не то что надо?
482 1740927
>>40877
В каждом сообщении читается - ну разрешите мне в Яндекс, скиллбокс и гикбрейнс, ну не отговаривайте. Иди если решил. Если адекватных советов не слушаешь и сам все знаешь. Вьебешь бабла, послушаешь всякую ересь и успокоишься
483 1740937
>>40812
Навыки командной работы ты и с анонами можешь практиковать.
А курсы - хуйня без задач.
Если тебе надо и ты хочешь изучить что-то - читай книги/статьи, если же нет - иди нахуй.
484 1740942
>>40688
Спасибо!
485 1740958
>>40920
Обычный crud
486 1740964
Кстати, а как реализоваться регистрация/авторизацию на Djange REST? Что-то ничего не могу найти по этому поводу. Все туториалы заканчиваюстя на написании обычных моделей.
487 1741029
>>40927
Меня интересует есть ли дедлайны для сдачи той или иной задачи или нет. Я пробовал уже подобные ресурсы, по этому и такая реакция.
488 1741032
Можете пояснить про Data Sciense, Big Data, Data Anylysis? Стоит ли вкатываться?

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

Вот, скажем, если я вкачусь в BigData, выполняется ли какой-нибудь из этих пунктов, или это просто ещё один способ высушить себе мозги?
489 1741045
>>41032
Ну вначале тебе надо разобраться что такое дата анализ. Потому что это очень много что включает, много разных направлений.
Вкатиться в дата сайенс звучит как вкатиться в айти.
490 1741046
>>40937

>Если тебе надо и ты хочешь изучить что-то - читай книги/статьи, если же нет - иди нахуй.


Я пытаюсь найти истину, перебирая противоречивые мнения. Например мой друг никогда не кодил, и через 2 года самообучения сразу смог устроиться джуном на 70к в дефолт сити. Прошло уже года 3, сейчас его зп 250к+. Лично он говорит, что наоборот стоит пойти на курсы, потому что по его мнению там сразу направят куда надо, вместо того, чтобы терять 2 года своего времени. Аноны говорят наоборот - книги, обычные курсы и самообучение. С одной стороны у меня есть личный пример успешного вливания в карьеру, и куча противоположных мнений с другой, которые я тоже не могу игнорировать. Короче хуй знает.
sage 491 1741048
>>40306
Почему я так заорал от с++, лол.
492 1741050
>>41048
сега ебаная
493 1741053
>>41046
Курсы нужны тем у кого с либо проблемы с усидчивостью либо лень искать инфу которой нет в инете.

Сам начинал с книги Златопольского.

Пытаюсь вкатиться на галеру (data science/development), что нужно знать джуну?
494 1741054
>>41053
Очепятка
Инфа которая есть в инете
51uDSlTUPIL.SX379BO1,204,203,200.jpg27 Кб, 381x499
495 1741099
>>40688
А пикрилейтед ты не купил часом?
А то вроде годная книга, но что-то никак не спиздят.
496 1741131
>>41046

>Прошло уже года 3, сейчас его зп 250к+


Так ты тоже говори что у тебя зарплата 250к+. Так все делают.
497 1741159
>>40343
в pickle засунь объект и в бинарном виде отправляй, на принимающей стороне читай байтики и разпикливай обратно
image.png135 Кб, 453x233
Прошу, растолкуйте, не могу врубиться 498 1741177
Писал я, значит, самодельное прямое распространение для самодельной нейроночки..
Вроде бы всё нормально, но выводится вот такая ошибка
UnboundLocalError: local variable 'layer_result' referenced before assignment
Почитал немного в сети, вижу что это частая ошибка у нубов, каковым я и являюсь. Но если честно, НЕ ВИЖУ где в коде эта переменная используется раньше своего определения. За пределами метода НИГДЕ данное имя не используется. Как это исправить и как не обсираться в будущем.

Кусочек моего кода
https://pastebin.com/kYFERuvq
499 1741182
Привет!

Благородные доны, помогите новичку с проблемой, пожалуйста:

сайт: https://sudrf.ru/index.php?id=300#sp

Пытаюсь выбрать пункт верхнего дропдауна (Субъект РФ). Использую Selenium. Не выходит никак. В основном - element not interactable: Element is not currently visible and may not be manipulated.

Подскажите, пож, где я даун и в какую степь копать?
500 1741184
>>41177
layer_result = layer_result.append
Тебе это не кажется подозрительным?
501 1741186
>>41177
сделай вот так
for lay_num, lay_size in enumerate(layers):
_print (lay_num, lay_size)
и в следующий раз используй отладочную печать вместо подобных вопросов на дваче, так ты ничего не научишься
502 1741190
>>41184
Точняк, списки-то изменяемый тип, забыл.
503 1741192
>>41186
Спасибо за совет, буду знать, Точно!!! Надо всё построчно проверить!!!!
504 1741258
>>41046
Выучи столько, чтобы было достаточно пройти собеседование на бесплатные курсы в какую-нибудь галеру. Дальше учишься там, работаешь, и через годик уходишь куда-нибудь на зарплату в 2 раза больше.

Да сами курсы месяца 4 длятся Чему там можно столько самообразовыватсья, чтобы в итоге через два года всё равно получать 70 000.
505 1741275
>>41099
Нет, годная?
Если анонам надо - могу прикупить.
506 1741276
>>41046
Проблема твое друга в том, что он ни у кого не мог спросить что ему надо учить и куда двигаться. Твоя ситуация отличается от его, у тебя есть целый тред анонов, и часть из них имеет неплохой опыт в пистоне. Тут с радостью отвечают на адекватные вопросы и реквесты.
Но окончательный выбор конечно за тобой.
507 1741278
Ебана, никак простой запрос из js не хочет на бэк отсылаться. У меня в том же файле еще две ajax-функции, с ними все нормально, в явном виде передал там csrf токен и все проходит, а при обращении вот к такому view (я просто хочу обработать данные а потом послать клиенту redirect):

def test(request):
----print('RECEIVED:', request.POST)
----return HttpResponseRedirect(redirect_to='/profiles/')

У меня постоянно выскакивает 403 Forbidden (CSRF token missing or incorrect.). Че ему блин не нравится? Точно так же этот токен нахожу и передаю. Внизу ссылка на код функции, которая делает прямой запрос, возможно я как-то не так передаю этот токен когда шлю свой post-запрос

https://ideone.com/KF9o9x
508 1741318
>>41046
А каким методом он определил, что курсы помогут тебе лучше чем самообучение? В твоём сообщении нет инфы, что он проверил это на себе и это работает. Друг ещё тот советчик
509 1741404
>>41182
может надо дождаться когда js всю страницу отрендерит
510 1741467
>>41278
если бек защищен CSRF - это не бек, а чужой сайт.

Парсинг - дело кропотливое. Не сдавайся.
511 1741487
>>41467
Бэк мой. Я там логирование веду, в логах и указано, что ошибка 403
512 1741493
>>41487
ну так выключи проверки CSRF.
513 1741607
>>41278
Для этой функции на бэке выруби проверку csrf.
514 1741613
>>41607
>>41493
Это равносильно выключению https, когда возникли "какие-то проблемы с сертификатом"
515 1741646
>>41613
В общем: токен таки удалось явно передать:

xhr.open('POST', '/', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('X-CSRFToken', token);

Думал, что проблема в 403, однако ж редиректа по-прежнему не происходит. На бэк данные попадают и обрабатываются как надо, но HttpResponseRedirect(redirect_to='/profiles/') на фронт по какой-то причине не приходит (или не обрабатывается). Как форсировать этот редирект? Когда данные отправляются через <form> то редирект под капотом спокойным образом работает, здесь же - нихрена
517 1757122
>>33265

>долбаёб

518 1765843
>>34246
Не гуглится. Скинь ссылку, пожплуйста
Тред утонул или удален.
Это копия, сохраненная 1 января 2021 года.

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

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