Rechercher
Cours Python
- Introduction à Python
- Ide Python
- Premier programme Python
- Les variables en Python
- Les commentaires en Python
- Les opérateurs Python
- Les fonctions en Python
- Structure If else... Python
- For While Python
- Formatage des chaines Python
- Les listes en Python
- Les tuples en Python
- Les dictionnaires en Python
- Les ensembles en Python
- POO et classes en Python
- Héritage en Python
- Les exceptions en Python
- Le gestionnaire des packages pip
- Télécharger le cours complet
- Les modules en Python
- Le module OS
- Module datetime Python
- Le module Platform
- Le module virtualenv
- Le Module PyInstaller
- Le module googletrans
- Les fichiers en Python
- Les fichiers ouverture & lecture
- Les fichiers ouverture & écriture
- Les fichiers CSV en Python
- Les Fichiers JSON En Python
- Fichier de configuration .ini
- Python & SQLite database
- DB Browser for SQLite
-
GUI PythonInterface Graphique Tkinter
- Les Windgets Tkinter
- Bibliothèque d'images PILLOW
- Module de style tkinter.ttk
- Liste déroulante ttk Combobox
- le module filedialog
- Projet: Création éditeur de texte
- Bibliothèque graphique wxPython
- Bibliothèque graphique PyQt5
- Le module Math
- La bibliothèque matplotlib
- Le module Python statistics
- Bibliothèque Sympy
- Bibliothèques Numpy
- Bibliothèques Scipy
- Bibliothèques Pandas
- Bibliothèques Scikit Learn
- Bibliothèques TensorFlow
- Python Machine Learning
- Introduction à Django
- Installation de Django
- Premier Projet Django
- Interface administrateur
- Créer une application django
- Les modèles de django
- Templates Django
- Les formulaires Django
- Fichiers Statiques Django
- Upload des fichiers django
- Systeme Pagination Django
- Chaines de caractères
- Arithmétiques en Python
- Exercices Python: les classes
- Exercices sur les dictionnaires
- Exercices Python: les fichiers
- Tous les TP Python
- Création Editeur de Texte en Python Partie1
- Carnet d'adresse en Python
- Formation Python-partie1
Télécharger le cours complet |
Cours Java
-
Les bases Java
- Java : Introduction
- Les outils nécessaires
- Premier programme Java
- Variables et opérateurs Java
- Saisie Clavier
- Les tableaux Java
- Chaines de caractères Java
- Structures conditionnelles - boucles POO & Jnterface Java
- Classes et méthodes Java
- Getters et Setters Java
- Les annotations Java
- Héritage et polymorphisme Java
- Interface Java
- Exceptions Java Les collections Java
- Collections partie1-Introduction
- Collections partie2-linkedList
- Collections partie3-Queue
- Packages Java GUI Java Swing
- Swing - partie 1 : JFrame-JButton-JLabel
- Swing partie 2 JTextarea
- Swing partie 3 - JMenu
- Swing partie 4 - JComboBox
- Swing partie 5 - JTable
- Swing partie 6: WindowBuilder
- Connexion Java avec MySql
- Créer un fichier
- Premier Programme JavaFX
- Les API de JavaFX
- Première Fenêtre JavaFX
- Layout JavaFX
- A propos d'Android OS
- 1 ère Application Android Studio
- Exercices Java débutant
- Ex-Arithmétiques en Java Exercices sur les classes Java
Bases de données Java
Java IO - Les fichiers
JavaFX
Java Android
Exercices Java corrigés
Développement Web
- Introduction au langage HTML
- Structure d'un document HTML
- Mise en forme d’un document HTML
- Liens hypertexte
- Insertion d’images
- Les attributs de la balise BODY
- Les tableaux HTML
- Les listes HTML
- Les Frames HTML
- Les formulaires HTML
- Les caractères spéciaux HTML
- Ressources et références HTML
- Exercices HTML avec correction
- Introduction au langage CSS
- Propriétés d'un sélecteur
- La propriété Text CSS
- La propriété background CSS
- La propriété Font CSS
- La propriété border CSS
- Propriétés margin et padding
- Propriétés Height & Width
- Class et les ID CSS
Javascript Basique
- Introduction au langage Javascript
- Variables, fonctions et operateurs Javascript
- Les structures de contrôle et les boucles Javascript
- Les événements Javascript
- Le modèle Objet du Javascript
- L'objet array Javascript
- Introduction au langage PHP
- Premier programme php
- Variables et Fonctions php
- Opérateurs arithmétiques et logiques
- Les structures de contrôle en php
- Les tableaux en php
- Control des formulaires en php
- Upload des fichiers en php
- Gestion des dossiers et des fichiers en php
- Colorisation syntaxique en php
- Cookies php
- Les variables globales php
- Sessions php
- Les variables php d’environnement
- Les classes et la poo php
- La librairie php_gd2 des images
- Lecture d’un fichier xml en php
- Les expressions régulières en php
- Moteurs de template php : smarty et fast temp…
- Langage MySql
- Introduction au langage MySql
- Installation du Serveur MySql
- Manipulation des bases de donnée MySql
- Manipulation desTables MySql
- Insértion de données MySql
- Installation Wordpress
- Modification du theme Wordpress
- Installation d'un plugin
- Gestion des catégories
- Gestion des articles
- Gestion des menus Wordpress
- Gestion des pages
- Gestion des Plugins
- Gestion des Widgets
- Gestion des Médias
- Gestion des commentaires
- Création formulaire de contact
- Outil Importation & exportation
- Gestion des extensions
- Réglage et paramètres
Base de données
Math Pour Informatique
- Introduction
- Catégories-sous- catégories
- Monomorphismes, épimorphismes
- Somme et produit
- Objet initial-Objet final
- Pullback & pushout
- Egalisateur & Coégalisateur
- Notion de Foncteur
- Transformation naturelle
- Foncteur plein, pleinement fidèle, consrvatif
Génie Logiciel
TICE & Multimédias
- Autoplay Media Studio
- Introduction
- Création d'un projet
- Ajouter une page
- Bouton de commande
- Insertion images, vidéos et flash
- Insertion de text et label
- Insertion de PDF et de page Web
- Création de diapo
- Checkbox et case à cocher
- Liste déroulante et champ de saisie
- Utilisation de Script
- Publication du projet
- Introduction au Script Autoplay Media Studio
- Variable Lua Script
- Fonctions Lua Script
- Structure de contrôle
- Les tableaux Lua Script
- Introduction à VideoScribe
- Premier VideoScribe
FET - tableaux de services
Utilisateurs en ligne
Annonces Google
Etiquettes
Log In
Commentaires récents
- Rev dans Solution Exercice 7: maximum de trois nombres en Python
- mamid dans Solution Exercice 12: table de multiplication en python
- bahija dans Exercices corrigés de Java ( les bases Java pour débutant )
- Anisse dans Solution Exercice 25: inverser une chaine en Python
- Anisse dans Solution Exercice 20: echanger le premier caractère et le dernier caractère d’une chaine en python
Python & Javascript pour les nuls !
Système de pagination en django

