Clonamos el repositorio:
1
| ernesto@honda:~/Documentos$ git clone https://github.com/josedom24/django_tutorial.git
|
Creamos la maquina virtual
1
| ernesto@honda:~/virtualenv$ python3 -m venv practicadjango
|
Lo activamos:
1
| ernesto@honda:~/virtualenv$ source practicadjango/bin/activate
|
Instalamos dependencias:
1
| (practicadjango) ernesto@honda:~/Documentos/django_tutorial$ pip install -r requirements.txt
|
1
2
3
4
5
6
7
8
9
10
| (practicadjango) ernesto@honda:~/Documentos/django_tutorial$ nano django_tutorial/settings.py
# Database
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
|
Creamos la base de datos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| (practicadjango) ernesto@honda:~/Documentos/django_tutorial$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying polls.0001_initial... OK
Applying sessions.0001_initial... OK
|
Creamos usuario administrador:
1
2
3
4
5
6
7
8
9
10
| (practicadjango) ernesto@honda:~/Documentos/django_tutorial$ python3 manage.py createsuperuser
Nombre de usuario (leave blank to use 'ernesto'): admin
Dirección de correo electrónico:
Password:
Password (again):
Esta contraseña es demasiado corta. Debe contener al menos 8 caracteres.
Esta contraseña es demasiado común.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
|
Iniciamos el servidor web:
1
| (practicadjango) ernesto@honda:~/Documentos/django_tutorial$ python manage.py runserver
|
Creamos las preguntas y accedemos a /polls:
- Instala en el servidor los servicios necesarios (apache2). Instala el módulo de apache2 para ejecutar código python.
1
2
3
4
5
| debian@django:~$ sudo apt install apache2
debian@django:~$ sudo apt install apache2-dev
debian@django:~$ sudo apt install libapache2-mod-wsgi-py3
debian@django:~$ sudo apt install python3-pip
debian@django:~$ sudo pip3 install mod_wsgi
|
Clonamos y subimos el repositorio a GitHub:
1
2
3
4
| (practicadjango) ernesto@honda:~/Documentos$ git clone git@github.com:ernestovazquez/django.git
(practicadjango) ernesto@honda:~/Documentos/django$ git add django_tutorial/
(practicadjango) ernesto@honda:~/Documentos/django$ git commit -m "copiado de django"
(practicadjango) ernesto@honda:~/Documentos/django$ git push
|
Hacemos un pull para bajar los ficheros nuevos:
1
| debian@django:~/django$ git pull
|
Configuración de apache2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| ServerName www.django-ernesto.iesgn.org
ServerAdmin webmaster@localhost
DocumentRoot /var/www/django/django_tutorial
WSGIDaemonProcess django-ernesto.iesgn.org python-path=/var/www/django/django_tutorial
WSGIScriptAlias / /var/www/django/django_tutorial/django_tutorial/wsgi.py
<Directory /var/www/django/django_tutorial>
<Files wsgi.py>
WSGIProcessGroup django-ernesto.iesgn.org
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Files>
</Directory>
|
Editamos el setting.conf
1
2
3
4
5
6
| root@django:/var/www/django/django_tutorial/django_tutorial# sudo nano settings.py
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ["www.django-ernesto.iesgn.org"]
|
Creamos el usuario administrador:
1
2
3
4
5
6
7
8
9
10
11
| root@django:/var/www/django/django_tutorial# python3 manage.py createsuperuser
Nombre de usuario (leave blank to use 'root'):
Dirección de correo electrónico:
Password:
Password (again):
La contraseña es demasiado similar a la de nombre de usuario.
Esta contraseña es demasiado corta. Debe contener al menos 8 caracteres.
Esta contraseña es demasiado común.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
|
Cambio static:
1
2
3
| root@django:/var/www/django/django_tutorial# nano django_tutorial/settings.py
STATIC_ROOT = '/var/www/django/django_tutorial/static'
|
1
| root@django:/var/www/django/django_tutorial# python3 manage.py collectstatic
|
1
2
3
4
5
| Alias /static /var/www/django/django_tutorial/static
<Directory /var/www/django/static>
Require all granted
</Directory>
|