• Как лучше размещать сайты на сервере?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    Имеет ли смысл раскладывать сайты по пользователям? Или можно все под одним держать?
    Зависит от ситуации, как нужно так и делайте.
    Еще вопрос про антивирус, нужен ли антивирус на сервере?
    Нет.
    Ответ написан
    5 комментариев
  • Как сортировать таблицу по соответствию нескольким строкам?

    Dier_Sergio_Great
    @Dier_Sergio_Great Автор вопроса
    Увлеченный человек
    нашел.
    SELECT * FROM mebel  
    ORDER BY 
        CASE type
            WHEN 'Стол' THEN 1
            WHEN 'Стул' THEN 2
            WHEN 'Пуфик' THEN 3
            ELSE 4
        END ASC, 
        name ASC;

    SELECT * FROM mebel  
    ORDER BY FIELD(type, 'Стол', 'Стул', 'Пуфик');

    Фишка в том что те строки которые не являются типом этих трех, они будут показаны вначале списка. так как FIELD возвращает 0 если из трех не подходит.
    второй вариант
    SELECT * FROM mebel  
    ORDER BY FIND_IN_SET(type, 'Стол,Стул,Пуфик');

    А это для интереса пишу тут.
    Интеллектуальная сортировка для поля со значениями
    "1-А", "10-А", "3-А", "33-А"
    SELECT *
    FROM mebel
    ORDER BY CAST(name AS  UNSIGNED), name;

    natsort($array);//аналогично для PHP
    Ответ написан
    Комментировать
  • А зачем делают вот так комментирование?

    Не зачем, просто точка и все, никому не мешает, можно и не писать эту точку.
    Ответ написан
    Комментировать
  • Как спарсить и скачать все картинки с сайта?

    @german11235
    Очевидно вам нужно при помощи какой-либо библиотеки распарсить html страничку интересующего ресурса, собрать с неё все ссылки с картинками и... пройдясь по ним циклом просто загрузить их. Для парсинга можете воспользоваться Scrapy или BeautifulSoup. Судя вашему вопросу не уверен занимались вы этим раньше так что можете почитать книгу, ну а как загрузить саму картинку из url при помощи того же requests можете нагуглить за 2 минуты.
    Ответ написан
    1 комментарий
  • Как создать сайт-конструктор?

    AGorbunoff
    @AGorbunoff
    Учусь:)
    Самое быстрое и простое решение + неограниченные возможности кастомизации и дальнейшего совершенствования даст связка:
    1. Сайт на базе CMS WordPress;
    2. Плагин Toolset Types (или программирование на PHP);
    3. Скачать персонажей в стоках в векторном формате.


    Как реализовать

    Просто берем нашего персонажа в формате Illustrator и разбиваем на слои - каждому слою присваиваем id (имя).

    Экспортируем персонажа в файл SVG. В плагине Toolset Types создаем представление Views такое как задумано в нашей идее. Например, отображать определенные части персонажа в зависимости от значений фильтра или параметра URL или как результат заполненной формы.

    Предварительно под слои SVG создать тип записи (персонаж) и групповое поле из индивидуальных полей (например: слой картинки, url, еще какой-то параметр). Групповое поле - это часть персонажа, например правая рука. Получается тип записи: "персонаж" - это результат отображения групповых полей привязанных к этому типу записи. Где каждое поле это слой нашего общего SVG.

    Остается реализовать идею и запрограммировать отображение частей персонажа в представлении Toolset Types в зависимости от нужных условий и параметров. Функции плагина можно заменить коддингом в PHP. Так же: создаем тип записи: персонаж и к этому типу произвольные поля, в каждом из которых отдельный слой SVG.

    Таким макаром можно пилить любые визуальные решения: конструкторы домов, персонажей, карты, планировки зданий, учет аренды торговых центров, районы муниципального хозяйства и любые визуальные идеи.

    Дальше больше - развивать и наращивать функционал. Успехов!
    Ответ написан
    5 комментариев
  • Почему не накатывается миграция Django на MySql?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Проблема не в приведённом вами коде. Вероятно, она в предыдущей миграции. Судя по трейсбэку, возникает она при попытке получить значение по умолчанию для поля. Возможно, у вас была попытка вызова метода из дескриптора, что по определению работать не может.
    Ответ написан
    3 комментария
  • Что нужно делать на практике в JavaScript, чтобы его понимать?

    contraomnes
    @contraomnes
    Frontend developer
    Задачки + английский
    https://www.codewars.com/
    https://www.hackerrank.com/

    Учебник по js на русском с примерами и задачками
    https://learn.javascript.ru/

    Кроме того, одним javascript'ом сыт не будешь)
    frontend.png
    Ответ написан
    2 комментария
  • Django Rest Framework, TypeError: __init__() takes 1 positional argument but 2 were given. Почему происходит?

    @Realmixer
    Full stack Python (Django) web-developer
    Ошибка в urls.py, неправильно прописан класс отображения — не хватает вызова метода as_view. Надо так:
    urlpatterns = [
        path('quiz/bookmark/create-remove/<slug:slug>/', views.CreateRemoveBookmarkAPI.as_view(),
            name="bookmark-create-remove-api"),
    ]
    Ответ написан
    Комментировать
  • Как сделать такую кнопку для сброса того, что выбрано в option?

    @FEDKOTV
    https://www.google.com/search?q=deselect+option+fr...

    или

    function clearSelected(){
        var elements = document.getElementById("ddBusinessCategory").options;
     
        for(var i = 0; i < elements.length; i++){
          if(elements[i].selected)
            elements[i].selected = false;
        }
      }


    пример:



    Как это вразумить в кнопку X с правильным position думаю вы справитесь
    Ответ написан
    Комментировать
  • Что такое webpack dev server?

    andreydobrin
    @andreydobrin
    Сложно , но это пока
    С этой штукой Ты сможешь разрабатывать приложения с высокой скоростью и комфортом.
    Webpack Dev Server позволяет тебе запускать локальный сервер (на твоем ПК) и следить за изменениями всех, необходимых для разработки файлов, автоматически. То есть, тебе не придется перезапускать проект, чтобы обновить изменения.

    в консоль пишешь:
    npm i webpack-dev-server

    в package.json в поле scripts добавляешь вот такие вот команды:
    "scripts": {
        "commandName": "webpack-dev-server",
      }

    Где commandName название твоей команды.

    Простой конфиг:
    devServer: {
            port: 8888, // определяет порт 
            overlay: { // показывает ошибки или предупреждения при разработке
                warnings: boolean,
                errors: boolean
            },
            open: true, // открывает окно браузера
        }

    и еще куча многих опций, типа http/https/https2/hot/host/filename и т.д.
    Ответ написан
    Комментировать
  • Как раскодировать JS код?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    В интернете ничего толкового найти не могу

    Иногда кажется, что умение гуглить это дар божий. Почему люди не умеют составлять поисковые запросы? У меня, например секунд 7 ушло.
    https://lelinhtinh.github.io/de4js/
    Ответ написан
    6 комментариев
  • Какие преимущества использования react?

    idea_sofworks
    @idea_sofworks
    Javascript developer
    React в основном применяется при создании пользовательских интерфейсов приложений на js. так же react использует компонентный подход, можно разбить UI на несколько компонентов которые можно использовать много раз, что помогает избежать копирования кода. использовать его с wordpress скорее всего смысла нет у wordpress свой подход к созданию веб страниц. Суть данной библиотеки отделить front end в отдельное приложение которое общается с back end по API. какой язык используется в back end не важно. Если вы хотите создавать сайты, блоги и single page приложения можно посмотреть в сторону связок React + Firebase, или React + GraphQL(API) + MongoDB(NoSQL).
    Учить всё это стоит, это современные технологии которые применяются сейчас везде.
    Есть отличный youtube канал webDev посвящённый react.
    Желаю вам удачи и продуктивных рабочих дней)
    Ответ написан
    4 комментария
  • Как получить дату от текущей прибавив произвольное кол-во дней js?

    AlexaShemetova
    @AlexaShemetova Автор вопроса
    While I'm breathing - I love and believe
    Как то так сделала, решение нубика, но вроде работает :)

    var daysObj = {
      Mon: 'Понедельник',
      Tue: 'Вторник',
      Wed: 'Среда',
      Thu: 'Четверг',
      Fri: 'Пятница',
      Sat: 'Суббота',
      Sun: 'Воскресенье'
    }
    
    var monthObj = {
      Jan: 'Января',
      Feb: 'Февраля',
      Mar: 'Марта',
      Apr: 'Апреля',
      May: 'Мая',
      Jun: 'Июня',
      Jul: 'Июля',
      Aug: 'Августа',
      Sep: 'Сентября',
      Oct: 'Октября',
      Nov: 'Ноября',
      Dec: 'Декабря'
    }
    
    var curent = Date.now()
    var days = 61; //  нужное количество дней
    var future = new Date(curent + days * 24 * 60 * 60 * 1000);
    
    $('.test').html(future);
    var str = $('.test').html();
    var arr = str.split(' ');
    arr.splice(4, 6);
    console.log(arr);
    
    var dayArr = arr[0],
        monthArr = arr[1],
        numArr = arr[2],
        yearArr = arr[3]; 
    
    if( numArr.charAt( 0 ) === '0' )
        numArr = numArr.slice( 1 );
    
    var stringInner = `<li>${daysObj[dayArr]}</li>
    <li>${numArr} ${monthObj[monthArr]}, ${yearArr}</li>
    `
    console.log(stringInner);
    
    $('.result').html(stringInner);
    Ответ написан
    Комментировать
  • Где найти единомышленников по веб-разработке?

    Zoominger
    @Zoominger Куратор тега Веб-разработка
    System Integrator
    Лол, фрилансер фрилансеру - конкурент и злейший враг.
    Для полезной информации есть блоги, СОФ и Тостер.
    Для личного роста кушайте больше молочных продуктов и меньше курите.
    Ответ написан
    8 комментариев
  • Как получить результат работы асинхронной функции?

    @historydev Куратор тега JavaScript
    Острая аллергия на анимешников
    async function getFileFromUrl(url='') {
        let xhr = new XMLHttpRequest();
        xhr.open('GET', url, true);
        xhr.responseType = 'blob';
        let response = xhr.onload = (e) => {
            let reader = new FileReader();
            reader.readAsDataURL(xhr.response);
            return reader.onload = (e) => {
                return e.target.result
            };
        };
    
        await xhr.send();
    
       return await response
    
    }
    Ответ написан
    4 комментария
  • Как создать thumbnail pillow image после сохранения в модели django?

    @gh0sty Автор вопроса
    Веб-разработчик. Пишу под Python Django.
    7 долбанных часов...
    Это было дико, мать твою!


    Подробности (не ручаюсь за инфу, мейби говнокодеры с форумов пишут вслепую):
    1. Значт так, в какой-то версии Django метод super save стал break-ать метод save модели
    2. В какой-то еще версии Django запретили создавать папки изменением self.image.name. Но разрешили в upload_to закидывать функцию с неявными (встроенными) аргументами без возможности добавления (!)
    3. Решил не париться save и post_save - просто создал внутренний метод и вызываю его перед super save.


    Це мой идеальный модельный код:
    def get_path_upload_image(instance, filename):
        """
        Переопределение имени и путя фотографии, сокращение названия
        В следующий формат: (media)/photos/username/2019-08-20/photo-name_23-59-59.extension
        """
        if '/' in filename:
            filename = filename.split('/')[-1]
        img_header, img_extension = os.path.splitext(filename)
        if len(img_header) > 30:
            if img_header[-6:] == '_thumb':
                img_header = img_header[:30] + '_thumb'
            else:
                img_header = img_header[:30]
        time = timezone.now().strftime('%Y-%m-%d')
        img_name = img_header + '_' + time + img_extension
        path = os.path.join('photos', '{}', '{}', '{}').format(instance.user.username, time, img_name)
        return path
    
    
    class Photo(models.Model):
        """ Фото """
        user = models.ForeignKey(User, verbose_name='Пользователь', on_delete=models.CASCADE)
        name = models.CharField('Имя', max_length=50)
        image = models.ImageField('Фото', upload_to=get_path_upload_image, blank=True, null=True)
        thumbnail = models.ImageField('Превью', upload_to=get_path_upload_image, editable=False, blank=True, null=True)
        order = models.PositiveSmallIntegerField('Порядковый номер', null=True, blank=True)
        is_main = models.BooleanField('Главное', default=False)
        created = models.DateTimeField('Дата создания', auto_now_add=True)
        slug = models.SlugField('url', max_length=50, unique=True)
    
        def __str__(self):
            return self.name
    
        class Meta:
            verbose_name = 'Изображение'
            verbose_name_plural = 'Изображения'
    
        def save(self, *args, **kwargs):
            self.make_thumbnail()
            super(Photo, self).save(*args, **kwargs)
    
        def make_thumbnail(self):
            image = Image.open(self.image)
            image.thumbnail((120, 80), Image.ANTIALIAS)  # ваш размер thumbnail
            thumb_name, thumb_extension = os.path.splitext(self.image.name)
            thumb_filename = thumb_name + '_thumb' + thumb_extension
            temp_thumb = BytesIO()
            image.save(temp_thumb, 'JPEG')
            temp_thumb.seek(0)
            self.thumbnail.save(thumb_filename, ContentFile(temp_thumb.read()), save=False)
            temp_thumb.close()


    Це мой views:
    ph = Photo(user=profile.user, order=request.POST.get('files_uploaded'))
    im = Image.open(photo_upload_form.cleaned_data['image'])
    im = im.convert('RGB')
    blob = BytesIO()
    if im.width > 1920 or im.height > 1080:
        output_size = (1920, 1080)
        im.thumbnail(output_size)
        im.save(blob, 'JPEG', quality=100)
    ph_name = 'gallery{}-{}.jpg'.format(gal.id, timezone.now().strftime('%Y-%m-%d-%H-%M-%S'))
    ph.name = ph_name
    ph.slug = slugify(ph_name)
    ph.image.save(ph_name, File(blob), save=False)
    ph.save()


    Если че - он сжимает полученное изображение до 1920x1080, закидывает его в photo и автоматически генерит thumbnail - да еще и генерируя путь в зависимости от даты и username.
    Ответ написан
    1 комментарий
  • Как в Django сделать глобальную, неизменяемую переменную?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Выдало советское государство почётному оленеводу волгу. Через некоторое время журналисты решили узнать мнение чукчи о награде. "Хорошая машина." - отвечает чукча - "В кабине тепло, фары тундру освещают. Только собаки быстро устают, однако."
    Ответ написан
    Комментировать