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
Статический контент
Добавим обработку статического содержимого в файле roror/settings.py:
STATIC_ROOT = os.path.join(BASE_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
Теперь надо добавить доступные хосты в файле /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
Правим файл 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;
Меняем локальную авторизацию на нашу базу по паролю.
В файле /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