bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


Barra lateral

ASIX Administració de Sistemes Informàtics i Xarxes
Tots els mòduls del cicle
MP01 Implantació de sistemes operatius
Totes les UFs del modul
MP02 Gestió de bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Fonaments de maquinari
Totes les UFs del modul
MP06 Administració de sistemes operatius
Totes les UFs del modul
MP07 Planificació i administració de xarxes
Totes les UFs del modul
MP08 Serveis de xarxa i Internet
Totes les UFs del modul
MP09 Implantació d'aplicacions web
Totes les UFs del modul
MP10 Administració de sistemes gestors de bases de dades
Totes les UFs del modul
MP11 Seguretat i alta disponibilitat
Totes les UFs del modul
MP12 Formació i orientació laboral
Totes les UFs del modul
MP13 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP14 Projecte
Totes les UFs del modul
DAM Desenvolupament d’aplicacions multiplataforma
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Accés a dades
Totes les UFs del modul
MP07 Desenvolupament d’interfícies
Totes les UFs del modul
MP08 Programació multimèdia i dispositius mòbils
Totes les UFs del modul
MP09 Programació de serveis i processos
Totes les UFs del modul
MP10 Sistemes de gestió empresarial
Totes les UFs del modul
MP11 Formació i orientació laboral
Totes les UFs del modul
MP12 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP13 Projecte de síntesi
Totes les UFs del modul
MPDual Mòdul Dual / Projecte
DAW Desenvolupament d’aplicacions web
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació
Totes les UFs del modul
MP04 Llenguatge de marques i sistemes de gestió d’informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Desenvolupament web en entorn client
Totes les UFs del modul
MP07 Desenvolupament web en entorn servidor
Totes les UFs del modul
MP08 Desplegament d'aplicacions web
Totes les UFs del modul
MP09 Disseny d'interfícies web
Totes les UFs del modul
MP10 Formació i Orientació Laboral
Totes les UFs del modul
MP11 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP12 Projecte de síntesi
Totes les UFs del modul
SMX Sistemes Microinformàtics i Xarxes
Tots els mòduls del cicle
MP01 Muntatge i manteniment d’equips
Totes les UFs del modul
MP02 Sistemes Operatius Monolloc
Totes les UFs del modul
MP03 Aplicacions ofimàtiques
Totes les UFs del modul
MP04 Sistemes operatius en xarxa
Totes les UFs del modul
MP05 Xarxes locals
Totes les UFs del modul
MP06 Seguretat informàtica
Totes les UFs del modul
MP07 Serveis de xarxa
Totes les UFs del modul
MP08 Aplicacions Web
Totes les UFs del modul
MP09 Formació i Orientació Laboral
Totes les UFs del modul
MP10 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP11 Anglès
Totes les UFs del modul
MP12 Síntesi
Totes les UFs del modul
CETI Ciberseguretat en Entorns de les Tecnologies de la Informació
Tots els mòduls del cicle
CiberOT Ciberseguretat en Entorns d'Operació
Tots els mòduls del cicle
django_mongo

Aquesta és una revisió antiga del document


Django amb MongoDB

En aquest article provarem de veure quines opcions tenim per treballar amb Django i la BD basada en documents MongoDB. La informació està extreta de diversos tutorials articles i materials multimèdia trobats a les xarxes fins a la data d'avui (23/06/2023). És possible i desitjable que hi hagi millores en un futur.

Referències:


Introducció per a DevOps

Desenvolupar un projecte (en Django o en molts altres frameworks) és una tasca força diferent a la de construir la infraestructura correcta per a posar el projecte en producció, ja sigui directament en un servidor propi o de forma dockeritzada en contenidors. Això darrer és el què farem en aquest article, que és la feina més pròpia del DevOps.

Prepar un projecte Django per a què sigui segur implica diverses coses:

  1. Configurar un virtualenv amb les llibreries adequades (requirements.txt).
  2. Crear el projecte amb les versions adequades i actualitzades.
  3. Tenir el projecte sota un VCS (sistema de versionat) com Git.
  4. Configurar les dades sensibles del projecte (contrasenyes, tokens, etc.) perquè no es publiquin al repositori de codi.
  5. Habilitar configuració de l'app mitjançant variables d'entorn, enlloc de fitxers.
  6. Fer un README per facilitar la clonació i posta en marxa del projecte.
  7. Configurar la BD adequadament.
  8. Configurar el servidor d'arxius estàtics.
  9. Posar el projecte en producció amb un servidor d'aplicacions (uWSGI) + un servidor web (Nginx) per als arxius estàtics.


Entorn Python Venv

Per treballar en Python ens convé una eina d'entorn que ens aïlli les diferents versions de llibreries que farem servir, i no tenir incompatibilitats entre les diferents aplicacions que puc tenir (ni tampoc amb el sistema operatiu, que té les seves pròpies versions de les llibreries).

A l'article Python venv teniu detalls a fons de com utilitzar aquestes eines.

Resumidament, necessitem crear l'entorn virtual, entrar-hi i instal·lar Django:

$ python3 -m venv env
$ source env/bin/activate
(env) $ pip install django

Crear projecte

Crearem un projecte Django i provarem si funciona simplement amb:

(env) $ django-admin startproject myproject
(env) $ cd myproject
(env) $ ./manage.py runserver

I per comprovar-ho accedeix amb el navegador a http://localhost:8000.

Si volem endinsar-nos a la programació amb Django es recomana seguir l'excel·lent tutorial oficial Django.


Crear repositori Git

Anem a Github (o a Gitlab, Bitbucket, etc.) i fem crear un nou repositori. Si ho feu a la web, ella mateix ens donarà la «xuleta» de com inicialitzar el nostre projecte i connectar-lo al repo remot.

No pugeu res al repositori remot fins que hagueu configurat correctament el projecte amb el .gitignore com es descriu més avall.

En particular, prengueu cura de no fer cap git add . (afegeix tots els arxius) fins no tenir el .gitignore a l'arrel.

Teniu articles amb informació extensa sobre el sistema de control de versions i de Git en particular.

Configurar .gitignore

Abans d'entrar tots els arxius ens convé crear un arxiu .gitignore a l'arrel del nostre repositori (si esteu seguint el tutorial Django oficial, seria la carpeta mysite). Aquest li dirà a la instrucció git add que ignori els arxius que compleixi amb determinats patrons.

En particular, NO volem que entrin al repo:

  • Arxius que continguin contrasenyes i altra informació sensible que no volem que es publiqui.
  • El fitxer de la BD de SQLite (db.sqlite)
  • Els arxius transitoris d'execució accelerada de Python (els arxius .pyc)
  • Les carpetes de virtualenv. El virtualenv es crearà de nou cada cop que clonem un repositori.

Una versió mínima dels arxius i carpetes que NO volem que es puguin al repo seria aquest:

.gitignore
*.pyc
/env/
/venv/
/static/*
/media/*
.env
db.sqlite3
.coverage
__pycache__
django_mongo.1687510033.txt.gz · Darrera modificació: 2023/06/23 08:47 per david_lozano