Quelques activités sur django
Dans cette activité, vous allez créer une application web simple utilisant le framework Django. Cette application permettra aux utilisateurs de s'inscrire, de publier des messages et d'interagir avec les publications des autres utilisateurs.
pip install Django
Créez un nouveau projet Django en exécutant la commande suivante :
django-admin startproject mini_social_network
Ensuite, naviguez dans le dossier du projet :
cd mini_social_network
Créez une application pour le réseau social :
python manage.py startapp social
Dans social/models.py
, définissez les modèles pour les utilisateurs et les publications :
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.author.username}: {self.content}"
Exécutez les commandes suivantes pour créer les tables dans la base de données :
python manage.py makemigrations
python manage.py migrate
Dans social/views.py
, ajoutez des vues pour afficher les publications et gérer les soumissions :
from django.shortcuts import render, redirect
from .models import Post
from django.contrib.auth.decorators import login_required
@login_required
def index(request):
posts = Post.objects.all()
return render(request, 'index.html', {'posts': posts})
@login_required
def create_post(request):
if request.method == 'POST':
content = request.POST['content']
Post.objects.create(author=request.user, content=content)
return redirect('index')
return render(request, 'create_post.html')
Dans social/urls.py
, ajoutez les routes pour les vues :
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('create/', views.create_post, name='create_post'),
]
N'oubliez pas d'inclure les URLs de l'application dans le urls.py
principal :
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('social.urls')),
]
Dans le dossier social/templates
, créez les fichiers suivants :
index.html
: pour afficher la liste des publications.create_post.html
: pour créer une nouvelle publication.Voici le contenu de index.html
:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Mon Mini Réseau Social</title>
</head>
<body>
<h1>Publications</h1>
<ul>
{% for post in posts %}
<li>{{ post.author.username }} : {{ post.content }}</li>
{% endfor %}
</ul>
<a href="{% url 'create_post' %}">Créer une Publication</a>
</body>
</html>
Voici le contenu de create_post.html
:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Créer une Publication</title>
</head>
<body>
<h1>Nouvelle Publication</h1>
<form action="{% url 'create_post' %}" method="post">
<{% csrf_token %}>
<label for="content">Contenu:</label>
<textarea id="content" name="content" required></textarea>
<input type="submit" value="Publier">
</form>
</body>
</html>
Pour démarrer votre application, exécutez la commande suivante :
python manage.py runserver
Ouvrez votre navigateur et accédez à http://localhost:8000
. Vous devriez voir votre mini réseau social. Inscrivez-vous et commencez à publier !
Vous avez maintenant créé un mini réseau social avec Django. Vous pouvez étendre cette application en ajoutant des fonctionnalités telles que des commentaires, des likes, et des profils d'utilisateurs.
Cette documentation présente les principales classes et méthodes du framework Django, ainsi que leur signification et leur utilisation pour créer un mini réseau social.
Pour installer Django, utilisez la commande suivante :
pip install Django
1️⃣ Description : Classe de base pour tous les modèles Django.
2️⃣ Utilisation : Créer des objets représentant des tables dans la base de données.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
1️⃣ Description : Fonction pour rendre un template HTML.
2️⃣ Utilisation : Retourner une page HTML avec des données contextuelles.
from django.shortcuts import render
def index(request):
return render(request, 'index.html', {'posts': posts})
1️⃣ Description : Fonction pour définir des URLs dans Django.
2️⃣ Utilisation : Mapper les URLs aux vues correspondantes.
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
1️⃣ Description : Contient les données POST envoyées par le formulaire.
2️⃣ Utilisation : Accéder aux données soumises par l'utilisateur.
message = request.POST.get('message')
1️⃣ Description : Représente l'utilisateur actuellement connecté.
2️⃣ Utilisation : Accéder aux informations de l'utilisateur authentifié.
if request.user.is_authenticated:
username = request.user.username
1️⃣ Description : Exception levée lorsque la page demandée n'est pas trouvée.
2️⃣ Utilisation : Lever une erreur 404 dans votre vue.
from django.http import Http404
def view_post(request, post_id):
try:
post = Post.objects.get(id=post_id)
except Post.DoesNotExist:
raise Http404("Post not found")
1️⃣ Description : Fichier de configuration principal de votre application Django.
2️⃣ Utilisation : Définir des paramètres comme la base de données, les applications installées, etc.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
Voici un exemple complet d'application Django pour un mini réseau social :
from django.shortcuts import render, redirect
from .models import Post
def index(request):
posts = Post.objects.all()
return render(request, 'index.html', {'posts': posts})
def create_post(request):
if request.method == 'POST':
Post.objects.create(author=request.user, content=request.POST['content'])
return redirect('index')
return render(request, 'create_post.html')
Django est un puissant framework web qui simplifie le développement d'applications web en Python. Cette documentation couvre les bases pour vous aider à démarrer avec un mini réseau social.
Abonnez-vous maintenant et recevez notre newsletter hebdomadaire avec des matériaux éducatifs, de nouveaux cours, des articles intéressants, des livres populaires et bien plus encore !