Как начать проект на Django? — Вопросы и ответы — Джино

Как начать проект на Django? — Вопросы и ответы — Джино Хостинг

2020 best platforms that provide django app hosting for free!

I am one of those people who love to work on a remote machine, rather than my own. It’s not even the fact that there might be limitations, or it seems more difficult – it’s just the way I’m used to developing and doing testing. I’m sure there are a lot of other people who prefer to do it the same way.

Trying to find free web hosting is hardly a problem, as there are plenty of options available for those who want to try remote environments for the first time. It becomes difficult when we need a server that can enable us to run applications like Django, and host apps created through the framework.

Read More: Why Getting Proficient in Django Is the Best Decision You Can Take Right Now?

I’m a huge fan of Heroku – which is also going to be included in the list – and the service they provide at no additional cost. You can host little scripts, and try out new things, deploy things and see how they’d perform live, even do a small-scale stress test to see if everything is functioning well. If you are novice towards learning Django, you can try this online tutorial ‘Learn Django and Python Development By Building Projects‘, where you’ll be made familiar with the fundamentals of Django and build blogs, message boards, surveys and much more! And the tutorial is completely FREE!

I hope you’ll be able to find a free Django hosting platform that will suit your needs. They’re obviously not limited to Django only, and I’m only using the terminology so I can have the post rank for that keyword. That’s as transparent as it can get.

PythonAnywhere
This is a cloud-based platform – like most are – that allows you to have a server instance for all your Python development needs, and you can set up a fully functional web server within a couple of clicks. It currently supports one-click install for the following Python applications:

The list is too big to list here!

Head over to the ‘Batteries‘ page and see which libraries, frameworks, and other Python tools are available for easy importation and installation.

The free plan offers enough specifications for you to do some basic testing, and even host a portfolio site if you’d like. You can upgrade to a ‘Hacker Plan’ at $5 per month, and that will allow you to have up to 10k visits per day, depending on the source and type of traffic.

AWS Free Usage Tier
The Amazon AWS free plan is pretty much a way of learning more about the services that AWS & EC2 provide to the world, and perhaps get you hooked on the way their instances and system works in order to become full-time customers. You’ll be able to do just about enough to get your feet wet with testing applications and deploying them. It’s, of course, good to learn more about such platforms, as you never know when it might come in handy, especially when working in the field of development.

Читайте также:  Договор для юридических лиц (образец)

Serdar, an author on InfoWorld has recently published a quick review of the Amazon AWS Free plan and I’d love to have you check it out, as it goes more in-depth about the service and what you can expect.

OpenShift by Red Hat
This is a project maintained by the original Red Hat board, and provides a free – and paid – cloud service to those who need it. OpenShift is very popular in the community, and fully supports hundreds of applications and types of programming languages for you to launch from their ‘gears’.

Learn more about the pricing here.

The official OpenShift blog is full of tutorials, guides and other juicy information that will help you get going quickly. Most importantly, yes, it does support free Django hosting!

Heroku - Cloud Application Platform
This platform is the perfect example of successful growth, over the last couple of years, Heroku has become the place to go to when someone is looking to launch a new startup or a business. It provides incredibly cloud facilities and the server performance is really great, especially when it’s free!

It has now grown and offers a ton of enterprise capabilities and plans for large companies that need infrastructure that can scale, we’re after Django hosting! You can head over to the Heroku’s own ‘Getting Started with Django‘ guide and learn how to set up a fully functional Django installation on your Heroku node.

I’m not sure if I was able to catch and list all of the good ones on this list. I’ll appreciate it if you help me out by sending in a tip to more platforms and hosting providers like this, as I’m always looking for something like that myself. I’ve played around with only Heroku, as far as this list goes – but I’ve heard good recommendations for the rest, and I’m sure you’ve too!

Read More:Cheat Sheet to Docker Commands for Software Developers

Docker

Сначала необходимо подключиться к серверу по SSH
(

инструкция от Beget
)

Для этого понадобится имя пользователя на хостинге — это может
быть как администратор, так и специально созданный ftp аккаунт.

Passenger_wsgi.py


Нужно создать в корне сайта файл

passenger_wsgi.py

Python

Проверить, установлены ли

python3

и

pip

можно командами

python3 -V
pip3 -V

Python и mod_wsgi

На хостинге Джино вы можете использовать скрипты на языке
Python, запуская их через модуль веб-сервера Apache mod_wsgi.

