Ответы пользователя по тегу Python
  • Как работать с готовой базой данных sql?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Неужели так сложно загуглить?
    Букавально первая ссылка по запросу:
    sql server python
    Ответ написан
    Комментировать
  • Куда можно задеплоить телеграм бота с sqlite?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Бесплатно - никуда (кроме heroku).
    Платно - любой VDS.
    Касательно же heroku - там есть поддержка postgresql. При нормальной структуре кода переписать с sqlite на postgresql относительно просто.
    Ответ написан
    1 комментарий
  • Как в словарь добавить новый элемент по условию?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Проблема в том, что из-за повторных проходов данные затираются.
    Добавьте проверку, что значение accessory пустое.
    goods_dict = [
            {'id': '1', 'goods': 'macbook 16 pro', 'brand': 'Apple'},
             {'id': '2', 'goods': 'ThinkPad X1 Extreme Gen 3', 'brand': 'lenovo'},
             {'id': '3', 'goods': 'XPS 17 9710 Silver', 'brand': 'Dell'}
             ]
    #лист акссесуаров
    add_lists = [
            ['Apple','стилус'],
            ['lenovo','коврик'],
            ['hp','мышь'],
            ['asus','флешка']
           ]
    for item in add_lists:
            item_brand = item[0]
            item_name = item[1]
            print(item_brand)
            print('-',item_name)
            for good in goods_dict:
                    good_brand = good['brand']
                    print('--',good_brand)
                    if not good.get('accessory'):
                            if good_brand == item_brand:
                                    good['accessory'] = item_name
                            else:
                                    good['accessory'] = None
    for good in goods_dict:
            print(good)
    Ответ написан
    Комментировать
  • Как добавить в базу данных SQLite3 id пользователя и введенное им сообщение?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Я бы вам советовал почитать, для начала, что-нибудь по проектированию баз данных и sql.
    Просто такое ощущение, что вы тыкаете наугад, в надежде, что что-то да выйдет. При первом сообщении юзера, полагаю, все проходит нормально. А во второй раз выдает ошибку:
    sqlite3.IntegrityError: UNIQUE constraint failed: test.us_id
    .
    Что значит (относительно вольный перевод).
    sqlite3.IntegrityError: условие "УНИКАЛЬНОЕ значение" не соблюдено: test.us_id
    .
    Слово УНИКАЛЬНОЕ специально написано заглавными. К тому-же, у вас на скриншоте видно, что в графе уникальность стоит "галочка". Следовательно, с такой схемой таблицы, у одного юзера - одно сообщение.
    Ответ написан
    Комментировать
  • Есть код питон. Как исправить?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Для начала отложить ботописательство и изучить python.
    Например, по книге Марк Лутц - Изучаем python. 5-e издание.
    Без знания основ вы, каждый раз как будет выскакивать ошибка, будете бежать в гугл/сюда/на stackowerflow с подобными вопросами.
    Конкретно по вашему вопросу - в указанной книге пятый раздел первого тома полностью посвящен модулям, на отсутствие которого ругается интерпритатор.
    Ответ написан
    Комментировать
  • Как преобразовать список, полученный с базы данных, в словарь?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Возможно.
    Правда не очень понятно, что именно вы хотите сделать.
    Если превратить каждый отдельный кортеж, то напишите функцию такого вида:
    some_dict = {}
    some_dict["letter"] = db_row[0] # db_row - кортеж
    ...
    return some_dict

    После чего пройтись циклом и преобразовать каждый элемент.
    Если же нужно сделать из исходного списка словарь (в полезности и необходимости чего я сильно сомневаюсь), то это должно быть какие-то так:
    some_dict  = {}
    ... # do cycle
    some_dict[cha_index] = cha[cha_index] # cha_index - индекс значения в списке.
    Ответ написан
    Комментировать
  • Как подключить CRM битрикс в бот телеграм?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    0.А оно надо?
    краткие тезисы по п.0

    Просто задайте себе эти вопросы для начала:
    • Действительно ли логика взаимодействия с пользователем настолько сложна, что нужно использовать монструозную (ничего не имею против, но в качестве "бекенда для бота" выглядит слишком тяжеловесно) систему, написанную на другом языке?
    • Не решит ли проблему использование ORM?
    • Если "сервер" все таки нужен (пока-что непонятно зачем), не лучше ли использовать python-решения (django+DRF, например)


    1.Если п.0 не переубедил, то вот, похоже, доки по api битрикса. Вот доки по requests, с помощью которых будете посылать запросы.
    Или отправьте на фриланс где не дорого за задачу возьмут. на кворке желающих не нашлось (

    3.Оно и понятно, с такими-то задачами. Но можете поискать удачи на хабр фриланс
    Ответ написан
  • Почему не отображаются данные?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    По какому, конкретно, адресу? Проблема, возможно, в том, что у вас равносильные, с точки зрения парсера урлы:
    urlpatterns = [
        path('<int:cocktail_id>/', by_cocktail_id),
        path('<str:cocktail_name>/', by_cocktail_name),
        path('', index),
    
    
    ]


    И допустим есть урл вида: mysite.ru/1/
    И как django должен это понимать? 1 как строку, 1 как число?
    Для начала, выделите роуты более конкретно. Далее - проверяйте каждый роут отдельно. Есть как минимум несколько "точек внимания": Какие данные приходят? Находит ли django коктейли в базе (print в консоль)? Правильно ли передаются ли данные в шаблон?
    И да, использовать в качестве роута название в чистом виде - сомнительная практика. Как минимум, если в названии есть пробелы, то они заменятся на %20 И тогда в качестве параметра придет что-то вроде:
    имя%20коктейля
    Используйте slug
    Ответ написан
  • Как обработать данные в телеграм боте (телебот)?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Очевидно, что содержимое call.message.text не может быть преобразовано в число.
    Возможно есть лишнее буково-символьное содержание, возможно вообще является неподдерживаемым типом (list/dict, что-то еще (не знаком с конкретно этой либой)). Проверяйте что приходит. Если нужно - выделяйте нужную часть (split/slice или любым другим способом). Если виноват юзер, присылающий непотребства, валидируйте.
    Ответ написан
    Комментировать
  • Как сделать обновление сайта каждые 10 секунд?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Используйте сокеты.
    Они позволяют создавать потоковое соединение между клиентом и сервером, что в свою очередь.
    • позволит серверу в реальном времени сообщать фронту, что нужно обновить данные на странице.
    • уменьшит потребление ресурсов (поддержка одного соединения вместо обработки десятков запросов)
    Ответ написан
    Комментировать
  • Как с помощью библиотек python распознать соответствие жеста руки (рук) человека с первой картинки и человека со второй картинки?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Есть openCV (не только для python), умеющая в компьютерное зрение.
    Минус в том, что это довольно низкоуровневая вещь, которую нужно будет "научить". Однако плюс в том, что у нее большое сообщество и такая тривиальная вещь как распознавание жестов 100% кем-то реализована.
    Ответ написан
    1 комментарий
  • Как данные из одной таблицы sqlite3 передавать в другую?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Извините конечно, но текущая реализация - чудовищная. Как минимум хранить числовые значения в виде текста - максимально неверный подход (для количества integer, для денежных значений - decimal)
    Чуть более верная структура*:

    Coin:
    • Coin_id:int PK
    • Name:char

    User:
    • User_id:int PK
    • ...

    Flow:
    • Id:int PK
    • Date:datetime
    • Amoung:int
    • Price:decimal
    • Coin_id:int FK->Coin
    • User_id:int FK->User

    Как считать? Делаете выборку по ключу монеты с применением sum() к Flow.amoung.
    * - в зависимости от подробного, ТЗ реализация может отличаться. Здесь лишь приведена абстрактная схема, составленная по вашему общему описанию и с учётом минимальных норм нормализации.
    Ответ написан
    2 комментария
  • Как понять какие параметры вставлять в post запрос?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    А нам то откуда знать?
    Либо у ресурса есть документация по api, в которой четко указано, что и куда нужно посылать.
    Либо, если документации нет, реверс-инженерить и узнавать какие данные посылает браузер, в надежде не словить бан.
    Ответ написан
    Комментировать
  • Python / Generator как это решить?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Для начала - выучить азы pyhon.
    def generator():
        pass
    gen = generator()

    Смысл объявления пустой функции?

    gen = (s(k)/4 for k in range(10)):
    Во-первых, конструкция вида [литерал]([аргументы]) всегда будут восприниматься как вызов функции с названием [литерал] аргументами [аргументы]. А объявленой функции с именем s у вас нет.
    Далее непонятно, зачем у вас двоеточие и print(next(gen)) с отступом.
    И к тому-же, next(gen) не будет работать, т.к. generator() ничего не возвращает.
    Если пытались изменить код, то зачем? Судя по шаблону, вам нужно написать генератор в соответствующей функции generator() и уже по нему итерироваться.
    def generator():
        pass
    
    
    gen = generator()
    for _ in range(10):
        print(next(gen))
    Ответ написан
    Комментировать
  • Почему тут ошибка?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1.Почему-бы, перед тем как брать откуда-то код (ну или писать свой, не суть) не почитать пару уроков (или пару глав любого учебника) по языку?
    2.В ошибке, которую вы не показали, кстати, четко написано, почему не работает (и даже сказано в каком конкретно месте ошибка):
    IndentationError: expected an indented block after 'while' statement on line 11

    Перевод, на всякий случай (вдруг вы английский не знаете, а абсолютно все переводчики вас забанили).
    IndentationError: ожидался блок с отступом после оператора while в строке 11

    Возможно я ожидаю слишком многого, но тут вроде-бы даже без знания языка можно понять, что нужно сделать (добавить отступ)
    Ответ написан
    Комментировать
  • Как добавить JSON для обычной страницы HTMl?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1. Запустить python напрямую из html/js нельзя.
    2. Можно использовать js (xmlhttprequest)
    3. Если принципиально использовать python можно использовать сервер, написанный на python:
    3.А: Простой самописный сервер (гугл в помощь).
    3.Б: Использовать готовую библиотеку:
    • flask + jinja2 (оптимально для "одностроничника")
    • django
    • fastAPI
    Ответ написан
  • Как создать проверку на id из текстового файла?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Ну, для начала - зачем приводить invite_id к числовому типу? readlines возвращает массив строк вида:
    ['1212\n', '12323\n', '3434']
    А in работает либо на точное совпадение (числа), либо на вхождение (строки),
    (пусть поправят, если неправ)
    Простой пример:
    # db.txt
    1212
    12323
    3434
    # main.py
    with open ('db.txt', 'r', encoding='UTF-8') as file:
        lines = file.readlines()
        if str(3434) in lines:
            print('ok')
        else:
            print(lines)
    Ответ написан
    Комментировать
  • Как за каждую итерацию цикла добавлять в list?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    import openpyxl
    book = openpyxl.load_workbook('some.xlsx')
    sheet = book.active
    new_list = [] 
    for cellObj in sheet['A2': 'C9']:
        some_list = []
        for cell in cellObj:
            some_list.append(cell.value)
        new_list.append(some_list)
    print(new_list)
    Ответ написан
    Комментировать
  • Как боту vkbottle вывести топ 30 пользователей из sqlite3?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1. Добавьте LIMIT 30 в sql

    я не понимаю как работать с кортежами в кортеже

    Очевидно же, что так-же, как и с кортежами вне кортежа.
    Вы правда хотите сказать, что не нашли ничего в интернете или вас что, в гугле забанили?
    Структуры данных в офф.доках
    А вот, например, [Изучаем Python. 5-е изд. Том 1. Марк Лутц]:
    Кортежам посвящена отдельная глава.
    62446b8753009997782438.png
    Ответ написан
    Комментировать