Creación de un sitio Django desde cero
Procedimiento de creación de un entorno de desarrollo y producción para un sitio Django.
Entorno DEV¶
- Creo repositorio git y lo sincronizo con el directorio de desarrollo.
-
Creo entorno Python con pipenv. Dos opciones:
-
Con una versión de Python compilada previamente en nuestra máquina:
$ cd ~/git/remote_james $ pipenv install --python /home/usuario/Python-3.6.5/bin/python3
-
Con la versión de Python3 instalada en el sistema:
$ cd ~/git/remote_james $ pipenv install --three
-
-
Instalo Django, creo proyecto y aplicación:
$ pipenv shell $ pipenv install django $ django-admin startproject remote_james . $ python manage.py startapp james
-
Incorporo nueva app en fichero
settings.py
:INSTALLED_APPS = [ 'james.apps.JamesConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
-
Ejecuto migraciones, creo superusuario y arranco servidor desarrollo:
$ python manage.py makemigrations $ python manage.py migrate $ python manage.py createsuperuser $ python manage.py runserver 0.0.0.0:8000
Entorno PROD¶
-
Bajo el repositorio:
$ cd ~ $ git clone git@bitbucket.org:eduardofilo/remote_james.git
-
Creo el entorno (de nuevo existe la opción de utilizar la versión de Python3 del sistema como en el punto 2 del entorno de desarrollo):
$ cd remote_james $ pipenv install --python /home/servidor/Python-3.6.5/bin/python3
-
Creo base de datos y usuario admin:
$ pipenv shell $ python manage_ovh.py migrate $ python manage_ovh.py createsuperuser
-
Creo sitio en Apache (
/etc/apache2/sites-available/008-remote_james.conf
):<VirtualHost *:80> ServerName remotejames.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error-remotejames.log CustomLog ${APACHE_LOG_DIR}/access-remotejames.log combined Alias /static /home/servidor/remote_james/static <Directory /home/servidor/remote_james/static> Require all granted </Directory> Alias /media /home/servidor/remote_james/media <Directory /home/servidor/remote_james/media> Require all granted </Directory> <Directory /home/servidor/remote_james/remote_james> <Files wsgi.py> Require all granted </Files> </Directory> WSGIDaemonProcess remote_james python-path=/home/servidor/remote_james python-home=/home/servidor/.virtualenvs/remote_james-Sjv1LfIa WSGIProcessGroup remote_james WSGIScriptAlias / /home/servidor/remote_james/remote_james/wsgi.py </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
-
Activo sitio:
$ sudo a2ensite 008-remote_james.conf $ sudo systemctl reload apache2