• Дальнейшее развитие для новичка при отсутствии вакансий в городе?

    @newpy
    Поддерживаю. Послушайте людей ( Сергей ) которые пишут про фриланс выше, и про тарелку супа. Этот пример шедевр. И разумеется лучший вариант это работать удаленно в вашем случае. Зарегистрируйтесь на Моем круге, не вы, так вас найдут. У меня был опыт, когда на меня просто человек сам вышел, и предложил проект, потом второй, и получилось эдакое долгосрочное сотрудничество. Или ищите вакансии на HH с удаленными вариантами, заполните резюме как можно подробнее. Сделайте что-нибудь кроме блога, и работа вас найдет сама.
  • Зачем нужны приложения?

    @newpy
    вполне. У тебя будет базовый шаблон base, там будет header, footer и {% block content %}Все что остается, это в шаблонах приложения писать нечто вроде {% extends "base.html" %}
    Советую просто внимательно прочитать документацию. Там по полкам это разложено.
  • Зачем нужны приложения?

    @newpy
    WebDeveloper2016: контент не вставляется, у каждого приложения свои темплейты, а основа страницы у всех одинаковая например, тебе подсказали - положи в main например, хотя и этого делать не обязательно - создавать отдельное приложение только ради темплейта главной страницы или лендинга. Ты просто сделаешь заготовку шаблона (главный шаблон) в котором будут секции хедер, футер, и секция контент. В меню у тебя будут урлы на Гостевую, Блог, Галерею, и тд, это всего лишь урлы. А дальше в каждом приложении ты расширяешь базовый этот шаблон и своя секция контента. То есть в каждом приложении будут свои темплейты для контента например. Ну или вообще свои темплейты полностью. Это как ты задумаешь уже.
  • В каком виде хранить данные о посещаемости товаров?

    @newpy
    Если абстрагироваться: берем юзера, проверяем дату просмотра товара, если дата больше часа, то инкремент и UPDATE, если нет, оставляем как есть. Все как ты описал. Разве что `stat` лучше хранить в первой таблице (statistics) вместе с датой, а не в товарах. И получать ее через релейшн нечто вроде
    $product->statistics->stat
  • Почему срабатывают сразу 3 функции?

    @newpy
    Vadim kyklaed: потому что словарь это объект, и при создании словаря, в твоем случае все три функции вызываются.
    в словаре нельзя так хранить вызов функции ?

    Ни в словаре так хранить нельзя, нигде вообще. Внимательно прочитай что ты пишешь. "хранить" "вызов функции". Нигде нельзя хранить "вызов функции". Бред в самой терминологии. Можно хранить ссылку на функцию, можно вызвать функцию, можно дать ей имя, можно хранить результат выполнения функции, но нельзя хранить "вызов". Что происходит при вызове функции? Она немедленно исполняется и возвращает или не возвращает результат. В твоем случае именно это и происходит. Чтобы этого не происходило, тебе дал исчерпывающий ответ Евгений Шатунов
  • Выдает ошибку при установке пакетов при помощи pip3(3.5), в чем проблема?

    @newpy
    было что-то подобное когда-то, точно не помню, казалось что тогда я напутал и установил pip случайно из под sudo, или наоборот. Или пытался установить из под virtualenv и тоже криво поставил из под обычной учетки. В общем напутал при установке pip и virtualenv и из-за этого сказалось на всем остальном. А как решил не помню, то ли права перебирал также, то ли снес и заново поставил все...
  • На чем пишут сайты бирж (пример в тексте)?

    @newpy
    фронт у них скорее на angular. С чего вы решили что ExtJs? по названию файла подключаемого?
  • Почему в Python нельзя вывести значение глобальной переменной в функции перед ее затенением?

    @newpy
    iegor: убедили но не совсем. Каюсь.

    weranda: если вам доподлинно известно, что ж вы вопросы задаете. Вы пытаетесь "а" внутри функции изменить, и выводите переменную, до того как её объявили. Я написал код так чтобы он работал в контексте вопроса. Как вы этого ждали от него, а то что так делать не надо и для чего нужен global это другой разговор.

    Про области видимости: согласен я упустил деталь, что ЕСЛИ вы уберете а = 2, то функция возьмет из глобальной области а = 1. НО в вашем вопросе/коде она присутствует. И у вас выдает ошибку именно и-за области видимости. Потому что питон сначала ищет в локальной, если не находит, то выше ищет. Но у вас то он находит в локальной, и мой код работает конкретно по вашему примеру, без "ЕСЛИ убрать а = 2".

    С замечаниями ко мне согласен. Поэтому я поработаю еще над своим незнанием области видимости, но это на мой взгляд не отменяет ваше незнание.

    Текст ошибки:
    UnboundLocalError: local variable 'a' referenced before assignment
  • В Laravel как вернуть в форму уже заполненные данные при неправильном вводе?

    @newpy
    А лучше используй объект request

    Нажали Update, не прошли валидацию например, все данные которые заполннил пользователь в форму содержатся в Request. Вот с ним и верните на страницу edit и сообщениями об ошибках.
  • Можете пояснить принципы ООП?

    @newpy
    реальный проект слабо чем отличается от того что я описал.

    Вы в классе создаете свойства приватными, а для доступа к ним извне, пишите публичные методы. Например вы создаете игру шахматы, создаете класс Пешка. У нее есть набор каких-то свойств. Часть из них например это внутренние игровые параметры Пешки. И вы не хотите чтобы они менялись и кто угодно мог получить к ним доступ. Например у вас есть свойство, отвечающее за то на сколько клеток ходит Пешка. Вы можете его сделать приватным (закрытым), а можете сделать открытым, но тогда кто угодно может менять это свойство и на сколько клеток ходит пешка, но тогда что же это за шахматы?

    Или утрированный пример ниже если вы создаете магазин, у вас есть внутренняя цена (которую вы скрываете), и некий коэффициент наценки (который тоже неплохо бы прятать). Зато есть цена продажи, или итоговая, которая равна внутренней, умноженной на коэффициент. При этом вы можете расширять свой класс, как хотите, добавлять другие коэффициенты, скидки, методы расчета, но например не стоит давать менять методы расчета скидки, делать их публичными. Изменив в одной части системы, вы не можете предсказать как изменится состояние системы в другой ее части или вообще во всей системе. Зато вы можете расширить класс добавить метод расчета скидки для друзей, для родственников. При этом это никак не повлияет на те части системы, где уже используются существующие методы или коэффициенты.

    class A
    {
        private $internalPrice; // скрытое свойство
        private $coefficient; // скрытое свойство
        public $externalPrice;
    
        private function getCoefficient() //скрытый метод
        {  
            return 10;
        }
    
        private function getInternalPrice()
        { 
            return $this->a;
        }
        
        public function getExternalPrice()
        {
            $coeff = $this->getCoefficient();
            $innerPrice = $this->getInternalPrice();
            $this->externalPrice = $innerPrice * $coeff;
            return $this->externalPrice;
        }
    };
    
    $foo = new A();
    echo $foo->internalPrice; // фатальная ошибка, никто не сможет посмотреть внутреннюю цену 
    или поменять так:
    $foo->internalPrice = 28; // фатальная ошибка
    
    echo $foo->coefficient; // фатальная ошибка, те же причины, свойство объявлено как приватное
    
    // зато
    echo $foo->getExternalPrice() // работает
    
    //или вы можете расширить класс, и если хотите изменить коэффициент, написать публичный метод в классе.
    
    public setCoefficient($coeff)
    {
        $this->coefficient = $coeff;
    }
    // тогда 
    $foo->setCoefficient(15); // никакой ошибки, но при попытке изменить напрямую
    $foo->coefficient = 15; // по прежнему фатальная ошибка
    
    // чем менять метод расчета внешней цены (повлечет за собой изменения везде), вы можете расширить класс и написать метод расчета цены для друзей:
    
    public function getPriceForFriends()
    {
         // например, так:
        $externalPrice = $this->getExternalPrice();
        return $externalPrice - 100;
        // в этом случае от посторонних глаз скрыто как именно происходит расчет скидки для друзей, и мы напрямую не меняем коэффициенты, внутреннюю цену, методы расчета.
        
    }
  • Как правильно написать запрос к БД в laravel?

    @newpy
    foreach ($objects->sortBy('id')

    пробовали профилировать это? посмотреть сколько запросов к БД выполняется? лучше сразу получите коллекцию как вам советуют, и по ней итерируйтесь, а то у вас при каждом шаге цикла происходит сортировка...что немного накладно.
  • Профессиональные ресурсы/литература Django?

    @newpy
    книга то отличная...а вот достать ее проблема...45$ книга + 25$ доставка. За гранью разумного при нынешнем курсе цена получается. А в электронном варианте не всегда удобно читать. Такую книгу хочется иметь "живьем".
  • Как менять TEMPLATE_DIRS?

    @newpy
    Viteran33: сорри, почему-то забыл совсем ))
  • Почему некорректно работает отправка формы в Laravel 5?

    @newpy
    e.preventDefault() у кнопок прописать, и сабмитить вручную. Не пробовали?
  • Стоит ли писать свои велосипеды новичку?

    @newpy
    nikosson: Посмотрите ответ Антон Натаров - он как раз об этом говорит вам и верно, почему стоит так поступить.

    Если вы считаете что у вас достаточно знаний, то конечно не стоит этим заниматься.

    Опять же вы вольны поступать как вам больше нравится. Например влезть сперва в фреймворк, сделать блог минимальный, а потом убрать фреймворк, открыть чистый файл, и с нуля повторить этот блог применяя MVC, ООП. Наверное врядли вы даже будете знать за что взяться сначала, потому что не знаете основы архитектуры фреймворков. Например как сделать единую точку входа в приложение (то с чего все фреймворки начинаются обычно). Все они более менее одинаковые. И являются как раз накопленным опытом людей, которые сначала писали с нуля такие вещи.

    Составьте план себе. Посмотрите план каких-нибудь курсов по PHP, возьмите его за основу, вычеркните то что уже знаете, и восполняйте пробелы если они есть.

    Сайтов таких я не знаю, возможно кто-то подскажет, возможно форумы, возможно здесь.
  • В поисках Лучших Практик. Как грамотно ускорить и измерить Django?

    @newpy
    Болшая вероятность, что с помощью select_related и prefetch_related можно сократить количество запросов многократно.

    Мне это помогло на практике. Количество запросов уменьшилось с 2N+1 до N (это частный пример, не закономерность) когда были связи Many to Many. Простейший пример у меня было 3 сущности, когда надо было вытягивать связанные, профилирование показало 7 запросов. Когда сделал prefetch_related обошлось 3-мя. Так что на 150 будет еще более заметно. Так что это первое что я бы попробовал сделать.
  • Серверные языки - как не запутаться и что изучить?

    @newpy
    не открою секрет node.js это не язык а технология. Язык JavaScript. Ваш капитан. И простите это совершенно странная мысль совмещать Node.js и PHP...Хотите легко, изучите PHP. Но уверяю это будет не легко, в том плане, что научиться вы сможете быстро, а вот делать это хорошо, еще большой вопрос. И вопрос большего времени чем вы потратите на само изучение и чем вам об этом расскажут. Зато и правда везде пробовать сможете, на любых хостингах, это пожалуй как раз наиболее легкая в плане деплоя на сервер технология для начинающего. А столкнетесь вы с таким количеством проблем при изучении, что вам придется параллельно выучить еще кучу технологий. Так что скучно не будет при любом выборе.
  • Выбор фреймворка под определенную задачу?

    @newpy
    Как бы выразиться точнее, Symfony более академичный фреймворк, и другого уровня несколько, чем Ларавел. Приложения на нем нужно и можно делать более серьезные. Контингент реально разбирающихся в Symfony людей, на мой взгляд тоже несколько серьезнее.