Django быстрый старт

Django быстрый старт

sudo apt install pip

pip install Django

python -m pip install --upgrade pip setuptools

python -m pip install django

Создаем проект 

django-admin startproject roror

cd roror

python manage.py migrate

python manage.py createsuperuser

Запускаем встроенный web-сервер 

python manage.py runserver 8000

Смотрим по ссылке: http://localhost:8000

Создадим суперпользователя

python manage.py createsuperuser

Вход в админку:

http://127.0.0.1:8000/admin

Теперь откажемся от встроенного web-сервера ctrl\+c в пользу apache.

sudo apt-get install python-pip apache2 libapache2-mod-wsgi

или - для python3

sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3

sudo pip install virtualenv

cd ~/roror

virtualenv rororenv

Before we install our project's Python requirements, we need to activate the virtual environment. You can do that by typing:

source rororenv/bin/activate

pip install django

Добавим обработку статического содержимого

vi roror/settings.py

STATIC_ROOT = os.path.joinBASE\_DIR, "static/"

Перестраиваем проект

cd ~/roror

./manage.py makemigrations

./manage.py migrate

./manage.py collectstatic

Создаем конфигурацию сайта проекта /etc/apache2/sites-available/roror.ru.conf

\<VirtualHost *:80>

ServerAdmin webmaster@localhost

DocumentRoot nigma/data/proj/django/roror

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /static /nigma/data/proj/django/roror/static

\<Directory /nigma/data/proj/django/roror/static>

Require all granted

\</Directory>

\<Directory /nigma/data/proj/django/roror/roror>

\<Files wsgi.py>

Require all granted

\</Files>

\</Directory>

WSGIDaemonProcess roror python-path=/nigma/data/proj/django/roror python-home=/nigma/data/proj/django/roror/rororenv

WSGIProcessGroup roror

WSGIScriptAlias / //nigma/data/proj/django/roror/roror/wsgi.py

\</VirtualHost>

Поправляем права на базу

chmod 664 ~/roror/db.sqlite3

sudo chown :www-data /nigma/data/proj/django/roror

Теперь надо добавить доступные хосты 

vi /nigma/data/proj/django/roror/roror/settings.py

#ALLOWED_HOSTS = []

ALLOWED_HOSTS = ['127.0.0.1','172.27.117.97','roror.ru']

Добавить СУБД PostgreSQL

sudo apt install postgresql postgresql-contrib

vi roror/settings.py

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.postgresql',

'NAME': 'roror',

'USER': 'roror_usr',

'PASSWORD': 'mysecretpass',

'HOST': '127.0.0.1',

'PORT': '5432',

}

}

Создаем БД, пользователя и назначаем права.

psql

CREATE DATABASE roror;

CREATE USER roror_usr WITH password 'mysecterpass';

GRANT ALL ON DATABASE roror TO roror_usr;

ALTER DATABASE roror OWNER TO roror_usr;

Меняем локальную авторизацию на нашу базу по паролю.

vi /var/lib/postgresql/9.5/main/pg_hba.conf

#local   all             all                                     peer

local   roror           roror_usr                               md5

Ставим модуль PIP для поддержки СУБД 

sudo apt install postgresql-server-dev-9.5

sudo pip install psycopg2

sudo pip install psycopg2-binary

Создаем структуру таблиц на основе модели

./manage.py inspectdb

./manage.py showmigrations

./manage.py migrate

./manage.py migrate blog 0001

Ссылки:

https://coderwall.com/p/ooerda/python-django-apache-ubuntu