Pour aborder cette notion de système de pagination en django, nous allons nous baser sur l'exemple de gestion des étudiants du tutoriel précédent:
Pour cela nous devons faire quelque modification sur l'ensemble des fichiers du système:
1 - Modification au niveau du views
Nous commençons par importer la classe Paginator et les classes associées:
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
- La classe Paginator se trouve dans: django/core/paginator.py. Il s'agit d'une classe permettant de réaliser la pagination d'une liste de données avec des liens vers first page last page, Précédent/Suivant...
- La classe EmptyPage : class utilisée pour lever une exception si la page est introuvable notamment lorsqu'on dépasse la limite d'indexation.
- La classe PageNotInteger : class utilisée pour lever une exception si l'index de la page demandée n'est pas un entier.
Nous créons ensuite un objet : objectlist qui contient les données des étudiant sous forme d'une liste:
object_list = Students.objects.all()
On crée ensuite un objet Paginator qui aura pour paramètre l'objet: object_list et le nombre d'éléments par page à afficher:
paginator = Paginator(object_list, 3)
On récupère ensuite le numéro de la page actuelle sur laquelle on se trouve:
page_number = request.GET.get('page')
On crée ensuite les exception si la page demandée est introuvable, ou si le numéro de page demandé n'est pas un entier:
try:
page_object = paginator.page(page_number)
except PageNotAnInteger:
page_object = paginator.page(1)
except EmptyPage:
page_object = paginator.page(paginator.num_pages)
Voici finalement le code du fichier views.py:
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import StudentsForm
from .models import Students
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
def index(request):
if request.method == 'POST':
form = StudentsForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/students/')
else:
form = StudentsForm()
# Pagination
object_list = Students.objects.all()
paginator = Paginator(object_list, 3)
page_number = request.GET.get('page')
try:
page_object = paginator.page(page_number)
except PageNotAnInteger:
page_object = paginator.page(1)
except EmptyPage:
page_object = paginator.page(paginator.num_pages)
return render(request, 'index.html', {'form': form , 'page_obj': page_object})
2 - Modification au niveau du fichier index.html du template
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>Gestion des étudiants</h2>
<!-- load form -->
<form enctype="multipart/form-data" method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn−default">Save</button>
</form>
<br />
<table border='1' style = 'border-collapse:collapse;' width="600">
<thead>
<th>Name</th> <th>Email</th> <th>Phone</th> <th>Section</th> <th>Photo</th>
</thead>
<tbody>
<!-- load students data -->
{% for stud in page_obj %}
<tr>
<td>{{ stud.name }}</td>
<td>{{ stud.email }}</td>
<td>{{ stud.phone }}</td>
<td>{{ stud.section }}</td>
<td width="96"><img src = "/media/{{stud.photo }}" width = "96" height = "86"></td>
</tr>
{% endfor %}
</tbody>
</table>
<!-- Load pagination system -->
<div style="font-size:20px;">
{% if page_obj.has_previous %}
<a href="?page=1">« first</a>
<a href="?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}">next</a>
<a href="?page={{ page_obj.paginator.num_pages }}">last »</a>
{% endif %}
</div><br />
</body>
</html>
Après exécution, on observe l'apparition du système de navigation en bas de la page:
Laisser un commentaire