Prerrequisitos
- Linux mint 21.1
- Pycharm
- Python 3.10
Herramientas externas
-
Instalar Sass:
sudo apt install ruby-sass
- Instalar el pluging Sass-globbing:
sudo gem install sass-globbing
- Instalar el pluging Sass-globbing:
-
Instalar npm:
npm install
sudo apt install npm
-
Instalar Webpack:
sudo apt install webpack
-
Para poder instalar Pillow (que es uno de los requerimientos del proyecto) hay que instalar antes libjpeg-dev:
sudo apt install libjpeg-dev
-
Para que funcione GeoDjango instalar GDAL:
sudo apt-get install binutils libproj-dev gdal-bin
Configuración del proyecto
-
Clonar repositorio desde https://code.montera34.com/montera34/palcos-galicia
git clone https://code.montera34.com/montera34/palcos-galicia.git
-
Al abrir el directorio desde Pycharm nos sale un cuadro de diálogo para crear un entorno virtual e instalar las dependencias de
requirements.txt
automáticamente. Creamos el entorno virtual en el subdirectoriovenv
. (Si no, se pueden instalar las dependencias desde linea de comandos conpip install -r requirements.txt
) -
Instalar paquetes javascript: Vamos al subdirectorio patio108/static/map/js/ (donde se encentra el fichero package.json) y ejecutamos
npm install
ynpm install --only=dev
-
Añadir fichero private_settins.py junto a _settings.py. Aquí incluimos parámetros de configuración que NO queremos que se suban al repositorio público. La estructura del fichero es:
import os # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True DEBUG_CSS = True DEBUG_JS = True ALLOWED_HOSTS = [] BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'db.sqlite3', } }
Para generar una secret_key vamos a la consola de python y ponemos:
# importing the function from utils from django.core.management.utils import get_random_secret_key # generating and printing the SECRET_KEY print(get_random_secret_key())
-
Crear un usuario administrador del sitio con
python manage.py createsuperuser
Actualización de assets
Estos puntos hay que hacerlos al menos una vez antes de poder lanzar el sitio.
-
Si se modifica algún fichero .sass hay que regenerar los .css mediante
sass --watch -r sass-globbing .:../css
desde el directorio raíz del proyecto. -
Si se modifica algún fichero .js ir al directorio patio108/static/map/js y reenpaquetar con:
webpack --config webpack.dev.js
-
Si modificamos algún modelo de datos tenemos que generar los comandos de actualización de las bases de datos:
python manage.py makemigrations python manage.py makemigrations map python manage.py makemigrations model_utils python manage.py makemigrations connectors python manage.py makemigrations apps.api python manage.py makemigrations textblock
Y para aplicar los cambios finalmente usamos
python manage.py migrate
Servidor de desarrollo
Django incluye un servidor de desarrollo para poder comprobar el estado del sitio en local. Para lanzarlo se usa: python manage.py runserver
Por defecto el servidor escucha en el puerto 8000. Podemos ver la web en http://127.0.0.1:8000