suivi du tuto disponible à cette adresse, tuto de JustDjango https://youtu.be/fOukA4Qh9QA volontairement les notes du README sont en français (voir pardon Franglais). Mais le code respecte les bonnes pratiques et les commentaires sont en anglais.
Lien vers le tuto YouTubeJustDjangoCRMTuto from JustDjango
Python 3.9 Django Version 3.1. (end of support end 2021!)
Rq: j'utilise $> pour signifier le début d'une instruction bash
-> on suppose que python3 est installé, venv également, pip3 également et git + vscode
creation d'un reépertoire : git init, ajout d'un fichier .gitignore avec env à l'interieur via vscode sync avec github et création d'un repository
ajout d'un environnement virtuel(venv ou virtualenv):
Django from Roberth Solis Django template from bibhasdn
Django est un framework Python il est gratuit et OpenSource encourage les developpements rapides (rapid dev approach) Depuis 2005 (il y a une équipe derière Django même si c'est OpenSource) focus sur la sécurité Scalable (Sentry https://sentry.io/welcome/, Udemy, Instagram, OPENedX,...)
installation de Django
ajout d'un projet django: $> django-admin startproject djcrm . le . permet de garder le projet à la racine de notre repertoire master
lancement du serveur:
TODO: en prod nous nous bancherons sur postgresql en dev pour le moment on reste du sqlite3
une application est un module de notre projet (leads, sales, ...) $> python manage.py startapp leads
models => "tables de la base de données"
ajout d'une class pour définir la table des leads
class Lead(models.Model):
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)
age = models.IntegerField(default=0)
prise en compte dans la base de données:
on ajoute une classe en héritage du model abstrait de données utilisateur pour faire des potentielles modification dans le futur sans alterer le moteur django.
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
ne pas oublier de modifier le fichier settings du projet: AUTH_USER_MODEL = 'leads.User'
Rq: il est possible de lancer un shell dans notre terminal pour django avec la commande: $> python manage.py shell
$> python manage.py createsuperuser
pour la gestion des vues dans Django la gestion est la suivante:
on commence par ajouter une fonction dans le fichier views.py :
exemple:
from django.shortcuts import render
def home_page(request):
return render(request, "second_page.html")
pour le fonctionnement du render: si on ne précise rien alors on recupere la page dans le dossier templates à la racine de notre repertoire, sinon on utilise le templates de l'application
cette fonction nous permet l'affichage d'une page html (css, JS...) sur notre application
il faut déclarer l'appel à la vue dans le fichier url.py de notre projet exemple:
from django.contrib import admin
from django.urls import path
from leads.views import home_page
urlpatterns = [
path('admin/', admin.site.urls),
path('', home_page)
]