Это копия, сохраненная 23 декабря 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
голосую за это пик
Что думаешь анон?
Не тратить время и вникать в джангу?
Я, блядь, не говорил про твоё будущее.
>>882273
а на нём таки сейчас пишут?
я глянул по количеству статей на всяких хабрах и на глаз по вакансиям в реале и фрилансе
> по нему
А нахуй искать вакансии на конкретный фреймворк и задрачивать то, что можно прочесть за минут 10 и палкой потыкать?
яебал, хули вы такие тупые?
Вот это если через админку:
ValueError: "<Image: 1>" needs to have a value for field "image" before this many-to-many relationship can be used.
Либо если через форму аппа то просто :
urllib.error.HTTPError: HTTP Error 403: Forbidden
Поле image не получило какого-либо значения, но ты пытаешься создать какой-то другой связанный объект, которому это поле нужно. Как-то так.
Нода это помойка коллбечная.
спасибо
https://www.raspberrypi.org/learning/getting-started-with-minecraft-pi/worksheet/
Сильно хуже от этого не будет
Только эта библиотека под рапсбери пай точенная. Но я где-то видел её порт и под обычную архитектуру компов.
И оно довольно скучно мне показалось.
Ну это понятно, мне нужно определить IP юзера, тк сайт без регистрации, и чтобы эта кнопка не нажималась несколько раз одним юзером
Так в том-то и дело, что не проще. Api будет отличаться лишь await yoba вместо yoba. И async def вместо def.
Нет её, надо сделать. Я говорю про подход, а не про то, насколько развита инфраструктура. Если не начать что-то делать, то ничего и не получится.
Ебало своё закрыл, нахуй. Джанга всё равно говно, даже без учёта того, что она не асинхронна.
Да это херня. Картинки нет вот он и ругается на поле лайков к ней. Суть в 403, хуй знает где рыть.
Джанго вполне может быть асинхронным, если прикрутить сторонние батарейки
Да блять то же самое если с локалхоста делать то всё работает. Никто там на девианарте не блочит.
>Да блять то же самое если с локалхоста делать то всё работает.
Ну IP-то разные у локалхоста и сервера, на который деплоишь. Вполне возможно, что блочат IP хостинга. Попробуй какие-нибудь прокси, user agent браузера установи если еще не.
ну и? какая магия? примеры приведи
Не, не помогли прокси.
понятно, спс.
может, кто-то захочет посмотреть мои костыли на ломанном английском с пародией на ООП? или даже запустить.
пытаюсь сделать что-то типа разговора с моим одноклассником, но пока он мало чего понимает
рейт
Читаю книгу Think Python. На 4 модуле нихуя не запускается его ебаный TurtleWorld. Этот даун решил объянить циклы на нем. Пидарас! Дропаю пайтон или ищу другую книгу.
я просто сверхтупой и ленивый. Ебашил c++ жабу вообще заебись было, питонус хуйня
А так же, ебал он друзей и подруг.
если дождаться окончания программы и считать весь output
subrocess.check_output(cmd)
то все работает быстро, но занимает адское количество памяти
а если обрабатывать построчно то все работает адски медленно
p2 = Popen(cmd, stdout=PIPE)
out = p2.stdout
for line in iter(out.readline,''):
if line.rstrip():
pass
что с этим можно поделать?
Затупы где-то при использовании пайпа, может отключается буфферизация вывода для программы или еще что-нибудь вроде этого.
ну хз тогда. как вариант обрабатывать чанками по n-строк и искать компромис устанавливая n
На самом деле там есть bufsize который лечит проблему
p2 = Popen(cmd, stdout=PIPE, bufsize=10000)
правда надо проверить что в этом случае строки на границе буфера на рвутся на части
их же никто не чистит
Вот есть у меня список, он и так итерируемый объект, в чем профит создавать iter(my_list) перед тем чтобы просто по нему пройтись если нужно, ну и вцелом в чем их фишка. Спасибо.
Ленивость.
Попен ещё не так умеет. Смотри:
# АХАХАХАХА
govno = range
huj = print
for i in govno(3):
huj('KEK')
а, ну тогда залей дрочьхаб
Делаю довольно стандартную вещь. При регистрации юзеру нужно выбрать свой регион и город, при этом хочется отдать ему форму с уже заполненными данными на основе ip-адреса.
С регионом все ясно: их список не меняется и в конструктор формы передается только начальное значение.
С городами посложнее. Их список изменяется, причем джанга не дает поменять их у поля после создания формы. Известный костыль -- написание своего __init__ для формы.
Как принято поступать в таком случае? Неужели свой __init__ -- единственный выход? И если так, то хотелось бы примеров и\или комментариев для моего варианта реализации. http://pastebin.com/PzgAgYNu
UPDATE: заметил, что ModelChoiceField позволяет менять queryset без особых проблем. Теперь код гораздо проще
http://pastebin.com/DtRetM15
да в джанге, как впрочем и в питоне, все меняется и все можно (и нужно) переопределить, но это понимание приходит с опытом. не говоря уж о кверисет, который черным по белому в оффдоках описан.
if request.method == 'POST':
pform = ProfileForm(request.POST)
pform.is_valid()
return HttpResponse('%s' % pform)
else:
>pform.is_valid()
Разве сама по себе функция что-то делает тут? Только тру/фолс вернет и не проверит валидность. Или я не прав?
Альтернативы для говносайтов пока не видно: битрикс + дешёвые кодеры с зачатками мозга правят бал.
>Разве сама по себе функция что-то делает тут? Только тру/фолс вернет и не проверит валидность. Или я не прав?
Проверит форму на валидность, но он это никак не использует в своем коде.
> во всём лучше синхронного
Потому что ты так скозал?
>>883514
> говносайтов
Уровень твоей осведомленности огорчает.
Во время первого вызова запускает валидацию, чистит данные, записывает ошибки.
После нее доступна pform.cleaned_data.
Эта часть была написана только для поимки некоторых ошибок в настройках формы.
> Потому что ты так скозал?
Назови хоть один плюс без ко-ко-ко для этого говна нет асинхронной либы
в чем ограничивать!? инструмент под задачи, а не задача под инструмент. когда твой сайт, написанный на фласк, упрется в проблему 10k - перепишешь часть логики на сервисах вообще, а фласк как был так и останется вместе с энжинсом и они не плохо будут переваривать все твои 10k.
хотя врят ли ты до этого дойдешь, как и 99% йоба асинхронных проектов разрабатывающихся ради технологии, а не для решения бизнес-задач.
У меня есть модель, к которой по фк привязана другая модель.
Я отдаю их во вьюхе так:
def kkk(request, slug):
return render(request, 'index.html', {
'aaaa': Model.objects.all()
}
Мне нужно отфильтровать модель по слагу и когда я делаю вместо all() .filter(slug=slug) мне отдаёт пустой квареисет. Хотя с .алл() всё работает.
Дело не во фласке и не в 10k. Просто асинхронный подход не имеет минусов по сравнению с синхронным. По коду тоже самое, только async/await добавь. Ну, а то, что либ пока нет, так тут уж ничего не поделаешь. Надо же с чего-то начинать.
ну я бы не сказал что тоже самое. там дохуя неочевидных вещей своих сущностей и я бы не сказал что совсем простых для понимания:
event loops
event loop policies
awaitables
coroutine functions
old style coroutine functions
coroutines
coroutine wrappers
generators
futures
concurrent futures
tasks
handles
executors
transports
protocols
к слову https://pythondigest.ru/view/20078/
К слову, половина из этого уже legacy-дерьмо, которое можно и не знать и не использовать. concurrent.futures к asyncio отношения не имеет, эта либа была и до него. Почитай доку по curio, это то, к чему будет идти asyncio, я щитаю. Ну, и про sans-io почитай, это тоже будущее.
ну хз насчет эта нинужна! мне хочется знать как работает мой код и what are fuck i am using right now!? а про курио почитаю да, спасибо.
вот первая же странность: зачем мне явно передавать луп? почему при повторном get_event_loop() может прийти совершенно левый (из другого треда?)?
aiomqp или asynqp
inb4: сорта говна
>зачем мне явно передавать луп?
Потому что явное лучше неявного.
Читай вывод import this полчаса.
> мне хочется знать как работает мой код и what are fuck i am using right now!?
Ты наверное и исходники питона наизусть знаешь?
>>883692
> зачем мне явно передавать луп?
>>883813
> Потому что явное лучше неявного.
Явное лучше неявного, но как показывает пример curio луп вообще не нужен (в curio нет такого понятия). Вся эта канитель с future, callback, loop на самом деле историческая и на текущий момент, опять-таки, как показывает пример curio, не нужна и даже вредна. Недавно на reddit была ссылка на большой пост какого-то чела, где наглядно объяснял чем плох asyncio и хорош curio.
Реально, прочти доку по curio и посмотри выступление Бизли, где он 3 часа рассказывает про асинхронность в питоне с самых низов. Базарю, ещё захочешь.
>но как показывает пример curio луп вообще не нужен
везде в коде
>while True: while True: while True: while True: while True:
Хотя Дэвид мужик крутой, спору нет.
Pandas
в специальном поле у юзера например, favorites будет несколько id указвающих на избранные товары, так?
да ну, долго кажись
запиздячь модельку со ссылкой на модель юзера и товаром в фореинг кей
пока станет юзеров так дохуя что выгребать будет долго у тебя пара лет будет
Чёт я тебя про while True не понял. Если ты про чтение из сокета, например, то в asyncio тоже самое.
Ничто ни к чему не прикручивай.
Таблица:
|-------------------------|
| UserId_|__ItemId _ |
|_______ |__________|
А не жирно на каждую связь лепить по записи? Я зелень просто и в производительности субд не особо шарю
По опыту могу сказать что в конечном счете у пользователя может быть много товаров, а у товаров - много пользователей. Здесь могут быть промежуточные таблицы, но сути не меняет. Соответственно я бы вставил в товар м2м на юзера и сделал кастомную промежуточную таблицу.
https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.ManyToManyField.through
В эту таблицу можно довабить поле обозначающее избранность. Можно буль, но я бы сделал IntegerField с чойсесом - так, на будущее.
Допустим у тебя в большинстве будут юзеры с пятизначным id. Товары тоже.
10 символов где-то 40 бит.
Лям юзеров добавили до 100 товаров в избранное.
100 млн записей = 50 мб.
Уж как-то с таблицей на 50мб база справится.
Добавлю что в сколько-нибудь серьезных проектах используется кеширование запросов в БД.
Например https://github.com/Suor/django-cacheops
Прямая связь пользователь-товар - идея не очень.
Лучше пользователь - список избранного - товар.
Пользователь - список избранного через one-to-one, список избранного - товар через many-to-many.
> Прямая связь пользователь-товар - идея не очень.
Согласен. А причем тут я?
> Лучше пользователь - список избранного - товар.
Суть не отличается от того что я предложил: Пользователь - СписокТоваров - Товар.
В СписокТоваров добавить поле означающее избранность.
> Пользователь - список избранного через one-to-one, список избранного - товар через many-to-many.
И ты забываешь в своем пример что у тебя 4 таблицы - список избранного связан м2м с товаром, значит будет 4я таблица которая их будет связывать. Т.е. в таких запросах будет на 1 (лишний) джоин больше.
1. сайт на джанго в интернете
2. зеркало этого же сайта на ноуте с прописанным хостом на роутере имитирующим этот сайт
3. что бы зеркало и сайт обменивались данными, те всё что добавили на сайт - прилетало на зеркало, а что на зеркало - добавлялось на сайт
Как это проще сделать, хотя бы на уровне идеи?
Хуитка для конференций чисто, просто разок уже обосрались с шириной инет-канала гостиницы, но нужно не забывать о тех ебанашках которые не умеют например вай-фай сетку выбрать
А хуй знает, вроде шевелится еще, последняя версия - Июнь 2016.
Слив защитан.
И еще что есть почитать может про то, как в питоне работать с TCP/IP и другими уровнями модели OSI? Спасибо.
ну и вообще, есть может что-то годное почитать по модели OSI только не википедия.
P.S. Знаю, что по сетям танненбаум годнота, но, может есть что-то менее объемное, более наглядное, скажем, для простого понимания достаточного для работы с сетью разного уровня?
Не слушай того мудака с асинхронной репликацией.
Гугли кластерные системы вроде Galera с синхронной репликацией.
> осилить лутца (хотя бы первую часть) за месяц
Уточни о какой книге идет речь. У него их несколько.
http://pastebin.com/xz3iVsZ1
Какое-то условие неточное. Как едят? В каком порядке? Нихуя не сказано же. Можно сделать просто случайную выборку половины рыб например. И пиздец, нахуя ты этих классов настрочил? ООП головного мозга начало развиваться еще до окончания освоения языка?
____func.atr += 1
____print(func.atr + len(l))
func.atr = l[-1]
Как такое сделать? Чтобы атрибут функции был аргумент её первого вызова. В крестах внутри функции надо просто после объявления статической переменой её присвоить значение аргумента.
https://docs.python.org/2/library/multiprocessing.html
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
FLuent Python, годнота, только что дочитал, до сих пор ебусь с пониманием асинхрона.
Потому что вывело в другом процессе, не подключенному к стандартным потокам ввода-вывода?
>>884450
Объемная книжица с большим количеством повторений. Лутц зануда. В принципе если у тебя дикая мотивация и уже есть какой-то опыт, то да, можешь успеть все освоить. Но объясни зачем? Книжку можно сравнить с тем как ребенка учат ходить на горшок и вытирать рот. Я бы все же посоветовал сразу взяться за Саммерфилда. Глянь оппик прикрепленного треда.
>>Потому что вывело в другом процессе, не подключенному к стандартным потокам ввода-вывода?
Чаво?
Сука, вас реально таких на курсах выращивают?
Я не знаток мнопоточки и могу ошибаться, но насколько я понимаю
> p = Process(target=f, args=('bob',))
Мы подготовили объект процесса.
> p.start()
Запустили процесс. Если при этом ты не увидел появления нового окошка консоли, значит он не подключен к стандартным потокам ввода-вывода https://ru.wikipedia.org/wiki/Стандартные_потоки.
Соответственно принт отработал, но "ушел в космос".
> p.join()
Мы заджоинили результат выполнения дочернего процесса в родительский.
Ок, спасибо, пойду книжки почитаю. Вчера сделал прогу, которая подбирает пароль к rar архивам. Пятизначный пароль типа 12345 подбирает за 24 минуты. Но я смог ускорить (через жопу) и теперь подбираю за 5 минут. Загружено было одно ядро. Вот читаю в документации, что если правильно разбросать процессы по памяти и ядрам, то ваще за полминуты можно управиться.
Соответственно если тебе надо наладить "принтование" в многопоточном/многопроцессном приложении, то на практике "принтуют" в специальный лог-файл. А джоины нужны чтобы получить результаты выполнения других потоков-процессов. В коде же можешь использовать очередь в качестве массива для хранения результатов выполнения других потоков.
https://docs.python.org/2/library/multiprocessing.html#exchanging-objects-between-processes
Но повторюсь, я не спец и могу ошибаться.
Обмазался господином Бизли. Хорошо дело пошло.
Мы как-то похожую хуйню писали, причем нужно было писать стратегию охоты для хищника/съебывания для жертвы в отличие от варианта. Там была ограниченная область видимости и нужно было составлять карту еще. Интересная хуйня.
Эм, может тогда через редис? В джанге клиенты редиса умеют сериализовать и восстанавливать некоторые объекты.
почитал и посмотрел лекции по питону уровня "стартер пак". хотел бы найти задачки какие-то, но просто гуглить это не то, надеюсь все же на советы здешних анонов, где найти интересные задачки. Рандомазейр и калькулятор уже написал.
Cтоп, дык пистон имеет позиционные аргументы.
Сделай программу подбора паролей к zip и rar архивам. У меня такая 8 строк занимает
что-то сомнительно звучит. посчитай, сколько там будет вариаций этого пароля и сколько это займет места и времени. а если в памяти будет хранится только один пароль, то это далеко выходит за рамки "стартер пака". так что, я, пожалуй откажусь от этого, хоть это и интересно.
Для всех вариаций разрешаю добавить еще 3 строки.
только, вместо 'bar' поставить переменную?
Добра тебе
Чому?
Лутц это пиздец.
Переписать стандартную справку в тллсты кирпич и его продавать это уметь надо.
Книги по кодингу вообще чаще пишутся маркетологами для даунов.
Есть конечно исключения, но их меньшинство.
Ну допустим, есть вот отличная книга Идеальный код, есть Программист-прагматик, годные книги потому что помогают понять, с какой стороны подходить к разработке софта и рассказывают, как можно правильно закладывать фундамент к гаражам, частным домам, многоэтажкам, небоскребам.
А вот какой-нибудь Брюс Эккель или Лутц хуита, они учат как пользоваться стаместкой или молотком.
Лутц это справочник. Чего вы на него негодуете ёпта.
Когда я начал читать программист-прагматик (страниц 50-60), то нашел там тонны мотивационных речей уровня дешевых бизнес-тренеров. В этом потоке скама дальше все же пойдет годнота?
>Andy Hunt, Publisher In Chief, is an author and publisher, avid musician, and sometime woodworker. When not making noise or firewood he occasionally speaks at conferences.
Любитель-плотник и профессиональный балабол. Есть подозрение, что весь код в книге написан его соавтором.
Почему ты выбрал эту книгу?
>потому что помогают понять
Скажи, тебе помогло?
Я имею в виду конкретно - чем тебе помогли эти тонны слов в книжках? Т.е. что ты сделал лучше за счёт чтения этих книг? Буду благодарен за примеры.
Сам щетаю что подобные книги пишутся сугубо ради бабла, т.е. цель автора книги - не дать полезную информацию а удержать читателя и заставить его рассказывать про книгу всем вокруг.
> тонны мотивационных речей уровня дешевых бизнес-тренеров
> дальше все же пойдет годнота
А что для тебя годнота? Там описываются вещи, до которых люди не доходят, когда работают. Например необходимость полного принятия ответственности за свои действия, необходимо думать о последствиях, прежде чем перепиливать какой-то солидный кусок когда, да и вообще думать на работе надо всегда, а не просто сейчас я поменяю эту хуйню и эта хуйня заработает, а если что отвалится - можно будет зафиксить. Про говнокод и поджимающие сроки там тоже есть.
> чем тебе помогли эти тонны слов в книжках?
Теперь я знаю как выстроить фундамент, как подойти к задаче или зарефакторить чей-нибудь код так, чтобы ничего не сломать. Задумался и сам начал писать немного важных тестов для кода. Смотрю чуть дальше, чем на пару месяцев разработки, стараюсь документировать код в неочевидных местах.
Да и ответили на многие вопросы как вообще пишутся крупные проекты, благодаря чему я порядок в голове навел.
> цель автора книги - не дать полезную информацию а удержать читателя и заставить его рассказывать про книгу всем вокруг.
Ну тот же Стив Макконнелл делится своим жизненным опытом, а не льёт воду. Ты к этому сам когда-нибудь притопаешь.
Вообще еще одной годнейшей книгой можно назвать Thinking in Forth. Помогает делать из сложных вещей простые.
Последний бойскаут с Брюсом Уилесом - лютая годнота, а то что ты перечислил - прописные истины.
> то что ты перечислил - прописные истины
Если бы так же думал каждый разработчик, подобные книги бы не пользовались спросом.
наивный баг-репорт:
>вещи, до которых люди не доходят, когда работают.
Не слишком ли общее утверждение?
Т.е. какой доли "работающих людей" это касается по-твоему? Каков процент тех, кто из данных книг может извлечь для себя некие новые и полезные утверждения? (правильный ответ - ты не знаешь и не задавался этими вопросами.) Не судишь ли ты по себе?
> Например необходимость полного принятия ответственности за свои действия
Это вроде обозначается токеном "здравый смысл", т.е. утверждение базовое на тему "что такое хорошо а что такое плохо?".
Принятие ответственности за свои действия - это например критерий совершеннолетия в уголовном праве. В среднем это приятие должно наступать после 18ти лет. Чем раньше - тем более годный получится чуловек.
Странно, что ты устроился на работу и уж затем выяснил это из какой-то книжки.
Отдельный вопрос - почему наша культура не обеспечивает осознание важности понятия ответственности за свои действия и допускает такие вот казусы, когда взрослый человек находит такое утверждение в какой-то книге, а не впитывает его с молоком матери. Лично мне это кажется неким эксплоитом всей нашей культуры, которым ранее пользовались всякие высшие сословия и тп.
При том ты 100% сталкивался с утверждениями на эту тему ранее, просто проглотил его, лишь читая какую-то конкретную книгу.
>необходимо думать о последствиях
Ну опять же это некая очень широкая характеристика - склонность думать о последствиях - отличающая в первом приближении плохого человека/дегенерата/труса/мразь/дебила/беспредельщика/лузера от человека успешного/разумного/ответственного/хорошего.
>да и вообще думать на работе надо всегда
Только если ты хочешь развиваться. А я мб хочу говнокодить как-нибудь получать зарплату и спокойно себе жить, думая об аниме. Зачем мне думать о работе?
>а не просто сейчас я поменяю эту хуйню и эта хуйня заработает
Порой это наилучшее решение, когда важнейшим качеством системы является скорость её создания.
Аноны как называется это вот всё?
этот вопрос выходит далеко за рамки разработки, ИТ, экономики и тп.
Т.е. это некая глобальная хуетень, касающаяся жизни каждого человека. смекаешь?
срочно нужна книга по PANDAS !!!!!
Привет, питонисты. Вопрос такой. Я вот веб-макака в прошлом(Java), удалось поработать с питоном около полугода (автоматизация процессов и работа с данными). Хочу попробовать вкатиться в QA, ибо разработка, почему-то, напрягает. Думаю, может в QA думать меньше, сиди себе пиши тесты да документаци. Ну это так, просто мысли. Вот думал в тестирование вкатиться и потом перейти в автоматизацию тестирования. Питон для этого вполне годный язык же, не? И вообще какие шансы на становление тестером для бывшей веб макаки, которой веб-программирование не всралось, а денег хочется. Спасибо.
Шансы хорошие, только вот тестирование ещё более скучное и однообразное занятие, а с Питоном ты будешь почти наверняка писать тесты для той же веб-параши, которую избегаешь.
Мне помог Совершенный код когда я после универа с опытом написания Лаба_1 пошёл джуном. Сначала практические вещи типа именования переменных и декомпозиции кода на методы были для меня проблемой. Я видел много возможностей, но не мог выбрать и впадал в ступор. После Макконнелла я могу не только назвать переменную, но и пояснить почему так лучше чем по-другому.
Это конечно только отдельный пример.
вот смотри в чём дело: у меня есть алгоритм, он там ебашит своё ушу, но у него много параметров. и их бы надо подстроить, что пиздец как напрягает. каждый раз менять значения в коде, запускать, смотреть что произошло.
я не хочу сам писать графическую оболочку с ручками и крутилками, которыми можно было бы интерактивно менять там всякие параметры, но хотел бы, чтобы такая хуетень бы была, дабы ею воспользоваться для отладки.
петян, помогай!
Люди ленивы, все ищут простых ответов.
Как думаешь, если я выпущу книгу с заголовком "Серия: Уроки жизни программистов.\nКак заставить себя зарабатывать." У меня будет шанс оторвать свой кусок в инфобизнесе?
спасибо, анон. Я это понимаю, просто думал что может быть менее напряжное. Я пока что-то очень устаю в течение дня, поэтому ищу какой-то компромисс для себя в IT. Просто веб-программирование настолько захватило рынок, что для entry-level ребят кроме веба считай некуда идти и учиться. Грубо говоря, если не выучил С++ в универе то почти наверняка идешь в веб. Как то не очень гибко выходит, а на питон если и найдешь джуновскую вакансию, но давай-ка парень залезай по уши в Джанго и пили виюхи, темплейты и прочее, чем то подобным я занимался на джаве, жесть как припекало от такого.
когда сейвится новая сессия, через сигналы сохраняешь инфу о ней в бд, не?
я правильно понял, что ты предлагаешь создать отдельную таблицу под сессию, и хранить там словарь, а не кэш?
если ты раздрочишь свой мозг на торнадо, то остальное тебе будет казаться элементарным. Так что берись за него как можно скорее.
она и хранится в бд, только в виде кэша, поэтому я через ORM не могу сразу по словарю пройтись, создать отдельную таблицу и хранить там словари была моей первой идеей, но интуиция говорит, что так делать нельзя(либо я еблан, либо это троллинг). Пилить отдельную таблицу под словари?
блять, ну если не хочешь в отдельную таблицу - дописывай хуйню в самой сессии.
с этим у меня и были проблемы) Пойду отдельную таблицу пилить, спасибо
Вощем, надо регексп написать,
начинается обязательно с латинской буквы, заканчивается обязхательно латинской буквой, может помимо это содержать латиницу,цифры, дефис и точку. Все бы ничего, да размер у строки должен быть от 1 до 20 символом. Загвоздка в длине в 1 символ, и как ограничить общую длину в 20?
Наваял вот такое барахло
^[a-zA-Z]+[a-zA-Z0-9\.\-]*[a-zA-Z]{1}$
Помоги, пожалуйста, анончик
>>885160
^[a-zA-Z]+[a-zA-Z0-9\.\-]*[a-zA-Z]{1}$|^[a-zA-Z]{1}$
сейчас такая ебала
но не знаю куда прилепить ограничение в 20 символов
Итог
[a-zA-Z]{1}[a-zA-Z0-9\.\-]{,18}[a-zA-Z]{1}$|^[a-zA-Z]{1}$
Всем спасибо, если знаете как красивше сделать - отзовитесь.
Если работает - и так сойдет
Секрет.
Вам предлагается написать эффективную, в том числе по используемой памяти, программу, которая будет искать максимальную длину невозрастающей подпоследовательности.
Следует учитывать, что количество измерений может быть очень велико.\f
Перед текстом программы кратко опишите используемый вами алгоритм решения задачи. На вход программе в первой строке подаётся общее количество N значений измерений. В каждой из последующих N строк записано целое число. Гарантируется, что N ⩾ 1, то есть всегда имеется хотя бы одно значение измерений.
Пример входных данных:
5
-1000
0
-300
2
2000
Результатом работы программы должно являться целое число — максимальная длина невозрастающей подпоследовательности.
http://pastebin.com/kfnmGTHR что не так?
толсто
Тогда хэш-таблицы по все поля (собственно, Counter и есть подкласс словаря...)
Ну как миниум print(b) нету интендант блока. Он у тебя всегда будет принтить глобальное значение объявленное вначалеb = 0 кода то есть 0.
Дальше что-то ты мутью набрызгал как по мне. Вайпни код и подумай как без ебаного нагромождения if-ов сделать и лучше без обоссаного while.
Нужно хорошо знать сам питон. Остальное зависит от области, в которой хочешь работать.
Меня тоже интересует примерно этот же вопрос но стесняюсь тут спрашивать платину, но раз зашел разговор... Реально ли вкатиться куда-то кроме веба? Но при этом никаких специфичных математических знаний нету чтобы во всякий анализ данных и прочие частично-питоновские области пытаться. Часто ли нужны админы которым приходится много писать на питоне? Куда еще можно?
другой анон
Питон - сугубо веб
>>885523
Ну,знать питон так, чтобы растолкать 80 конкурентов, с голодным взглядом набрасывающихся даже на самую задрипанную вакансию. Сейчас таких как ты - орды
Дев-опс, тестер, админ. Это типа чтобы именно сайтики не писать. Но так или иначе все равно будет крутиться вокруг веба.
Конечно, лол. Самое сложное будет сверстать и найти издателя.
> хранится в бд, только в виде кэша
Шта
>>885553
> Питон - сугубо веб
Лол, у тебя поди и тикль умер и перл?
То-то от инженеров в конторы, которые на оракловские базы завязаны, требуют знания тикля.
Юзать NoSQL и не испытывать таких проблем
Ты не с таблицами работаешь, а с моделями ОРМ-ки.
Делаешь новые поля
@
накатываешь миграции.
Если тебе пришлось трогать сайт на джанге, а опыта 0, то пройди ходя бы пошаговый гайд на офф сайте. Там эти моменты хорошо объясняют.
То есть я иду в файл модели, в классе своей модели добавляю новое поле. Потом мигрирую?
>>885588
Ну я начал доку читать
Ну как бы да. Если сделал изменение в модели, которое затрагивает БД, то сделал миграцию, а потом накатил её.
Ты явно как-то не с той стороны в джангу вкатился.
двачую этого. Веб это просто какая-то клоака.
От себя добавлю, что видел только одну вакансию от 4 лет опыта на мидла без джанго и прочего, там связано с телекоммуникациями и интеграциями систем.
хз, но я не выдержал. был веб макакой на джава и на salesforce еще около года годил. просто пиздец как напрягала рутина. На питоне/баше сейчас пишу всякие штуки по интересу, пробовал в джанго (как раз в этом треде спрашивал) максимум на что хватило это на говно блог. Хз почему так, может у меня с мотивацией проблемы, но желания разбираться в вебе и во всем этом вообще не наблюдаю за собой. Вот честно, очень рад за людей, которые нашли себя в этом и им это в кайф по настоящему.
добавлю еще, что суть в том, что "шлепать формочки" это до поры до времени, выже джуна с таким отношением врядли можно вырасти.
Веб - это ведь не только шлепать формочки, CMS и магазинчики. В перспективе ведь можно и всякие крутые асинхронные высоконагруженные бекенды писать. По моему, это может быть интересно
А есть еще всякий data scraping/etl - тоже веб, можно сказать.
https://career.ru/vacancy/18850457
дак никто не спорит, что может быть интересным, просто до интереса нужно джуниором говна пожрать пару лет, видимо. Ну и да, как я выше написал, здорово, что есть такие люди как ты, анон, что мотивация есть все это изучать.
о, кстати про дата скрэпинг ты хорошо упомянул. Веб-краулеры/скрэперы на пистоне тоже можно юзать, только хз где. рынок захватил аутсорс.
>только хз где
Уж точно не на фрилансе. Скрапинг там это ебаное дно.
Задачи уровня, пройди через все страницы на сайте скопируй все ссылки и картинки в ексель. Плата 5 баксов фиксированная.
Добро пожаловать.
фриланс вообще не по мне. Понимаю, что можно найти какой-то интересный фиксированный проект, но торговать жопой за 15$ в час это как то мда. Не знаю, отношение к фрилансу скорее негативное.
>веб дно ко ко ко...
а вы пробовали сделать хотя бы каталог продукции на джанге!? а, знатоки, ебана?
90% тут еще не успели вкатиться, а уже кудахтают сидят. охуели!?
т.е. работать в офисе с кофейком как то больше по мне, некоторым, конечно, нравится из дома.
в том то и проблема, что "сначала сделайте потом говорите" не работает, даже если я могу сделать что то подобное на чем то, то просто не откуда взять интерес. "веб дно кококо" никто так не говорит.
кудах в том, что альтернатив мало, фактически монополия на веб. Сам сейчас в лабе работаю при институте, платят хуйня конечно, но бывают задачи прикольные. Так вот в развитой части планеты в таких лабах кипит жизнь, обучают и прочее.
имел ввиду, что дело то и не в деньгах по большей части.
веб охуенная технология потому и лидирует. но вакансий помимо дохуя.
> дальше то что?
Тем боле, это не значит, что технология мертва, просто у макак и хипстеров это не пользуется спросом.
>>885636
> А чего вам всем так веб не нравится?
ECMAScript и http. Так-то http не так уж и плох был для передачи просто размеченного текста. Вебсокеты должны немного поправить ситуацию, а там посмотрим что за тенденции пойдут.
На сервере то вообще похуй, там я и на перле с таким же удовольствием буду писать, как и лет 8 назад.
А почему не должно? Я так с обрезанного бекапа разворачиваю базу локально для юнит тестирования.
Ну там ведь какие-то "secretkey" в файле этом. Ок, попробую.
>http
Ну да, я прям вижу, как ты вручную собираешь http пакеты и плачешь "Как же ненавижу HTTP!"
Олсо, скоро на всех серверах страны - HTTP/2
иди научись хотя бы обход в ширину делать.
С той, где принято пройти хорошо расписанные туториал, прежде чем задавать совсем уж глупые вопросы.
И где в девопсе именно писать на пайтоне? Потому что часто хватает баша, если уж ты админ.
Как админ, я бы хотел стать девопсом, что такое ci\cd\cd, облака, и разработка я знаю. Где питон-то юзать? Примеры задач?
нигде пиши на баше
основные виды сортировок, поиска и базовых структур данных, на которых они осуществляются. Знать сложности основных алгоритмов, а также сложности основных операций со структурами данных (доступ к элементу, вставка элемента и прочее). Хотя, честно говоря, вообще не понимаю, зачем это спрашивают у джуниоров. Такие вещи, наверное, начинают иметь значение на уровне миддла. Может кто из анонов пояснит мне.
#!/usr/bin/python
# -- coding: <encoding name> --
Но тогда комплюктер ругается на кирилицу
нет. надо использовать virtualenv
Если 2 версия стоит по дефолту, то есть вероятность, что она нужна каким-то пакетам в системе. НЕ ВЗДУМАЙ УДАЛЯТЬ!
Используй virtualenv.
Если тройка тоже установлена, то можешь запускать скрипты, используя ее. Скорее всего, она запускается так python3 script.py
Не удалял, просто переставил на 3
Вот только проблема SyntaxError: Non-ASCII character '\xd1' in file осталась
На винде фиксил, кажись, через path
1. Как запускать скрипты через >>>python3 имя.ру ?не прописывая путь
2. Как не писать # -- coding: utf-8 -- каждый раз? или настроить атом на питон 3
перейти в папку, в которой лежит имя.py с помощью cd
Не стукай, я забыл просто
Давайте.
Разобрался. Правда надо заставить script в атоме запускать код через питон 3, а не 2. Не подскажете как?
Какой там хостинг, я только учу
Разобрался. Хотя раннер таки быстрее работает. Хз кому я это пишу, ведь я тут самый быдлокодер
Лутц хорош тем, что позволяет въехать в язык тем, кто ни разу до этого не программировал. Я въезжал в питон по стандартной справке и это было пипец как сложно. Потом, когда достал книгу Лутца, оказалось, что там есть ответы на все вопросы, даже на самые тупые. А вообще - это традиционная проблема всех справок. Они рассчитаны на то, чтобы переманить программистов из других языков.
В твоей проге есть обращение к файлам? Если есть, то надо делать так
import sys, os
link_file = os.path.dirname(sys.argv[0]) + "\\test.rar"
>> 'ascii' codec can't encode characters in position 0-6: ordinal not in range(128)
Это я пытался сделать filter но данным из request.GET. Есть какой-то универсальный метод, чтобы это раз и навсегда пофиксить?
# coding: utf-8 - в начало файла ещё, может, поможет.
> я мб хочу говнокодить как-нибудь получать зарплату и спокойно себе жить, думая об аниме
> Аноны как называется это вот всё?
говнокод и проблемы с поддержкой
Макконнелл рассказывает об опыте разработки сложного софта на сотни тысяч человекочасов и работе в компаниях уровня Яндекс/ABBY/Amazon etc.
>>885931
Всмысле собранные? Python не компилируемый язык.
написал же сверху, либо 'string'.decode('utf-8'), либо 'string'.encode('utf-8'), либо какой-нибудь 'string'.encode('cp-1251'). Потыкай, что подойдет.
прочитал за 10 минут про pep8
>Всмысле собранные? Python не компилируемый язык.
Нещадно проиграл. Python действительно классифицируется как интерпретируемый язык, потому что у него нет компилятора исходного кода в машинный код, но это не значит что Python не компилируемый язык. Python можно скомпилить например в бинарник.
>>885931
pyinstaller/py2exe
Да, спасибо за помощь, но это была последняя капля - проект переехал на третий пистон
http://pastebin.com/iHYYjMxW
Ну у тебя скорее всего Global usr_in_hour = [] вот он и импортирует его. usr_in_hour.clear() ? То есть он у тебя каждый вызов читстит его, потом наполняет и при повторном вызове чистит опять в [] ?
ну тип я на крон поставил вызов команды каждый час, каждый час я заполняю список новыми данные, а старые мне уже не нужны, просто очищаю и закидываю новые. Получается он чистит только перед тем, как закинуть новые данные. Как решить эту траблу то? Если объявлять список в сигнале, то я потом хуй импортирую его
Зойчем ви пишити эту хунйю?
https://docs.djangoproject.com/pl/1.10/topics/cache/#the-low-level-cache-api
>я уже 3 день убиваю на велосипед...
Это удел всех далбаебов не способных в гугл и программирующих на питоне.
На Питоне уже блять всё есть просто найди и переделай под себя.
покумекал немного и чет не понимаю, как мне это поможет . У меня изначально стоит задача посчитать кол-во сессий за час на странице. Сессии сохраняются в зашифрованном виде, поэтому я запилил свою таблицу под сессии. Дальше я запили код во вьюхе, с помощью которого я закидываю сессии к себе в таблицу, дальше я поставил на крон команду, которая раз в час чистит бд от устаревших сессий. После выполнения этой команды мне нужно пройти по таблице и посчитать сессии(там нужно не один раз посчитать, поэтому я хочу все это засунуть в список), я хотел это сделать через сигналы(в команде из крона вызывался бы сигнал). Как в этом деле мне поможет кэширование я чет не понимаю, передвать в словаре нихуя не удобно, эти данные мне нужны только один раз в час, после этого расчет повторяется.
надо будет ебаться, чтобы при изменении значения, весь pipeline сызнова запускался. не охото это самому делать.
Очевидный lxml
если следовать идеи с сигналами, то они не работают(код выше), была мысль в функцию передать переменную, я переписал код, но теперь сигнал вроде как не проходит т.к. принты внутри ничего не отрисовывают.
http://pastebin.com/ZfmtZxP5
Вообще я может не правильно задачу понял, но вот если бы я делал, то я бы на крон (вообще нет, я бы юзал celery-django какой-нибудь) повесил задачу чистить раз в промежуток таблицу от старых сессий, и сделать вьюху, которая бы просто брала количество существующих записей в таблице. И еще вьюха, чтобы забить фейковыми данными таблицу. Ну а так-то сессия заносится в таблицу, когда юзер заходит на целевую страницу - без сигналов, просто еще пара строчек в нужной вьюхе. Не понимаю зачем там больше сигналов.
Конкретно по твоему коду не увидел где происходит запись в бд. То есть что-то в списочек пишешь, но и только-то.
на кроне висит задача чистить бд один раз в час, один раз в час я хочу получать данные из бд, а не каждый раз их считать во вьюхе. Сигнал мне нужен, чтобы после чистки базы рассчитать один раз все значения.
вот этот списочек мне нужно во вьюху вытащить, чтобы показывать, но при импорте у меня получался пустой список
Мне кажется вот это может помочь
http://stackoverflow.com/questions/3536620/how-to-change-a-module-variable-from-another-module
А вообще может и не помочь. Я на джанге давно кодил, в каком там порядке грузятся модули и когда живут, а когда умирают?
Может для промежуточного хранения результата нужно писать в бд.
пошел переводить, о результате отпишу
я не думал об этом, на самом деле наверн это норм решение т.к. мне так и выводить проще данные проще будет, а то я там заморочился и cycle под список написал. Пошел пилить, спасибо
По-моему у тебя overengineering.
Я бы написал middleware, который сохраняет session_key в БД вместе c timestamp/datetime.
Потом просто фильтровал по времени и считал.
Тогда и удалять устаревшие в принципе не обязательно.
решил уже вопрос, спасибо
Тю. Я-то думал у тебя там какая-то хитро-выебанная логика, раз такие изъебства, а оказывается...
В таком случае, не знаю в точности, что ты хочешь получить на выходе, но вангую свою задачу решаешь ты не правильно.
Энивей, как осознаешь, так и перепишешь (надеюсь).
мой первый проект, я и не надеюсь на правильные решения пока
Вот одно из различий гет и пост запроса в том, что параметры одного передаются в урле а второго в теле запроса. А что будет если передать пост запрос с параметрами и в урле и в теле? Тогда это будет гет с телом и примутся только параметры из урла? Или зависит от поведения принимающей системы? Спасибо.
Модель:
class Activity(models.Model):
..user = models.ForeignKey(User)
..add_date = models.DateTimeField(auto_created=True)
..message = models.TextField(blank=True, max_length=1000)
Форма:
class ActivityForm(forms.ModelForm):
..class Meta:
....model = Activity
....fields = '__all__'
Вьюшка:
def home(request):
..form = ActivityForm()
..if request.method == 'POST':
....form = ActivityForm(request.POST)
.......if form.is_valid():
...........form.save(commit=True)
...........return redirect('/')
.......else:
...........form = ActivityForm()
Шаблон
<form method="post" enctype="multipart/form-data"> (экшн прописывал и как {% url 'home' %} в котором эта форма и валяется, и по адресу action='.' и action='/' - до пизды дверца
{{ form.as_p }}
{% csrf_token %}
<input type="submit">
</form>
Чего оно не хочет? Я уже заебался с этими формами из раза в раз лажать нахуй, ёбанное нахуй всё блядь.
Модель:
class Activity(models.Model):
..user = models.ForeignKey(User)
..add_date = models.DateTimeField(auto_created=True)
..message = models.TextField(blank=True, max_length=1000)
Форма:
class ActivityForm(forms.ModelForm):
..class Meta:
....model = Activity
....fields = '__all__'
Вьюшка:
def home(request):
..form = ActivityForm()
..if request.method == 'POST':
....form = ActivityForm(request.POST)
.......if form.is_valid():
...........form.save(commit=True)
...........return redirect('/')
.......else:
...........form = ActivityForm()
Шаблон
<form method="post" enctype="multipart/form-data"> (экшн прописывал и как {% url 'home' %} в котором эта форма и валяется, и по адресу action='.' и action='/' - до пизды дверца
{{ form.as_p }}
{% csrf_token %}
<input type="submit">
</form>
Чего оно не хочет? Я уже заебался с этими формами из раза в раз лажать нахуй, ёбанное нахуй всё блядь.
Ньюфаги не могут пепвосить.
class Activity(models.Model):
user = models.ForeignKey(User)
add_date = models.DateTimeField(auto_created=True)
message = models.TextField(blank=True, max_length=1000)
Эксперты, подскажите плиз чего-то
анон, что то я прочитал и нового для себя ничего не выяснил, если честно. Вот на одном собесе прямо был вопрос, что будет если POST запросом передать какой нибудь файл или параметры чего либо (форма) и еще в урле параметры как в гет. Можно ли такое провернуть? Если нет да то почему и какое ожидается поведение? Спасибо если кто поможет.
Тип запроса указаывается в headers, заголовок - method. По умолчанию - GET
Если указан post,
будет POST запрос по адресу, который ты указал. Адрес включает в себя и все параметры. В django это можно разрулить еще на этапе роутинга, то есть у тебя будут в post и параметры и в качестве аргументов твоей вьюшки get параметры. А все потому что регулярочки обрабатывают адрес, который ты вбил.
Чет ты тупанул на собеседовании.
* все параметры get запроса, как если бы ты делал GET
А вообще затести сам ёпт! Тыжпрограммист.
только вкатываюсь во все это. Спасибо.
Помогите мне тупому. Хочу сделать это -
>python3 -m http.server --cgi
Для сидящих на Windows чуть проще будет запуск Python файла (заметьте, что он должен находиться в той же папке, в которой мы планируем работать!):
from http.server import HTTPServer, CGIHTTPRequestHandler
Где должен находится файл со скриптом в винде, не на рабочем столе же ? В папке с питоном ? Там нет всяких usr/bin/cgi
Ошибку-то какую-нибудь выдает?
>commit=True
Можешь убрать, оно по дефолту и так True
>enctype="multipart/form-data"
Можешь убрать, ты ведь не отправляешь никаких файлов
Отрок, окропи код свой живительной влагой print-ов или logging-ов
Поможешь мне с ЕГЭ на пайтоне?
http://example.com/search?q=shit&time=today
Я хочу заменить параметр q на crap. Чот на стаке нихуя не нашёл. Видимо использую неправильную терминологию.
А на чем у тебя сервер?
Самый цивилизованный способ - поменять на клиенте и не искать себе головную боль на сервере.
У меня не сервер, а скрипт, скачивающие картинки, на которые я дрочу. Пока пришёл к такому:
query = parse_qsl(urlparse(url).query) + [('q', 'crap')]
url = 'http://example.com/search?' + urlencode(dict(query))
Существующее значение q будет выброшено при конвертации в дикт. Хотя проще было бы стринговыми методами воспользоваться, наверное. Запилили бы метод типа qset(key, value) в урллибе.
Все в твоих руках. Сделай свой модуль на базе урллиба и расширь необходимыми методами, которые бы повысили тебе удобство в будущем.
aiokafka
Нахуя тебе это говно? Во всех нормальных либах для реквестов это всё есть из коробки.
В >>887485 изкоробочный urllib.parse, им и пользуюсь. Ещё с Анакондой шёл requests, но я его не трогал ни разу.
Это не обязательно. Просто уебывай.
Или есть способы проще?
>>887506
>>887527
Реквесты штука хорошая, но в ней вообще нет ничего для работы с урлами. Поэтому заменить параметр в строке с урлом при помощи requests не представляется возможным.
Потому что надо, ёпту, не url с параметрами давать строкой, нахуй, а url и параметры, ёпту блядь.
urlsplit > parse_qs > requests.get(url, params=qs)
Привет, питоняч.
Я, как мне кажется, сравиниельно уверенно знаю питон. Использую в основном вещи типа numpy и scipy, немного qt, недавно начал делать мультипроцессинг. Но при этом не программист ни разу, про всякую сортировку пузырьком и синглтоны в душе не ебу. Еще пишу скрипты в матлабе и немного шью ардуины, но это совсем редко. Как ты уже, наверное, догадался, я использую эти илитные знания сидя в ебучем НИИ за 16к в месяц. И тут я подумал, что хватит это терпеть, нужно искать нормальную работу, а что я умею делать? Только программировать. Я понимаю, что с такой базой я нахуй никому не сдался даже на фрилансе, так что расскажите мне, какие у меня перспективы. Что нужно к моей базе доучить, чтобы сделать хоть немного денег? Что нужно с нуля выучить? Кто-нибудь из вас вкатывался в питонрование из сириус сцайнс?
На фрилансе конечно не нужен.
А вот в приличное место с numpy/scipy могут взять. Ищи вакансии с ключевыми словами big data, data mining, machine learning и т.п.
Нахуй тебе этот веб?
>Что нужно к моей базе доучить
>про всякую сортировку пузырьком и синглтоны в душе не ебу.
К какой базе, молодой человек. Вы обосрались.
Ни алгоритмов ни структур данных не знает.
Моя база говорит))
Фрилонс на 99.995% сделан из СЛЕПИ КРУДОПАРАШУ С ФОРМОЧКАМИ и ЗДЕЛОЙ ПАРСЕР ВОН ТОГО САЙТА. Открой любую парашу типа апворка и сам посмотри чего там обычно хотят.
Ищи не freelance а просто remote-вакансии.
Но ведь синглтон это не алгоритм и не структура а ПАТТЕРН, лол.
А вообще да, если он в СОРТИРОВКУ ПУЗЫРЬКОМ не может (пиздюкам ее в школе сейчас в каком классе объясняют?), то какая там нахуй база.
>На полном серьезе считает знание bubble/merge/quick/heap sort какой-то базой.
Это все за пару дней изучается и выбрасывается за ненужностью. Как и bigO, как и половина паттернов...
Обращаюсь к тебе т.к. горят сроки в универчике. я 3ий курс. Помоги с лабкой, б-гом молю тебя.
Скину здесь условное задание что-бы не кидать всю методу
-Написать ф-ию поиска случайного простого числа из интервала с генератором случайных чисел (он дается в лабе) и тестом проверки на простоту .
-Сгенерировать через эту ф-ию 2 пары простых чисел
-Написать ф-ию генерации пар для RSA (со своими приколами, что указані в методе)
-Написать ф-ии шифрования, разш., генерации сообщения с подписью.
И там еще по-мелочи.
Спасиба ананас, я знаю ты отзовешься, а там я и методу скину.
> Скину здесь условное задание
Ты охуел с запросами-то? И Миллера-Рабина тебе написать, и решето Аткина, и RSA реализовать, и еще по-мелочи?
Пиздуй учиться. Что непонятно - спрашивай. Напизди готовых примеров из интернета и склей, на худой конец, (хуевых) реализаций каждого алгоритма сотни. А код за тебя писать никто не будет, сколько бы простой он не был, а это все равно минимум пара часов.
> Написать ф-ии шифрования, разш., генерации сообщения с подписью
Вам, надеюсь, объяснили почему не надо вот этого делать никогда в реальной практике или хоть при каком-то шансе что написанный код хоть как-то будет использоваться хоть по сколько-то близкому к назначению?
Ты с чем несогласен?
Что все это ерунда, которую не сложно выучить?
Или у тебя пригорает, что тебе ни разу не пришлось писать свою сортировку, а все время пользуешься готовой?
Или тебе хотелось написать ПИТОНЯЧИЙ СИНГЛЕТОН, а тебя коллеги за это пиздили?
Бедняжка, тебя так жаль. Плак. Плак.
>>887907
Я в порядке, благодарю за беспокойство. Побыстрее пожалуйста мой заказ принесите, хоть это вы умеете делать качетсвенно? )
С одной стороны - да.
С другой - вот нихуя неправда эти знания нинужны(tm). Их куски используются "на ходу". Ты, ясен хуй, не пишешь, например, квиксорт (нахуя, если он уже сто раз написан?), но вот - ну несколько высосанный из хуя пример конечно, но - например, идея про половинки у тебя где-то в башке засела и ты ее применяешь в другом месте, может вообще не связанным с сортировкой.
Дрочево алгоритмов это не только умение на доске написать копипасту, это еще все откладывается в башке и всплывает в памяти ассоциациями когда видишь что-то похожее. Как и большое О которое никто никогда не считает (ну, почти, иногда надо бывает), но "на глазок" прикидывают практически подсознательно.
Но, да, увидеть, понять как работает (главное) и забыть нахуй.
мимослесарь
Ну не стукай, я же сразу сказал, что я не настоящий программист. Просто с моими задачами я и без теоретических знаний алгоритмов справляюсь, мне достаточно знать, что нужно все записывать в векторной форме. Поэтому и вопрос, что нужно делать, чтобы стать нстоящим.
Не поверишь, на этапе обдрачивания нахуй
Поскольку obdrchivanie-nahui pattern не звучит, придумали другие, но суть та же.
+ хочу узнать, в чем профит знать и джанго и торнадо, на джанго сделал небольшой проект, щас хочу на торнадо.
>работал ли я с некой asynchio или что то вроде
Гугли python asyncio
> хочу узнать, в чем профит знать и джанго и торнадо
Будешь использовать джанго и торнадо в работе и получать за это деньги.
Ваш К.О.
Model.all() просто. Только начал изучать джангу, поэтому не понял как ответить. Спасибо.
спс
окей, спасибо, погуглю
Какое торнадо, какое торнадо, блядь? Дали вам 3.5, дали вам asyncio, пиши асинхронно, не хочу, хочу костыли.
По поводу того как понять - для начала узнай как реализован этот механизм в ядре и для чего, посмотри на соответствующие системные вызовы, epoll там, вот это все.
Так перебирай значения в цикле, епт, и вызывай функцию с ними, а результат в таблицу.
Петуханы, а что вообще, как там с фрилансом на питоне? Что хотят, сколько дают? У меня нет вариантов в офисы наниматься за неимением оных в моей дыре.
1) Scheduling. Есть один сайт на дажнге и есть скрипт, который ползает по БД этого сайта и выдает результат в файл. Нужно сделать, чтобы этот скрипт запускался каждые 6 часов. В учебном проекте по джанге использовался Celery, но интересно, чем анон пользуется для таких задач.
2) Monitoring. Предыдущий скрипт сгенерировал нам новый файл, теперь нужно из него сгенерировать красивый pdf и отправить по почте. Отправка по почте и генерация pdf мне не важна, но вот как можно мониторить появление новых файлов в папке? В той же джанге были сигналы, но а вообще как сделать, чтобы сервер сам мониторил поступление новых файлов и запускал скрипты?
3) Вопрос по джанге: как можно реализовать пост для блога с картинками? Т.е. нужно сохранение структуры типа 3 абзаца - фото и тд. Как все это можно сохранить в БД?
^([a-z]([-a-z0-9\.]*[a-z])?){1,20}$/i
1) Celery самый приличный вариант, можно и cron, если никуда деплоить не надо.
2) См. п.1, просто сканишь директорию на наличие новых файлов, может, ещё inotifywatch прикрутить как-то.
3) А какие сложности? Берёшь и без задней мысли сохраняешь. Если связи тебе нужны, то это уж от функционала зависит.
Вопрос - зачем тебе мониторинг, если уже есть шедулинг?
Запускай остальную обработку когда задание на генерацию pdf завершится, в Celery есть функционал.
Книга бестолковая, про шаблонизатор зачем-то больше написано, чем про саму модель асинхронности в Торнадо.
Я бы рекомендовал сначала почитать Luciano Ramalho - Fluent Python, конкретно главы про корутины и конкуррентность. Там довольно подробно всё расписано. Далее уже можно читать доки Торнадо, может видео на ютубе найдёшь годные (я не находил).
Кукареки не слушай, Tornado зрелый и всё ещё актуальный. Перелезть на asyncio всегда сможешь.
Ну сам посмотри https://www.upwork.com/o/jobs/browse/?q=Python OR Django&sort=create_time+desc
Если опыта немного, то, возможно, будет сложновато. И если долгое время ничего не будет получаться, то лучше переезжай в другой город и устраивайся в офис. Потому что на апворке можешь много драгоценного времени проебать, пытаясь взять заказы, а опыта так нихуя и не получить.
да я только начинающий, просматриваю актуальные технологии, пробую что то написать. Окей спасибо. Асинхронность понять важно.
ректально извращаюсь с питоном уже год что нужно доучить к нему(язык какой или ещё чего)?
Я с высоты своего говнокодирования думаю, что года мало, лучше попердолиться хотя бы еще один.
Второй язык я собираюсь учить js, если кто-нибудь меня попробует отговорить, я буду очень рад.
алсо aiopg, aiosmtplib и следи за ексепшенами внутри корутин
https://www.destroyallsoftware.com/talks/wat
но если веб задача, то без него конечно никак и придется учить.
ну ходят слухи что компании уровня яндекса иногда набирают. наверное попасть в такой набор не реально, не будучи студентом - отличником с какого нибудь знаменитого физмата страны.
набирают они вроде 24/7 только отбор там реально жесткий
https://yandex.ru/jobs/internship/
Смотри полезные материалы
Нет, не бывать этому.
в Минске пока что тоже нету ничего.
От начального уровня зависит. Если раньше вообще не кодил в вебе, то может и на полгода затянуться.
>{% if im.url%}
А ты уверен, что передаешь im в шаблон? А то выглдяит так, будто ты сначала проверяешь, а уже потом делаешь
>user.profile.photo as im
Хуйня какая-то
Оставь все как на 2 пике, только попробуй im.url, а не im.image.url
Да делал так уже. Не пойму почему в условие не заходит. Если картинки у юзера нет то в тег "а"
тег "img" вообще не добавляется(пик 2).
Вообще, скажите как лучше:
Добавлять юзеру автоматически "No image" дибо просто как у меня в темплейте рендерить картинку?
У объекта пользователя и так есть необходимая информация - или путь к картинка или null.
Как именно показывать состояние "отсутствие картинки" - дело представления, т.е. шаблона.
и через User.objects.get(username=request.user.username) и через просто shit_to_db.user=request.user - всё тлен
Хотя казалось бы фенечка ну не то что базовая, но блядь используется по пять раз на дню
Пофиксенная версия:
хули я из modelForm во вьюхе через if request.method=='POST' не могу выцепить залогиненного юзера через request.user?
и через User.objects.get(username=request.user.username) и через просто shit_to_db.user=request.user - всё тлен
Хотя казалось бы фенечка ну не то что базовая, но блядь используется по пять раз на дню
бамп
opencv
models.py
class Feedback(models.Model):
..user = models.ForeignKey(User, null=True)
..message = models.TextField()
forms.py
class FeedbackForm(forms.ModelForm):
..class Meta:
....model = Feedback
.....fields = ('message', )
views.py
def home(request):
..feedbackform = FeedbackForm()
..if request.method == 'POST':
....feedbackform = FeedbackForm(request.POST)
....if feedbackform.is_valid():
......feedbackform.save(commit=False)
......feedbackform.user = request.user - вот в этом месте я перепробовал всю магию какую знал
......feedbackform.save()
......return redirect('/')
....else:
......feedbackform = FeedbackForm()
..return render(request, 'hui.html', {'feedbackform': feedbackform})
в итоге сообщение добавляется ииииии... всё. Юзера не цепляет никаким хуем
может хуй знает, в модели переписать сохранение как-то на self.user'а , у меня уже просто фантазии не хватает понять
models.py
class Feedback(models.Model):
..user = models.ForeignKey(User, null=True)
..message = models.TextField()
forms.py
class FeedbackForm(forms.ModelForm):
..class Meta:
....model = Feedback
.....fields = ('message', )
views.py
def home(request):
..feedbackform = FeedbackForm()
..if request.method == 'POST':
....feedbackform = FeedbackForm(request.POST)
....if feedbackform.is_valid():
......feedbackform.save(commit=False)
......feedbackform.user = request.user - вот в этом месте я перепробовал всю магию какую знал
......feedbackform.save()
......return redirect('/')
....else:
......feedbackform = FeedbackForm()
..return render(request, 'hui.html', {'feedbackform': feedbackform})
в итоге сообщение добавляется ииииии... всё. Юзера не цепляет никаким хуем
может хуй знает, в модели переписать сохранение как-то на self.user'а , у меня уже просто фантазии не хватает понять
А вот так?
feedback = feedbackform.save(commit=False)
feedback.user = request.user
feedback.save()
бахаешь модель, бахаешь форму, бахаешь вью, бахаешь хтмл с формой, цсрф-токеном и СЛИВАЕШЬ - ОППА, рег форма
Если форма без еботни с токенами, джаваскриптом и т.п. - берешь requests, делаешь POST запрос на целевой сервер.
Если форма сложная - попробуй selenium.
я ленивый педик, прости. Но ты тоже ленивый педик, ведь ты не можешь в гугл
> Hi,
> I m looking to have a tool that will first scrape any website(but specifically e-commerce) and draw out information(category, sub-categories, articles/products) in an ordered manner in a csv file.
ахуительные задания
sikuli
Спасибо большое, последний вопрос: где можно почитать про то, как формируется запрос и как мне сгенерировать запрос со всеми готовыми формами?
ДИВО ДИВНОЕ ЭТО РАБОТАЕТ! Я хуй понял почему и как но завелось как влитое.
Спасибо
>>889116
>AuthenticationMiddleware
Спасибо, было включено
а че на ЕГЭ комменты писать нужно? В этом году сдаю ЕГЭ на питоне и в душе не ебу как решение правильно записывать.
> посмотри выступление Бизли, где он 3 часа рассказывает про асинхронность в питоне
Кинь ссылку, плес
>Я хуй понял почему
Когда ты вызываешь save(commit=False) у формы, то этот метод возвращает экземпляр модели Feedback, но не сохраняет в бд. Ты его записываешь в переменную feedback, делаешь что-то с ним и вызываешь метод save() уже у экземпляра модели Feedback.
Когда ты делаешь
>feedbackform.save(commit=False)
>feedbackform.user = request.user
то ты пытаешься у экземпляра формы FeedbckForm поменять поле user, но не у экземпляра модели Feedback.
Я уже примерно на таком велосипеде и катаюсь. Иероглифы ещё работают, но всякие стрелочки-сердечки уже нет. Тут нужен более-менее объемный модуль.
Можно изъебнуться так:
target_func(args=my_list_with_args) ?
Мне надо вытянуть первую ссылку из первого параграфа определенного класса. Как "достучаться" до класса я понял, а дальше что? Как-то в цикле надо искать <p>?
http://pastebin.com/aD83cqqT
.class p a
a = ['h', 'e', 'l', 'l', 'o']
в Лист "b", который будет равен
b = ['hello']
То есть все елементы сложить в один
Вот так сделай, чтобы все в классе охуели:
f = lambda l: l[0] + f(l[1:]) if l else ""
b = [f(a)]
Вот так сделай, чтобы все в классе охуели:
(lambda a: [('{}'len(a)).format((s for s in a))])(a)
да в пизду короче
Я фонат плейна.
есть говно вида
main_dict = dict.fromkeys(set(domain_list), list())
for row in file.readlines():
....main_dict[my_domain_pattern.findall(row)[0]].append(row)
domain_pattern - скомпиленный регексп,
main_dict, как видите, перед этой херней я заполнил пустыми списками, чтобы в них аппендить можно было
Только цимес в том, что на выходе после обхода файла у меня каждое значение в ключе имеет блядь все подходящие под регексп строки. Сейчас дошло что я каким-то образом может хуякнул во все значения один и тот же словарь?
Я помню что читал про эту фигню, про эту уловку, но я думал что list() как раз-таки даст мне этого избежать в отличии от [].
Спасибо
main = {k: [] for k in set(keys)}
Между list() и [] разницы нет.
Ты читал скорее всего про то, что в defaultdict надо передавать list, а не [].
Не "list()", а "list". Функцию, создающую список, а не сам список.
defaultdict у себя внутре эту функцию дёргает кучу раз и получает кучу инстансов пустых списков. А когда ты передаёшь пустой список аргументом в dict.fromkeys лист всего один и все процедуры выполняются с ним.
dict.fromkeys лучше использовать только с иммутабельными значениями - числами, строками и т.д.
C чего ты решил?
нужен линеечный, самый простой считай
Спасибо большое
Мне бы и какая-нибудь ссанина на жс подошла, лишь бы просто безо всяких ебанутых json'ов прикручивалась.
Но в идеале конечно что-то что бы само из модели гребло и графиком няшно выстраивало
ну так если жс либа, то там без json никак наверное? с бекенда отдаешь json и рендеришь на графике. и чем он вообще плох-то? нормальный же формат.
http://www.highcharts.com/ эти посмотри, может быть
Есть кривой порт ggplot.
Это копия, сохраненная 23 декабря 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.