Задать вопрос
  • Как сделать зеркало сайта без копирования файлов скриптов и без редиректа в браузере?

    syschel
    @syschel
    freelance/python/django/backend
    Настройками на стороне вебсервера (того что отдаёт "сайт").
    Nginx
    server {
        listen 80;
        server_name AUTO.com SuperCar.com CarInUSA.net;
        root /var/www/html;
        ....
    }

    Apache
    <VirtualHost *:80>
        ServerName AUTO.com
        ServerAlias SuperCar.com
        ServerAlias CarInUSA.net
        DocumentRoot "/var/www/html"
        ....
    </VirtualHost>

    Главное в вёрстке сайта и его коде, в ссылках(адресах) не использовать абсолютные пути с доменом. Просто начинайте всегда от /, то есть от корня.
    Ответ написан
    2 комментария
  • Как связать две модели (формы) в DJANGO автоматически при создании?

    syschel
    @syschel
    freelance/python/django/backend
    Добавлю к Yura Khlyan,
    maniacus26, самое просто решение, создавать запрос с страницы обращения. Напр:
    obrashcenije/2 - страница с информацией об обращении
    obrashcenije/2/dodat_zapros - страница с созданием запроса к конкретному обращению.

    Тогда во вьюхе создания запроса, буде доступен парметр self.kwagrs['obr_id'], если урлу задать как-то так:

    что если нужно в саму форму передать объект(ид) обращения, можно в классе вьюхи через
    class ZaprosCreator(CreateView):
        form_class = ZaprosForm
    
        def get_initial(self):
            return {'obrashcenije': self.kwagrs['obr_id']}

    Или если используется простые виды через функции, то
    form = ZaprosForm(initial={'obrashcenije': self.kwagrs['obr_id']})

    В форме ловить
    class ZaprosForm(forms.ModelForm):
        ...
        def __init__(self, *args, **kwargs):
            super(ZaprosForm, self).__init__(*args, **kwargs)
            self.obrashcenije = kwargs.get('initial').get('obrashcenije', None)


    Ну и как вариант в форме не обрабатывать вообще обращение:
    class ZaprosForm(forms.ModelForm):
        class Meta:
            model = ZaprosModel
            exclude = ('obrashcenije',)

    А уже во вьюхе перед сохранением формы добавить

    class ZaprosView(CreateView):
        form_class = ZaprosForm
    
        def form_valid(self, form):
            obj = form.save(commit=False)
            obj.obrashcenije_id = self.kwagrs['obr_id']
            obj.save()
            return super(ZaprosView, self).form_valid(form)

    ПС. избегайте руских названий моделей/переменных/классов, даже транслитом
    Ответ написан
    Комментировать
  • Есть ли какие-нибудь иностранные биржи кроме upWork?

    syschel
    @syschel
    freelance/python/django/backend
    Нигде нет идеала, вы на любой бирже можете встретить как адекватных, так и не адекватных заказчиков. Тем более понятие "адекватности" очень субъективно.
    Можете посмотреть в сторону fiverr.com
    Ответ написан
    2 комментария
  • Есть ли смысл писать CRM для агентов недвижимости?

    syschel
    @syschel
    freelance/python/django/backend
    Даже если уже есть аналоги на рынке, всегда можно запустить свой. Гугл тому пример, да и тот же яндекс в РУнете.
    Главное, ИМХО, найдите хотя бы 1-2 потребителей ваших услуг, чтобы была реальная картинка и отзыв, а не голая теория и домыслы.
    Так же не забывайте, какой бы гениальный, уникальный и всем нужный продукт вы не создали, без хорошего маркетинга, о вас никто не узнает и не воспользуется вашим продуктом.
    Ответ написан
    Комментировать
  • А где люди ищут разработчиков для создания более-менее крупных веб сервисов?

    syschel
    @syschel
    freelance/python/django/backend
    Я бы вам посоветовал начать с ТЗ, потом с разработки прототипа(MVP). Для этого всего можно использовать как компании в городе, так и удалённые. Фрилансеров тоже можно рассматривать, но с опытом большого.
    А вот после создания и обкатки прототипа, у вас уже появится более развёрнутая картинка понимания, того что и как вам надо, с тем откуда это всё брать. В итоге экономите деньги и время.
    Ответ написан
    Комментировать
  • Как в Python удалять файлы через n-минут?

    syschel
    @syschel
    freelance/python/django/backend
    Все файлы всегда генерируются сначала в память, а потом уже сохраняются на диск или сразу же из памяти отдаются.
    Если у вас файл это текстовик, генерируемый на лету одним потоком, если задача не сверх ресурсоёмкая. То советую вместо сохранения его и отдачи с диска, лучше по запросу генерировать и отдавать из памяти пользователю, пропуская этап сохранения на диск.

    Но если всётаки обойтись без сохранения нельзя, то используйте любой планировщих задач, будь то CRON или Celery, а данные о файлах или храните в базе (путь и дата создания) или скриптом пробегайте по папке и удаляйте все файлы с временем жизни больше N. Но лучше в базе такое хранить и не мучить диск.
    Ответ написан
  • Кто готов взять к себе или посоветовать Open-source проекты для начинающего Python?

    syschel
    @syschel
    freelance/python/django/backend
    Дополню ответ Illia Nezhyhai
    Можете пойти на популярные фриланс площадки, как русскоговорящие, так и мировые. Зарегистрироваться на оных и отфильтровать по языку программирования. Ну а дальше смотреть задачи, где есть подробное ТЗ и делать оные задачи без найма. Вот вам и реальный опыт, да направления обучения, за который сможете в будущем получать оплату.

    В том же python море направлений и поднаправлений, с узкой специализацией вплоть до работы с какой-то 1-2 библиотеками, решающими один тип задач. К примеру "парсинг", есть парсинг сайтов и тысячи задач крутящихся вокруг этого. Есть вебдев, с концентрацией вокруг конкретного сервиса/фреймворка. Есть машинное обучение, мат расчёты, статистика и работа с данными.
    Ответ написан
    1 комментарий
  • Как сравнить строку и datetime?

    syschel
    @syschel
    freelance/python/django/backend
    strptime преобразует строку в дату
    from datetime import datetime
    chday = datetime.strptime('datetime.date(2018, 12, 31)', 'datetime.date(%Y, %m, %d)')
    today = datetime.today()
    print(today < chday)
    print(today > chday)
    print(today == chday)
    type(chday)

    True
    False
    False
    <class 'datetime.datetime'>
    Ответ написан
    Комментировать
  • Уходить ли после 9 в колледж на программиста?

    syschel
    @syschel
    freelance/python/django/backend
    1. Знания лишними не бывают, а ВУЗ может дать направление знаний.

    2. Не знаю как сейчас, но раньше 1й курс техникума (модное название "колледж"), равнялся 10 и 11 классу школы. И при наличии лицензии(или как правильно называется), на выдачу оных аттестатов у техникума, можно после первого курса иметь аттестат об окончании 11 класса. То есть попробовать пойти в ВУЗ быстрее.

    3. Само учебное заведение и годы в нём, это ничто, если вы не будете лично заинтересованны в обучаемой профессии. При том сдача всех зачётов "на пятёрки", тоже мало значит. Если вы не будете лично развиваться в эти годы, параллельный с учёбой осваивая актуальные технологии/знания. Если не найдёте работу по профилю (пол ставки, удалённо, фриланс). То выйдя даже с красным дипломом, можете сильно проигрывать практикам с 9 классами, которые все эти годы потратили на практику и самообразование, пока вы просиживали штаны в ВУЗе.

    4. Если вы захотите со временем мигрировать за рубеж (это очень популярная тема для обсуждения в программерской среде), то корочки ВУЗа будут большим плюсом при получении Визы/ВНЖ.

    5. В большинстве компаний в СНГ, особенно в мелочи или середняке, наплевать на корочки ВУЗа, главное знания и опыт. На мой взгляд, это наверно 95% по рынку труда. В крупных же гигантах на вроде Гугла, Яндекса, Варгейминга и т.д., просят ВУЗ или хотя бы средне техническое по специальности.

    6. Чтобы пилить сайты на ВордПрессе в компании "ип Иванов", хватит корочек об окончании 9 классов.
    Ответ написан
    1 комментарий
  • Как создать поле в models Django которое является результатом арифметической операции других полей?

    syschel
    @syschel
    freelance/python/django/backend
    class Myclass(model.Model):
        x = models.Floatfield()
        y = models.Floatfield()
        
        def result(self):
            return self.x + self.y
    
    a = Myclass.objects.first()
    print(a.result)
    Ответ написан
    Комментировать
  • Имеющие опыт с payoneer порекомендуйте, какие банкоматы лучше использовать?

    syschel
    @syschel
    freelance/python/django/backend
    Не подскажу конкретно по банкам. Но когда Альфа ввела лимит на снятие долларов (было около 2-4т долларов за раз можно, а сейчас 100-200 долларов). То многие фрилансеры пришли к выводу, что стало выгоднее снимать сразу в рублях у тех банков, кто даёт максимальную сумму за транзакцию, в банкомате. Вроде были банки, дающие 150-200т рублей за операцию.

    Посмотрите в эту сторону, сейчас банки (банкоматы) не вспомню, но после тех изменений в альфе, это тут обсуждалось активно.
    Ответ написан
    1 комментарий
  • Что делать если хочешь стать верстальщиком?

    syschel
    @syschel
    freelance/python/django/backend
    1. На вопрос нельзя дать однозначный ответ.
    2. Нарабатывайте практику, пускай даже делая заказы "в стол", а лучше под биржи по продаже темплайтов.
    3. Ниша "верстальщик" это всётаки чернорабочий. Минимум примитивных знаний, что за собой несёт низкий порог вхождения и как правило большую конкуренцию. А за ней и низкие рейты. Лучше от верстальщика уходить во front-end разработчики. Но для начала нужно понять чем они отличаются от "верстальщика".
    4. Частые общения на тематических, как тостер, ресурсах, со временем тоже дают свою долю заказчиков.
    5. Удалённая работа не заканчивается на фрилансе, можно удалённо и на постоянке работать. То есть, посмотреть и в сторону сайтов о поиске сотрудников.
    Ответ написан
    Комментировать
  • Как сделать тяжелый импорт из excel 800к товаров?

    syschel
    @syschel
    freelance/python/django/backend
    1. У вас именно EXEL файл или всётаки CSV который вы открываете на десктопе с помощью экселя?
    2. Если всётаки EXEL файл. Там слишком много всего нагорожено, на вроде вёрсток и формул или голые таблицы?
    3. Если всётаки голые таблицы. Вы можете делать именно CSV файл?

    Если данные будут в CVS формате, то можно всё загрузить средствами MYSQL и не использовать для обработки PHP или его библиотеки. Тогда результат будет в разы выше, чем если перебирать с помощью ПХП и потом кормить в MSQL

    Когда я в своё время сталкивался с проблемой загрузки файла товаров в базу, там было несколько миллионов единиц, то оптимальным стало именно такое решение > LOAD DATA

    Кусок моего старого MySQL кода, для наглядности
    // Загружаем кашерный файл
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,article,available,currencyId,delivery,description,id,name,oldprice,param,picture,price,url,vendor,advcampaign_id,advcampaign_name);
    
    // Загружаем только нужные поля (!!!)
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,@ISBN,@adult,@age,article,@attrs,@author,available,@barcode,@binding,@brand,@categoryId,@country_of_origin,currencyId,delivery,description,@downloadable,@format,@gender,id,@local_delivery_cost,@manufacturer_warranty,@market_category,@model,@modified_time,name,oldprice,@orderingTime,@page_extent,param,@performed_by,@pickup,picture,price,@publisher,@sales_notes,@series,@store,@syns,@topseller,@type,@typePrefix,url,vendor,@vendorCode,@weight,@year,advcampaign_id,advcampaign_name,@deeplink);
    
    // Все поля
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,ISBN,adult,age,article,attrs,author,available,barcode,binding,brand,categoryId,country_of_origin,currencyId,delivery,description,downloadable,format,gender,id,local_delivery_cost,manufacturer_warranty,market_category,model,modified_time,name,oldprice,orderingTime,page_extent,param,performed_by,pickup,picture,price,publisher,sales_notes,series,store,syns,topseller,type,typePrefix,url,vendor,vendorCode,weight,year,advcampaign_id,advcampaign_name,deeplink);

    Ответ написан
    Комментировать
  • Как преодолеть кризис начинающего специалиста?

    syschel
    @syschel
    freelance/python/django/backend
    Да, проблема есть, НО вы не туда смотрите. У вас типичная проблема новичка, она в иной плоскости. Вы слишком самоуверенны и считаете что много знаете/умеете/достойны_большего. В начале кажется многое "не нужным" и "глупым". Хочется не использовать фреймворк, а писать самому. Хочется написать очередной велосипед и свою ОС.
    Обратная сторона самоуверенности, это стремление вообще всё возможное покрыть сторонними библиотеками. Даже если это есть в вашем фреймворке и вызывается одной функцией, то всёравно гуглить отдельную библиотеку.

    Потом, с годами и опытом это проходит. Даже в научной среде есть определение этому явлению.
    Ответ написан
    1 комментарий
  • Как закрыть доступ к сайту для всех кроме группы пользователей?

    syschel
    @syschel
    freelance/python/django/backend
    Добавь авторизацию Apache`м или Nginx`ом. То есть при входе будет выскакивать доп окно с требованием пароля и логина, да дай его им.

    Либо вводи в класс/функцию входа, дополнительное условие с учётом домена сайта.
    Ответ написан
    Комментировать
  • Не сохраняется фото django. Что исправить?

    syschel
    @syschel
    freelance/python/django/backend
    Комментировать
  • Django.ModuleNotFoundError: No module named 'news '?

    syschel
    @syschel
    freelance/python/django/backend
    В settings.py в блок INSTALLED_APPS = [], не добавлен модуль 'news'
    INSTALLED_APPS = [
        ...
        'news'
    ]
    Ответ написан
  • Как представить time series data если используется ORM?

    syschel
    @syschel
    freelance/python/django/backend
    Так как вы и поняли, так и представляйте.
    Модель в джанге не означает бизнес логику, она означает именно по сути таблицу в БД. По мимо вашего варианта, в БД спокойно могут быть таблицы со списками, к примеру городов, стран, валют, цветов или характеристик.
    Единственное что можете джангой ещё сделать, вроде бы не очевидного. Это переопределить метод Save() у модели А и проверять. Если объект уже есть (то есть выполняется обновление объекта, а не создание), то перед сохранением, старые значения сбросить в вашу "ChangeOptions" которая состоит из полей(связь на А, старое_значение и ДатаТайм).
    Ответ написан
    1 комментарий
  • Бан за безактивность на upwork?

    syschel
    @syschel
    freelance/python/django/backend
    Да, вы верно слышали. Это защита от спама и гулпых фрилансеров, которые шлют однотипные шаблонные предложения на вроде "найми меня".

    Если вообще без активности аккаунт, ничего страшного не будет. Единственное, поставьте статус "не нуждаюсь в работе" в настройках. Это чтобы вам не слали инвайты. Ибо есть статус профиля "время отклика на инвайты", где желательно его держать в "отвечает в течении суток". И если всётаки прилетит инвайт, но он вам не интересен, постарайтесь как можно быстрее (в течении суток) отказаться от него, выбрав одну из причин в списке. Отказ от ивайтов никак не влияет на рейтинг, только время отклика.

    З.Ы. Во время когда ищу новый заказ, мне 60 бесплатных "коннектов" (по 2 на заявку) очень много, так как очень скурпулёзно выбираю к кому отправить предложение о работе. То задача размытая или не интересная, то цены не те, то условия подозрительные, то клиент какой-то не благонадёжный, то уже наняли. Но некоторые, особенно новички(при регистрации дают 90 коннектов на первый месяц), все эти поинты умудряются прогулять за пару часов в первый день. Рассылая всем подряд предложения. Вот и выходит, что с такими система борется. Повышая качество. Так как не крути, но нас фрилансверов там со всего мира миллионы, а вот работодателей с деньгами всего лишь тысячи.
    Ответ написан
    2 комментария
  • Безопасно ли записывать "секретные" данные в txt-файл с именем из кракозябр (например salkgkawj2145lkjsalfkj@24lkjl), который открыт для чтения?

    syschel
    @syschel
    freelance/python/django/backend
    Не безопасно, вспомним утечки всех СМСок у крупных сотовых операторов лет 5 назад.

    Можно хранить в тхт файлах, но раз есть пхп на сервере, то через него и отдавать. То есть "база" из файлов лежит в папке, к которой из вне не попасть, но сам пхп может смотреть папку и вычитывать файлы. Вот этот пхп пускай на время сессии и выдаёт контент файлов. Этот же пхп файл определяет и права на доступ к данным, если там многопользовательский вариант или просто парольный доступ.
    Через мод_реврайт, можете симулировать расширение .txt в адресной строке, а через контент тип формат text.
    Ответ написан
    Комментировать