• Как правильно писать декораторы для Django DRF?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Для начала встречный вопрос: вместо готовых решений (Стандартный токен или JWT) использовать для авторизации в DRF сессии с самописными проверками - обоснованный шаг?
    Касательно вопроса - давайте подумаем логически:
    The view api.views.game.view didn't return an HttpResponse object. It returned None instead.

    Здесь четко сказано, что вьюха ничего не вернула, хотя должна была вернуть HttpResponse. Оригинальная вьюха возвращает Response. Далее вопрос "на подумать": что возвращает декоратор, если не падет с исключением?
    ---
    Видел еще вот такой подход, но для меня он тоже не работает:

    "Не работает" - офигенное определение. Ну так почините.
    Ответ написан
    Комментировать
  • Почему regex работает некорректно?

    Vindicar
    @Vindicar
    RTFM!
    Упрощённый пример: что сматчит "\d+" в строке "123456"? Очевидно, всё - потому что умолчанию квантификаторы + и * жадные, т.е. пытаются сматчить как можно больше. У тебя .* - т.е. "матчи всё подряд, сколько получится", а ограничивается только тем, что "дальше должна идти запятая и пробел". Обрати внимание на ещё одну запятую с пробелом в конце твоей строки data.
    Что делать?
    а) сделать квантификатор не жадным: type=(.*?), Тогда он будет пытаться сматчить как можно меньше.
    б) уточнить, какие именно символы могут захватываться группой type=([a-zA-Z0-9_]+),
    Ответ написан
    Комментировать
  • Почему на работе в офисе и удалёнке от Django Backend Developer требуют не только Django?

    solotony
    @solotony
    покоряю пик Балмера
    Просто потому что невозможно быть веб-разработчиком (пусть и чтосто бэкенд) и при этом не иметь представления о том что приходит на фронте. Если ты не знаешь ничего кроме Джанго - то скорее всего ты вообще ничего не знаешь, опыта у тебя нет и тратить время на тебя рекрутерам не хочется.
    Ответ написан
    Комментировать
  • Правильный способ использования websockets в Django?

    @aLap Автор вопроса
    В общем, разобрался самостоятельно, вот что вышло, может, кому-то пригодится:

    from channels.generic.websocket import WebsocketConsumer
    from asgiref.sync import async_to_sync
    import json
    
    
    class WsConsumer(WebsocketConsumer):
        def connect(self):
            self.accept()
            self.user_id = self.scope['url_route']['kwargs']['user_id'] # ID пользователя приходит как часть url
            async_to_sync(self.channel_layer.group_add)( # Добавляем пользователя в собственную группу
                str(self.user_id),                            # Таким образом, сообщения будут во всех табах
                self.channel_name
            )
    
        def disconnect(self, close_code):
            pass
    
        def send_message(self, event):  # Функция отправки должна быть внутри consumer'а
            message = event['message']
            message['type'] = 'message'
            self.send(json.dumps(message))
    
    
    def send_to_group(group_name, message): # А эта функция за пределами класса
        from channels.layers import get_channel_layer #  и может быть вызвана откуда угодно в рамках проекта
        from asgiref.sync import async_to_sync
        message = {'message': message}
        channel_layer = get_channel_layer()
    
        async_to_sync(channel_layer.group_send)(group_name, {"type": "send.message", # значение type должно совпадать с именем функции отправки внутри класса, только с точкой вместо подчеркивания. Такая логика.
                                                             "message": message})
    Ответ написан
    Комментировать
  • Как сделать элемент активным при загрузке страницы?

    @DmItrENub
    if (window.onload)
    {
        тут код
    }
    Ответ написан
    Комментировать
  • Как сделать так что бы бот python отвечал на команды?

    Vindicar
    @Vindicar
    RTFM!
    Ну ты же сейчас опять словишь удаление с формулировкой "задание а не вопрос"...
    И ответ всё тот же:
    man == ('давай поиграем?', 'Сыграем?')
    Такое сравнение НИКОГДА не сработает. Учи Питон, узнавай как производить множественное сравнение.
    Либо man == 'давай поиграем?' or man == 'Сыграем?'
    Либо man in ('давай поиграем?', 'Сыграем?')
    Ответ написан
    9 комментариев
  • Не выводится модель в Pygame что делать?

    @jkovalenko
    опечатка в классе gun
    не __int__, a __init__
    Ответ написан
    2 комментария
  • Пытаюсь понять причину ошибки в боте?

    @twistfire92
    Python backend developer
    Изучите ошибки и научитесь их читать. Сказано же, что datag нет ключа privatch
    Поэтому пользуйтесь методом get()
    datag.get("privatch", <Значение по умолчанию>).

    И что это за адово дерево с if if if if if?
    Вы же делаете там одно и то же несколько раз

    замените его на
    count = 6 # сколько раз вам надо делать эту проверку
    for _ in range(count)
        if xep >= lvlup:
            colluser.update_one({"_id": member.id},
                {"$set": {"exp": expn}})
            colluser.update_one({"_id": member.id},
                {"$set": {"lvl": lvl + 1}})
        else:
            return #  или просто break
    Ответ написан
    1 комментарий
  • Как посчитать количество объектов и вывести его в HTML?

    @serhiops
    Python/JavaScript/C++
    count = Coment.objects.filter(user = some_user).count()

    Так же если вы берете коментарии через текущего пользователя, то можно использовать агрегатные вычесления:
    from django.db.models import Count
    coments = User.objects.get(pk = some_pk).get_coments.agregate(cnt = Count("coment"))
    count_coments = coments["cnt "]

    В данном урывке get_coments - значение атрибета related_name в вашей модели. Если вы его не указали явно, то он будет иметь следующий вид : <имя таблицы>_set
    Немного больше о related_name
    Ответ написан
    6 комментариев
  • Как сделать переходы в aiogram из одной ветки в другую?

    senku1435
    @senku1435
    py aiogram develop, c# mid
    Добрый день пожалуйста поработайте с состояниями! Есть прекрасная статья, там все предельно легко
    https://surik00.gitbooks.io/aiogram-lessons/conten...
    Это вам поможет и в дальнейшей разработке это раз
    Два
    Сделайте кнопку которая будет обратно возвращать на функцию старт, тогда пользователь сможет снова выбирать
    return_button = ['/start']
        keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
        keyboard.add(*start_buttons)

    Так же хочу предложить импортировать все клавиатуры из другого файла для использования несколько раз(для возвратов)
    Ответ написан
    8 комментариев
  • Как вывести \n в python?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Экранировать бэкслеш
    print('\\n')
    print(r'\n')
    Ответ написан
    Комментировать
  • Как совместить работу aiogram и pillow?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Программирование - это не про поиск готовых решений. Если в теории понимаете, то воплощайте на практике. Если не можете, то не понимаете, перечитывайте документацию.
    Ответ написан
    Комментировать
  • Как проверить работоспособность плашки ОЗУ?

    xez
    @xez
    TL Junior Roo
    Пуск -> Средство диагностики памяти Windows.
    Перезапускаетесь.
    Выбираете "Расширеный режим"
    Оставляете на ночь (6-7 прогонов).
    Ответ написан
    Комментировать
  • Как проверить работоспособность плашки ОЗУ?

    @kisaa
    Memtest86
    https://www.memtest86.com/

    Скачать, записать на флэшку, загрузиться, запустить, оставить на ночь.
    Ответ написан
    1 комментарий
  • Как выводить боту команду через кнопку, отличающуюся от текста на ней?

    @twistfire92
    Python backend developer
    никак через такие кнопки этого не сделать.

    Пользуйся Inline кнопками, там и о командах не надо будет париться
    Ответ написан
    Комментировать
  • При запуске виндовс 10 вместо рабочего стола командная строка, что делать?

    @Smirator
    Банально простой ответ - снести и поставить винду вновь.
    Способ может быть варварский, но наиболее результативный
    Ответ написан
    1 комментарий
  • Почему пост запрос не работает?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Мне кажется, должен быть ключ SECRET_KEY, а не SECURE_KEY.
    Впрочем, легко проверить.
    Ответ написан
    1 комментарий
  • Как вывести данные из sqlite/sqlalchemy?

    @Wispik
    GuessBookItem.query.all()
    Учись пользоваться документацией
    Ответ написан
    Комментировать
  • Почему программа удаляет объекты из списка не правильно?

    @dmshar
    Во-первых, это не программа удаляет объекты неправильно, это вы написали такую программу, которая неправильно работает.
    Во-вторых, никаких двух проходов не надо.
    my_list = ['some word', 'some', 'leave', 1, None, 'leave', True, 'leave', 'else']
    for i in my_list[::-1]:
        if i != 'leave':
            my_list.remove(i)
    print(my_list)


    Вот что на выходе:
    ['leave', 'leave', 'leave']

    Обычно об этом говорят на первой-же лекции, посвященной работе со списками. Ну, или пишут в начале соответствующего параграфа в книгах.
    Ответ написан
    Комментировать
  • Возможно ли найти удаленную работу для junior iOS разработчика?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    1. Насколько сложно получить удаленную работу для начинающего iOS разработчика позиции Junior? Получить удалёнку, хотя бы, на самое первое время, с последующим переездом и работы в офисе на компанию?

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

    2. Являются ли вообще те самые объявления, немалое количество которых я нашел на HH - настоящими, подлинными, действующими? Т.е. те объявления где работодатели или компании действительно ищут начинающего разработчика iOS уровня junior, с возможностью удаленной работы?

    Никто не знает, пока вы не позвоните по объявлению и не выясните. Вряд ли кто-то возьмется сейчас исследовать все объявления на HH чтобы выяснить там предлагают работу или берут в плен и продают в рабство.
    Нужно понимать, что у более-менее стабильных компаний, зачастую список вакансий можно найти на сайте этих компаний, поэтому рекомендуется поискать такие вакансии.
    А на аггрегаторах типа HH обычно будут и менее стабильные и известные компании, и вакансии могут быть устаревшими, так как не всегда после приема человека на работу, вычищают за собой закрытые вакансии.
    Поэтому чтобы не мудрить с процентами, всегда ставь 50% или да или нет.

    3. Отдельно хочу поинтересоваться насчёт прописанной в некоторых объявлениях по поиску junior(!) iOS developer'а возможности релокации из регионов и довольно отдаленных мест, в которых живёт тот, кто хочет начать работать начинающим специалистом, в офисы компаний, но без удаленной работы. Релокация из другого места ios junior'a, подходящего и соответствующего требованиям из объявления - такое тоже может быть возможно?

    Релокация в пределах страны - вещь не самая сложная, но даже ее обычно предлагать может компания с офисом, а не с подвалом. Поэтому для релокации можно конечно смотреть и перебирать HH, но надежнее будет найти топ-50 компаний и поискать список вакансий на их официальных сайтах.

    Все советы по поводу попасть в приличную компанию нужно естественно умножать на коэффициент вашей квалификации - от нее зависит почти все.
    Ответ написан
    Комментировать