• Какой интернет-эквайринг лучше для партнерских отношений?

    @bubaley Автор вопроса
    Нашли своего парнера - Best2Pay, который может быстро и удобно подключать новых клиентов + адекватные комиссии + он является парнером НСПК, что позволяет клиенту не открывать доп. расчетный счет.
    Ответ написан
    Комментировать
  • Как правильно регистрировать глобальные компоненты во vue + typescript для интексации?

    @bubaley Автор вопроса
    Нашел простую реализацию

    declare module '@vue/runtime-core' {
      interface GlobalComponents {
        CButton: typeof CButton
      }
    }


    vscode начал индексировать и видеть все props, emits и т.д.
    Ответ написан
    Комментировать
  • Как правильно собрать npm пакет из Vue.component с вложенными компонентами из других библиотек?

    @bubaley Автор вопроса
    Надо было в vue.config.js в transpileDependencies
    добавить мою библиотеку
    Ответ написан
    Комментировать
  • Как сжать массив координат?

    @bubaley Автор вопроса
    В итоге использовал следующий шаги для сжатия координат. Сразу о результатах до этих действий:
    Было:
    10 секунд загрузки
    7.5 мб данных
    Стало:
    2 секунды загрузки
    540 кб

    Пример:
    python
    1. Shapely.simplify() для сглаживания координат (показатель подбирал для себя)
    2. Дельта кодирования, для уменьшения объема данных
    polygon = Polygon(coords).simplify(0.00015)
        coords = list(polygon.exterior.coords)
        lng_list = list()
        last_lng = None
        lat_list = list()
        last_lat = None
        for val in coords:
            if not last_lng:
                lng_list.append(val[0])
                lat_list.append(val[1])
            else:
                lng_list.append(round(val[0] - last_lng, 6))
                lat_list.append(round(val[1] - last_lat, 6))
            last_lng = val[0]
            last_lat = val[1]
        return {
            'lat': lat_list,
            'lng': lng_list
        }

    3. Компрессия данных:
    Делается в одну строку
    b64encode(zlib.compress(json.dumps(data).encode('utf-8')))

    JavaScript
    4. Приведение к объекту JS из сжатой строки
    let newData = atob(data)
        newData = newData.split('').map(function (e) {
            return e.charCodeAt(0)
        })
        newData = new Uint8Array(newData)
        newData = pako.inflate(newData)
        newData = new TextDecoder().decode(newData)
        return JSON.parse(newData)

    5. Преобразование к нормальному виду координат из дельта-закодированных данных
    let lastLat = null
        let lastLng = null
        let result = []
                coords.forEach(val => {
                let newCoords = []
                for (const [index, el] of val.lat.entries()) {
                    if (!index) {
                        lastLat = val.lat[0]
                        lastLng = val.lng[0]
                    } else {
                        lastLng += val.lng[index]
                        lastLat += val.lat[index]
                    }
                    newCoords.push([lastLng, lastLat])
                }
                result.push(newCoords)
            })
    Ответ написан
    Комментировать
  • Почему выдает ошибку 400 requests python (api)?

    @bubaley
    Преобразуйте сначала params в строку json
    result = requests.post("127.0.0.1:9000/attack/start", data=json.dumps(params))
    print (result.json)
    Ответ написан
    Комментировать
  • Какая БД лучше всех для Python?

    @bubaley
    Здравствуйте, если разработка идёт на локальной машине до достаточно будет sqlite3. Чтобы не заморачиваться с поднятием у себя на машине нормальных баз данных. Ее удобно бэкапить, переносить и не нуждается в настройке.
    Если переносите все в прод., То лучше использовать postgresql. Хотя бы потому что она opensource. И рабоатет быстрее того же mysql. Хотя в последних версиях разница совсем незначительная. Зато уронить ее сложнее.
    https://m.habr.com/ru/post/348220
    Вот статья в который расписаны все + и -.
    Конечно есть проекты где лучше использовать nosql, например mongodb.
    Но думаю, Вы все поймёте после прочтения статьи.
    Ответ написан
    1 комментарий
  • Как обратиться к заголовку для его сортировки в таблице?

    @bubaley
    На сайте vuetify в левом нижнем углу, Вы можете выбрать нужную версию. И по ней посмотреть примеры. Там все будет работать.
    Ответ написан
    Комментировать
  • Как сымитировать ввод с клавиатуры данных в поле ввода?

    @bubaley
    Добавь v-model в инпут
    и привяжи его к значению в data.
    После загрузки xml подставляй полученную информацию в твое значение в data.
    Автоматически в input оно присвоится.
    И добавь watch на твое значение в data и как только оно удовлетворит условиям делай true.
    Или можешь isChecked сделать computed свойством и возвращать true если значение в input отвечает требованиям.

    Все таки это vue и нужно пользоваться его функционионалом
    Ответ написан
    2 комментария
  • Как сохранить значения сортировки при переходе на другую страницу?

    @bubaley
    Здравствуйте, используйте лучше store в котором храните состояние сортировки.
    Ответ написан
    Комментировать
  • Django 3 как вытянуть автора записи?

    @bubaley
    Лучше добавить foreignKey в модель записи, которая будет ссылаться на User.
    При сохранении записи получать текущего пользователя из request.user и сохранять его в объект записи.
    И тогда вы правильно сможете проверять reqest.user == запись.user
    Ответ написан
    Комментировать
  • Как можно использовать django в качестве бэкэнда для мобильного приложения?

    @bubaley
    Здравствуйте, да подойдёт
    Но нужно использовать django rest framework вместе с django.
    Это позволит быстро создать crud api для решения поставленных задач.
    У drf очень хорошая дока, думаю быстро разберётесь.
    Ответ написан
    Комментировать
  • Для чего в компоненте Vue, ключ name?

    @bubaley
    Для меня самым важным является быстрый поиск и отработка в Vue devtools.
    Если появляются ошибки или нужно посмотреть date компоненты, то поиск и определение происходит по name компоненты.
    Ответ написан
    Комментировать
  • Почему не работает ссылка страницы рубрики?

    @bubaley
    В urls py проекта, скорее всего не подключен ursl вашего приложения.
    Допустим у вас есть проект project с папкой core в который лежит корневой urls.
    И есть приложение app (обязательно должно быть добавлено в installed_apps в settings.py)
    В этом приложении app должен быть свой файл urls, который уже перенаправляет на ваши views в приложении app.

    Тогда в корневой urls (core/urls) нужно добавить следующее
    в импорты:
    from django.urls import include
    в urlpatterns:
    path('', include('app.urls')),

    После этого на экране ошибки у вас должны быть отображены urls из приложения app
    Ответ написан
  • Книги, в которых примеры реальных программ(на python и другом яп)?

    @bubaley
    1. «Python. Карманный справочник», Марк Лутц
    2. «Изучаем Python», Марк Лутц
    3. «Автостопом по Python», Рейтц Кеннет
    Хорошая серия книг, которая не только покажет good practice по работе с python. Все с примерами, маленьких, но все же программ.
    Какая-то из них, прям для начинающих, там синтаксис, остальное более менее подходящее.
    Ответ написан
    Комментировать
  • Как создать дополнительную таблицу для свзи между моделями?

    @bubaley
    Для решения такой задачи нужно использовать ManyToMany relation.
    В класс Modules нужно добавить строчку
    parent_categories= models.ManyToManyField('ParentCategory', related_name='modules', through='ModuleParentCategory')

    И добавляет таблицу throught
    class ModuleParentCategory(models.Model):
        module = models.ForeignKey(Module, on_delete=models.CASCADE)
        parent_category = models.ForeignKey(ParentCategory, on_delete=models.CASCADE)
        primary = models.BooleanField(default=False)

    Для заполнения или редактирования этой связи можете ознакомиться с документацией по ManyToMany with throught
    https://django.fun/docs/django/ru/3.0/topics/db/models/
    Ответ написан
    1 комментарий
  • Multi toggle для VUE?

    @bubaley
    Здравствуйте, вот рабочий пример:
    <label for="fname">Your toggle:</label><br>
    <input v-model.number="input" type="text" id="fname" style="border: 1px solid black">
    <button @click="toggle(input)">Change toggle view</button>
    <div class="nav-drop" v-for="(el, index) in listToShow" :key="index">
        {{el}}
    </div>

    export default {
            name: "Test",
            data: () => ({
                toggles: [
                    1,
                    2,
                    3,
                    4,
                    5
                ],
                hiddenToggles: [],
                input: '',
            }),
            methods: {
                toggle(value) {
                    if (!value)
                        return
                    let index = this.hiddenToggles.findIndex(el => value === el)
                    if (index > -1)
                        this.hiddenToggles.splice(index, 1)
                    else
                        this.hiddenToggles.push(value)
    
                },
            },
            computed: {
                listToShow() {
                    return this.toggles.filter(value =>
                        this.hiddenToggles.findIndex(el => el === value) === -1)
                }
            }
        }

    Суть есть 5 toggles от 1 до 5. Они рисуются в цикле.
    В input пишите номер, какой toggle нужно скрыть или отобразить.
    Сами toggles, которые должны быть показаны считаются в computed.
    Ответ написан
  • Какие есть способы реализации цепочки действий в клиент-серверном приложении в Python?

    @bubaley
    Самое просто воспользоваться каким либо framework.
    Например django. Если его функционала слишком много, тогда на сервере можно поднять скрипт с flask где описать пару запросов, принимающие данные с фронта через api и возвращающие результат.
    А на фронте достаточно будет html с js в который подключен axios и jQuery.
    Но я бы воспользоваться vue для динамики.
    Ответ написан
    Комментировать
  • Как настроить пути для файлов по типу publicPath?

    @bubaley
    Здравствуйте
    outputDir: '../static/dist',
    publicPath: process.env.NODE_ENV === 'production'
        ? '/static/dist/'
        : '/',
    indexPath: process.env.NODE_ENV === 'production'
        ? '../../templates/index.html'
        : 'index.html',

    С помощью такого функционала, Вы можете настроить места куда собирается build.
    outputDir - Указывает директорию в которую собирать проект.
    publicPath - Добавляет префикс в index.html откуда забирать файлы.
    indexPath - место где будет лежать index.html.
    Ответ написан
  • Как связать таблицы?

    @bubaley
    Если вы хотите увидеть подробную схему на картинке, то нужно указывать не просто int поле, а foreign_key
    Если же вы хотите получить выборку из двух таблиц,то нужно воспользоваться соединением таблиц.
    Left join, join, inner join
    Об этом очень много информации в Гугле.
    Ответ написан
    Комментировать
  • Как сравнить значения с базы данных?

    @bubaley
    В result тебе попадают массив объектов с одним полем. Сначала нужно получить массив id. Это для проверки на вхождение.
    В твоём случае лучше добавить в запрос where telegram_user_id = message.from.user_id.
    И проверять если количество результатов в выборке больше или равен 1,тогда он зарегистрирован.
    Ответ написан
    1 комментарий