Ответы пользователя по тегу Python
  • Есть ли какие-то онлайн компиляторы кода Python?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Есть. Называются VDS (серваки, простыми словами). Арендуете, подключаетесь по ssh и кодите на здоровье.
    Вариантов - тьма. Гуглятся легко
    Ответ написан
    Комментировать
  • Что делать, если не запускается бот на telebot в Pydroid?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Скорее всего, вы поставили не ту либу.
    pip uninstall telebot # удалить телебот
    pip install pyTelegramBotAPI # установить нужную либу
    pip install pytelegrambotapi --upgrade # ЛИБО обновить

    После этого, код должен заработать (без изменений)
    Ответ написан
    2 комментария
  • Каким образом AJAX функционирует с джанго?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    где на стороне сервера, будет информация о том, что находится ли фильм в избранном,

    она и в любом случае будет на стороне сервера. Вопрос в том, как ее получать.
    Я бы при загрузке страницы получал все необходимые данные через контекст представления, отображающего страницу и отображал соответствующие кнопки с помощью шаблонов.
    А js-запросы использовал бы только для обновления состояний (посылая запросы на необходимые урлы).
    Другое дело, что ajax, как и jquery в целом - мало актуальны. Как минимум для запросов можно использовать xmlhttprequest или fetch.
    А вообще, как альтернативу - можете посмотреть на фреймоврки по типу react/angular/Vue.js
    Ответ написан
    3 комментария
  • Drag and drop путь в Python и command line?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    main.py hello_world
    import sys
    print(sys.argv[0]) # путь до самого скрипта
    print(sys.argv[1]) # hello_world
    Ответ написан
    1 комментарий
  • Как сделать нумерацию при выводе?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Вариант для не знающих синтаксис и не умеющих в гугление: цикл и счетчик.
    pythonic-вариант emumerate
    Ответ написан
  • Задача. Скачать файлы(robot.txt и sitemap.xml) с сайтов которые находятся в файле site_base.txt, как пройти по всем значениям?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Как-то так? Возможно несколько переусложнено и нет проверки на статускод (сами допишите, если надо), но оно работает
    # site_base.txt
    https://xakep.ru
    https://habr.com
    https://vc.ru
    
    # [file_name].py
    import requests
    import os
    def append_filename(url:str, filename:str) ->tuple:
        domain = url.split('//')[-1] 
        data = (domain,  url + '/' + filename)
        return data
    
    
    def save_file_to_disk(filename:str):
        if not os.path.exists('files'): os.mkdir('files')
        with open('site_base.txt', 'r', encoding='UTF-8') as site_base:
            sites_list = site_base.read().split('\n')
    
        urls_list = [append_filename(url, filename) for url in sites_list]
        for url in urls_list:
            try:
                domain = url[0]
                requested_url = url[1]
    
                response = requests.get(requested_url)
    
                saved_filename = domain+'_'+filename
                file_path = os.path.join('files',saved_filename)
    
                with open(file_path, 'a', encoding='UTF-8') as robots:
                    robots.write(response.text)
            except requests.exceptions.RequestException as e:
                print(e) 
    
    save_file_to_disk('robots.txt')
    save_file_to_disk('sitemap.xml')
    Ответ написан
    4 комментария
  • Как работать с готовой базой данных 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))
    Ответ написан
    Комментировать