Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
django_mongo [2023/06/29 16:25] david_lozano |
django_mongo [2024/06/17 16:57] (actual) david_lozano [Django amb MongoDB] |
||
---|---|---|---|
Línia 1: | Línia 1: | ||
====== Django amb MongoDB ====== | ====== 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 motors de cerca fins a la data d'avui (23/06/2023). És probable i desitjable que l' | + | 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 motors de cerca fins a la data d'avui (23-06-2023). És probable i desitjable |
Referències: | Referències: | ||
Línia 8: | Línia 8: | ||
* PyMongo [[https:// | * PyMongo [[https:// | ||
* Article sobre [[https:// | * Article sobre [[https:// | ||
+ | * [[Django i MongoDB CRUD]] | ||
{{tag> #FpInfor #Dam #DamMp06 # | {{tag> #FpInfor #Dam #DamMp06 # | ||
Línia 25: | Línia 26: | ||
* **Djongo** : Ens permet treballar amb tot el potencial de Django amb MongoDB fent traduccions de les consultes SQL a la sintaxi de MongoDB permetent mantenir el potencial de l'ORM de Django i el seu sistema de models i migracions. | * **Djongo** : Ens permet treballar amb tot el potencial de Django amb MongoDB fent traduccions de les consultes SQL a la sintaxi de MongoDB permetent mantenir el potencial de l'ORM de Django i el seu sistema de models i migracions. | ||
- | * **PyMongo | + | * **PyMongo** : PyMongo és el controlador estàndard mitjançant el qual MongoDB pot interactuar amb Django. És la forma oficial i preferida d' |
===== Djongo ===== | ===== Djongo ===== | ||
- | Djongo no fa cap canvi al marc existent de Django ORM, la qual cosa significa que no apareixen errors innecessaris ni vulnerabilitats de seguretat. Simplement tradueix una cadena de consulta SQL a un document de consulta MongoDB . Com a resultat, totes les funcions, models, etc. de Django funcionen tal qual. | + | Djongo no fa cap canvi al marc existent de Django ORM, la qual cosa significa que no apareixen errors innecessaris ni vulnerabilitats de seguretat. Simplement, tradueix una cadena de consulta SQL a un document de consulta MongoDB. Com a resultat, totes les funcions, models, etc. de Django funcionen tal qual. |
Si ja tens un projecte amb una base de dades SQL, instal·leu Djongo: | Si ja tens un projecte amb una base de dades SQL, instal·leu Djongo: | ||
Línia 75: | Línia 76: | ||
**Djongo encara està en estat de proves**, és incomplet i només mapeja consultes bàsiques sense tenir en compte totes les funcionalitats. Si requeriu alguna cosa més complexa, us haureu d' | **Djongo encara està en estat de proves**, és incomplet i només mapeja consultes bàsiques sense tenir en compte totes les funcionalitats. Si requeriu alguna cosa més complexa, us haureu d' | ||
- | **Djongo actualment té molt poc suport** a incidències que s'estàn | + | **Djongo actualment té molt poc suport** a incidències que s'estan generant i ara per ara no és compatible a versions del Django superiors a la 3.0.5. |
**Djongo converteix les consultes SQL en consultes MongoDB**, cosa que realment no té sentit en una base de dades de documents. No obtindreu cap dels avantatges de MongoDB. I en realitat podria provocar un rendiment baix a MongoDB vs SQL. | **Djongo converteix les consultes SQL en consultes MongoDB**, cosa que realment no té sentit en una base de dades de documents. No obtindreu cap dels avantatges de MongoDB. I en realitat podria provocar un rendiment baix a MongoDB vs SQL. | ||
Línia 88: | Línia 89: | ||
PyMongo és el controlador natural per connectar-nos de manera eficient a una base de dades MongoDB. Com que PyMongo està disponible amb PyPI, podeu instal·lar-lo ràpidament mitjançant una comanda pip: | PyMongo és el controlador natural per connectar-nos de manera eficient a una base de dades MongoDB. Com que PyMongo està disponible amb PyPI, podeu instal·lar-lo ràpidament mitjançant una comanda pip: | ||
pip install pymongo[snappy, | pip install pymongo[snappy, | ||
+ | |||
+ | A continuació teniu un exemple de codi per a la connexió i les funcionalitats CRUD bàsiques: | ||
--> Tutorial ràpid CRUD amb PyMongo# | --> Tutorial ràpid CRUD amb PyMongo# | ||
En aquest tutorial ràpid, demostrarem com utilitzar PyMongo per fer operacions CRUD senzilles. Per a això, creem una sessió de PyMongo: | En aquest tutorial ràpid, demostrarem com utilitzar PyMongo per fer operacions CRUD senzilles. Per a això, creem una sessió de PyMongo: | ||
- | <file python.py> | + | <file python |
import pymongo | import pymongo | ||
# | # | ||
Línia 141: | Línia 145: | ||
\\ | \\ | ||
- | ===== Exemple Codi Online ===== | + | Treballant d' |
- | Crearem un projecte Django i provarem | + | |
- | (env) $ django-admin startproject myproject | + | |
- | (env) $ cd myproject | + | |
- | (env) $ ./manage.py runserver | + | |
- | I per comprovar-ho accedeix | + | Ok, amb això no tindré problemes però: |
- | Si volem endinsar-nos | + | <WRAP important> |
+ | **Adeu | ||
- | \\ | + | **Adeu a aquest Admin tan xulo** treballa fent crides a l'ORM, per tant, veig difícil poder-ho adaptar fàcilment ara per ara. |
- | ===== Exemple Wrap important ===== | + | **Adeu |
- | Anem a Github (o a Gitlab, Bitbucket, etc.) i fem [[Git#crear un nou repositori]]. Si ho feu a la web, ella mateix ens donarà la " | + | |
- | <WRAP important> | ||
- | No pugeu res al repositori remot fins que hagueu configurat correctament el projecte amb el '' | ||
- | |||
- | En particular, prengueu cura de no fer cap '' | ||
</ | </ | ||
- | Teniu articles amb informació extensa sobre el [[VCS|sistema de control de versions]] | + | Tot i en aquestes condicions encara Django és un framework bo per treballar, però no prou per plantejar-te si és la millor opció disponible per treballar amb MongoDB. **Quina proposes tu?** |
- | ===== Exemple Wrap info ===== | + | ===== Exercici proposat |
+ | <WRAP todo> | ||
+ | Instal·lat el MongoDB al teu dispositiu i adapta l' | ||
- | <WRAP info> | + | Fes proves |
- | Podeu llegir referències sobre els potents formularis | + | |
- | </ | + | |
- | + | ||
- | ===== Exemple Wrap todo ===== | + | |
- | <WRAP todo> | + | |
- | **Formularis** | + | |
- | Elabora formularis per: | + | **Comenta |
- | - Crear lliga. | + | |
- | | + | |
- | | + | |
- | - Crear equip. | + | |
- | - Assignar equips a una lliga (afegir o treure). | + | |
</ | </ |