Язык Python всё чаще используется для разработки приложений
на основе веб-фреймворков, например, Django. Найти подробные инструкции
по настройке Python-приложений на Джино можно в разделе «Вопросы
и ответы».

Settings.py

Переходим в директорию Project_Name/Project_Name

Редактируем файл

settings.py

Добавляем домен, на котором Вы разворачиваете сайт в ALLOWED_HOSTS файла (из проекта)

settings.py

Виртуальное окружение

Часто полезно пользоваться виртуальным окружением. Создавать их можно
разными способами, например с помощью:

Например

python3 -m venv venv_django
source venv_django/bin/activate


Обычно при активации виртуального окружения в терминале перед именем пользователя
появляется называние окружения в круглых скобках.

Например

Выбираем vds для django-проекта

На мой взгляд, на начальном этапе для запуска проекта на Django в т.н. production понадобиться самый простой VDS или же виртуальный выделенный сервер. Возникает вопрос – как определить необходимую производительность такого сервера?

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

Читайте также:  Раскрытие возможностей триггеров SQL: все, что вам нужно знать

Домен

На

хостинге

нужно создать сайт и прикрепить к нему домен. Если у вас нет хостинга или домена — рекомендую

Beget

сам им пользуюсь больше десяти лет.

Не забудьте разрешить подключение по FTP и SSH

Запуск первого проекта в django


Переходим в директорию в которой нужно создать проект. Например в public_html.

Выполняем команду

Запуск приложения

В каждом проекте (project) обычно используется одно или несколько приложений (application)

Когда все приложения и конфигурации объединены они составляют веб-приложение.

applications + configurations = web application

Создаём первое приложение

python3 manage.py startapp first_app


Появится директория first_app в которой будут следующие файлы

Запуск/перезапуск сервера

Если перезапуск осуществляется с помощью скрипта выполняем
(насколько я знаю, это актуально для хостингов

Beget

и dreamhost)

Как начать проект на django? — вопросы и ответы — джино

Прежде всего убедитесь, что у вас подключена услуга «Поддержка скриптовых языков» *.
На время разработки вам также часто будет нужен доступ по SSH, поэтому перед созданием
нового Django-проекта подключите и услугу «Поддержка SSH». Если в качестве базы
данных вы будете использовать MySQL, соответствующая услуга также должна быть
подключена.

  • Определитесь с доменом, на котором будет располагаться ваш сайт, и добавьте его
    на аккаунт в разделе «Хостинг / Домены» своей контрольной панели.
    Убедитесь, что домен привязан к сервису «Хостинг».

    Если вы хотите использовать поддомен, то также добавьте его в общий список доменов в этом разделе.

  • Перейдите в раздел «Настройки веб-сервера» и выберите версию Python, которую вы хотите использовать. На данный момент доступны версии 3.9, 3.8, 3.7, 3.6 и 2.7.

    В этой инструкции мы будем использовать технический домен username.myshhost.ru (подставьте вместо username свой логин на «Джино») и Python 3.8.

  • Подключитесь к серверу по SSH.

  • Создайте папку, где будут располагаться ваши проекты. Эта папка должна
    находиться вне DOCUMENT_ROOT, то есть вне папок вида domains/имя_домена.
    Одним из вариантов будет создать папку projects рядом с директорией
    domains и в ней — папку для проекта (назовём наш проект demo):

    mkdir -p ~/projects/demo
    
  • Перейдите в эту папку, затем создайте и активируйте виртуальное окружение Python. Введите команды:

    cd ~/projects/demo
    virtualenv-3.8 env      
    . env/bin/activate
    

    После virtualenv- укажите ту версию Python, которая используется в вашем случае. В результате будет создана папка ~/projects/demo/env.

  • В рамках виртуального окружения установите свежую версию Django:

    pip install --upgrade django
    

    Можно установить и любую другую версию. Например, последнюю версию из ветки 2.1.x:

    pip install --upgrade 'django<2.2'
    

    Таким же образом можно установить и любые другие модули Python.

  • Cоздайте новый Django-проект:

    django-admin startproject demo
    

    В результате будет создана ещё одна вложенная папка demo со стандартным шаблоном Django-проекта.

    Проверим его работоспособность, команда check должна сообщить об отсутствии ошибок:

    ./demo/manage.py check
    
  • Откройте файл ~/projects/demo/demo/demo/settings.py и измените в нем значение переменной ALLOWED_HOSTS:
    вставьте в список имя того домена, на котором вы хотите разместить свой сайт. Например, для технического домена:

    ALLOWED_HOSTS = ['username.myjino.ru']
    
  • В директории домена, на котором будет находиться ваш проект
    (в нашем случае — domains/ваш_логин.myshhost.ru) создайте файл django.wsgi
    и поместите в него такие строки:

    import os, sys
    virtual_env = os.path.expanduser('~/projects/demo/env')
    activate_this = os.path.join(virtual_env, 'bin/activate_this.py')
    exec(open(activate_this).read(), dict(__file__=activate_this))
    sys.path.insert(0, os.path.expanduser('~/projects/demo/demo'))
    from demo.wsgi import application
    

    Затем создайте в той же папке еще один файл — .htaccess —
    и поместите в него следующие директивы:

    AddHandler wsgi-script .wsgi
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]
    
  • Откройте сайт в браузере, и если всё сделано правильно, то вы должны увидеть
    стандартную страницу-заглушку Django, сообщающую об успешной установке.

  • Если же в результате выполнения этих действий получаете в браузере ошибку 500,
    загляните в раздел «Хостинг / Статистика / Лог-файлы».

    Читайте также:  Что это? как называется комбинация микротик фаст трек и микротик

    На этом установка проекта завершена. Теперь вы можете создавать приложения
    и приступать к разработке.

    * Если ваш аккаунт создан до 25.10.2021 г., то вам нужно вместо услуги «Поддержка скриптовых языков» подключить услугу «Поддержка Python Django».

    Как развернуть проект на базе django / python на сервере vds

    И так, чтобы развернуть проект на базе Django / Python на сервере я использую Dokku. Dokku – это мини-Heroku и самая компактная реализация PaaS (Platform as a Service – платформа как сервис). Если вы еще не знаете, что такое Heroku, то спросите у Google.

    Преимущество Heroku и его альтернативы в виде Dokku заключается в простоте процесса выгрузки и запуска проекта в продакшн, т.к. работа происходит через Git. Если вы еще не знает, что такое Git, то подробнее можно посмотреть снова в Гугл, а если коротко, то это система управления версиями.

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

    При выгрузке проекта в продакшн Git используется как источник кода для передачи на сервер и его запуска. В свою очередь Dokku, при условии, что вы настроили проект верно, определяет необходимые компоненты для установки на стороне сервера, создает среду, обеспечивает работу кода и связь между компонентами проекта (такими как БД или файловое хранилище).

    И так, думаю, что пока я наговорил слишком много моментов, которые могут показаться отпугивающими для новичков. Поэтому, на данном этапе предлагаю сделать перерыв и усвоить изложенное.

    Пока все. Удачи!

    Минимальные требования к ресурсам vds на старте проекта на django

    Для запуска небольшого сайта, реализованного на Django/Python я использую сервер VDS с 1 ядром по процессору 2,4 GHz, 2 GB оперативной памяти и 10 Gb SSD диска. На таком сервере у меня работает проект с посещаемостью около 200-300 уников в сутки.

    При этом стоит понимать, что в зависимости от сложности реализованных алгоритмов в работе сайта, ориентироваться только на количество посетителей не стоит. Возможно возникнет необходимость в увеличении количества ядер и/или ОЗУ. Дополнительное место на диске так же может понадобиться, если планируется загрузка объемного медиа-контента, хотя лучше для этих целей использовать отдельные сервера.

    Ровно так же и с базой данных. Если проект предусматривает значительные объемы и частые запросы к БД, то БД лучше развернуть на отдельном сервере, но для старта это нам тоже не понадобиться и мы обойдемся одним сервером, на котором будут работать все и сразу.

    Рейтинг хостингов с поддержкой django на май 2022г

    Установка django


    Первым делом советую обновить pip

    python3 -m pip install —upgrade pip

    Затем непосредственно установить Django

    python3 -m pip install django


    Проверить установку

    python3 -m django —version

    3.2.4

    или

    python3 -m pip list


    Package Version
    —————— ———
    asgiref 3.3.4
    Django 3.2.4
    pip 21.1.2
    pytz 2021.1
    setuptools 39.0.1
    sqlparse 0.4.1
    typing-extensions 3.10.0.0

    Установка python

    Подробнее про установку программ в

    Linux

    с помощью

    configure_make_make-install

    читайте

    здесь

    Установка новой версии python

    Если Python не установлен или вам нужна более свежая версия — можно выполнить установку вручную

    Оцените статью
    Хостинги