Dépot Copyright

 CopyrightFrance.com

Cours Python

  1. Introduction à Python
  2. Ide Python
  3. Premier programme Python
  4. Les variables en Python
  5. Les commentaires en Python
  6. Les opérateurs Python
  7. Les fonctions en Python
  8. Structure If else... Python
  9. For While Python
  10. Formatage des chaines Python
  11. Les listes en Python
  12. Les tuples en Python
  13. Les dictionnaires en Python
  14. Les ensembles en Python
  15. POO et classes en Python
  16. Héritage en Python
  17. Les exceptions en Python
  18. Le gestionnaire des packages pip
  19. Télécharger le cours complet
  20. Les modules en Python
  21. Le module OS
  22. Module datetime Python
  23. Le module Platform
  24. Le module virtualenv
  25. Le Module PyInstaller
  26. Les fichiers en Python
  27. Les fichiers ouverture & lecture
  28. Les fichiers ouverture & écriture
  29. Les fichiers CSV en Python
  30. Les Fichiers JSON En Python
  31. Fichier de configuration .ini
  32. Python & SQLite database
  33. DB Browser for SQLite
  34. Interface Graphique Tkinter
  35. Les Windgets Tkinter
  36. Bibliothèque d'images PILLOW
  37. Module de style tkinter.ttk
  38. Liste déroulante ttk Combobox
  39. le module filedialog
  40. Projet: Création éditeur de texte
  41. Bibliothèque graphique wxPython
  42. Bibliothèque graphique PyQt5
  43. Télécharger le cours complet
  44. Le module Math
  45. La bibliothèque matplotlib
  46. Le module Python statistics
  47. Bibliothèque Sympy
  48. Bibliothèques Numpy
  49. Bibliothèques Scipy
  50. Bibliothèques Pandas
  51. Bibliothèques Scikit Learn
  52. Bibliothèques TensorFlow
  53. Python Machine Learning
  54. Introduction à Django
  55. Installation de Django
  56. Premier Projet Django
  57. Interface administrateur
  58. Créer une application django
  59. Les modèles de django
  60. Templates Django
  61. Les formulaires Django
  62. Fichiers Statiques Django
  63. Upload des fichiers django
  64. Exercices Python: les bases
  65. Exercices Python: les classes
  66. Exercices Python: les fichiers
  67. Tous les TP Python
  68. Création Editeur de Texte en Python Partie1
  69. Carnet d'adresse en Python
  70. Formation Python-partie1

Cours Java

Développement Web

  1. Introduction au langage HTML
  2. Structure d'un document HTML
  3. Mise en forme d’un document HTML
  4. Liens hypertexte
  5. Insertion d’images
  6. Les attributs de la balise BODY
  7. Les tableaux HTML
  8. Les listes HTML
  9. Les Frames HTML
  10. Les formulaires HTML
  11. Les caractères spéciaux HTML
  12. Ressources et références HTML
  13. Exercices HTML avec correction
  1. Introduction au langage CSS
  2. Propriétés d'un sélecteur
  3. La propriété Text CSS
  4. La propriété background CSS
  5. La propriété Font CSS
  6. La propriété border CSS
  7. Propriétés margin et padding
  8. Propriétés Height & Width
  9. Class et les ID CSS

Javascript Basique
  1. Introduction au langage Javascript
  2. Variables, fonctions et operateurs Javascript
  3. Les structures de contrôle et les boucles Javascript
  4. Les événements Javascript
  5. Le modèle Objet du Javascript
  6. L'objet array Javascript
Framework JQuery
  1. Introduction au Framework jQuery
  2. Premier pas avec le framework jQuery
  3. Les Sélecteurs jQuery
  1. Introduction au langage PHP
  2. Premier programme php
  3. Variables et Fonctions php
  4. Opérateurs arithmétiques et logiques
  5. Les structures de contrôle en php
  6. Les tableaux en php
  7. Control des formulaires en php
  8. Upload des fichiers en php
  9. Gestion des dossiers et des fichiers en php
  10. Colorisation syntaxique en php
  11. Cookies php
  12. Les variables globales php
  13. Sessions php
  14. Les variables php d’environnement
  15. Les classes et la poo php
  16. La librairie php_gd2 des images
  17. Lecture d’un fichier xml en php
  18. Les expressions régulières en php
  19. Moteurs de template php : smarty et fast temp…
  1. Langage MySql
  2. Introduction au langage MySql
  3. Installation du Serveur MySql
  4. Manipulation des bases de donnée MySql
  5. Manipulation desTables MySql
  6. Insértion de données MySql
  1. Installation Wordpress
  2. Modification du theme Wordpress
  3. Installation d'un plugin
  4. Gestion des catégories
  5. Gestion des articles
  6. Gestion des menus Wordpress
  7. Gestion des pages
  8. Gestion des Plugins
  9. Gestion des Widgets
  10. Gestion des Médias
  11. Gestion des commentaires
  12. Création formulaire de contact
  13. Outil Importation & exportation
  14. Gestion des extensions
  15. Réglage et paramètres
  1. Introduction à Joomla
  2. Installation Joomla
  3. Architecture de Joomla

TICE & Multimédias

Math Pour Informatique

Utilisateurs en ligne

Users: 20 Guests, 3 Bots

Annonces Google

1 – Création du formulaire d’upload au sein d’un modèle django

Il vous arrive souvent que vous souhaiter ajouter un champ fichier (file field) à un formulaire d’inscription ou d’insertion des données…Jusqu’à présent nous n’avons pas encore traité ce type de champ. le type de champ file field peut être traité soit d’une façon isolée ou au sein d’un modèle. Pour faire simple nous allons traiter ce dernier type.

Commençons par créer un projet mysite au sein duquel nous créons une application nommée uplodFile:

Créons ensuite un répertoire nommé media au sein de notre projet mysite. Ce dossier doit être configurer au sein du fichier settings.py:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

Configurons ensuite les fichier url.py de l’application uploadFile:

urls.py
from django.contrib import admin
from django.urls import path
from uploadFile import  views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('upload/', views.upload_file),
]

Considérons l’exemple de modèle Students que nous avons déjà traité dans le tutoriel des modèles django , auquel on ajoute un champ file field qui offre aux étudiants de joindre leurs photos pendant l’inscription:

models.py
from django.db import models
class Students(models.Model):
    name        = models.CharField(max_length=25)
    email       = models.EmailField(max_length=40)
    phone    = models.IntegerField(max_length=40)
    section      = models.CharField(max_length=25)
    photo           = models.FileField(upload_to = 'photos')

L’argument upload_to = ‘photos’ qu’on a ajouté, indique à django que les fichiers téléchargés doivent être enregistrer au sein d’un dossier nommé media/photos . Faut il créer manuellement ce répertoire ? Et bien ne vous inquiétez pas! Django le créera automatiquement lors d’exécution du script.

On effectue ensuite les migrations nécessaires:

python manage.py makemigrations uploadFile

et ensuite :

python manage.py migrate

Nous créons ensuite un fichier forms.py qui permettra de générer le formulaire:

forms.py
from django.forms import ModelForm
from uploadFile.models import Students

class StudentsForm(ModelForm):
    class Meta:
        model = Students
        fields = ['name' , 'email' ,'phone' ,'section' , 'photo']

Le  views:sera ensuite crée de la même façon que dans le tutoriel précédent concernant les modèles de django à la différence d’ajout d’un paramètre request.FILES

views.py
from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import StudentsForm

def upload_file(request):
    if request.method == 'POST':
        form = StudentsForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/upload/')
    else:
        form = StudentsForm()
    return render(request, 'upload.html', {'form': form})

Finalement, il nous reste qu’à crer le fichier de template upload.html:

template/upload.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form enctype="multipart/form-data"  method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn−default">Save</button>
</form>

</body>
</html>

Sans oublier le paramètre enctype=”multipart/form-data”

2 – Application: création d’une mini-application de gestion des étudiants

Nous allons maintenant nous servir de ce qui précède pour créer un mini système de gestion des étudiants.

En se basant sur le premier paragraphe, tout est là rien que des modifications minime.

2.1 – modification au niveau du fichier urls.py:

Afin que les fichiers du répertoire médias soient accessible, il faut ajouter MEDIA_URL et MEDIA_ROOT au block des urls:

+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

sans oublier les imports nécessaires:

from django.conf.urls.static import static
from . import settings

Voici le code du fichier urls.py:

from django.contrib import admin
from django.urls import path
from uploadFile import  views
from django.conf.urls.static import static
from . import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    path('upload/', views.upload_file),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

2.2 – Modification au niveau du fichier views.py

Au niveau du fichier views.py, rien que l’ajout de la variable:

'data' : Students.objects.all()

au sein de la méthode render:

from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import StudentsForm
from .models import Students

def upload_file(request):
    if request.method == 'POST':
        form = StudentsForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/upload/')
    else:
        form = StudentsForm()
    return render(request, 'upload.html', {'form': form , 'data' : Students.objects.all()})

3.2 – Modification au niveau du fichier de template uplod.html

Au niveau du fichier template/upload.html, on ajoute uniquement l’affichage des champs nom, email, phone, section, photo…

template/upload.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h2>Gestion des étudiants</h2>

    <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' width="600" style="border-collapse:collapse;">
    <tr><td bgcolor="#dddddd"><b>Name</b></td>
        <td bgcolor="#dddddd"><b>Email</b></td>
        <td bgcolor="#dddddd"><b>phone</b></td>
    <td bgcolor="#dddddd"><b>section</b></td>
    <td bgcolor="#dddddd"><b>photos</b></td>
    </tr>
{% for stud in data %}
    <tr><td>{{ stud.name }}</td>
        <td>{{ stud.email }}</td>
        <td>{{ stud.phone }}</td>
    <td>{{ stud.section }}</td>
    <td><img src = "/media/{{stud.photo }}" width = "96" height = "86"></td>
    </tr>

{% endfor %}
</table>
</body>
</html>

Et maintenant en exécutant le script nous obtenons notre beau mini-système de gestion des étudiants:

 

 

Younes Derfoufi
CRMEF OUJDA

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit is exhausted. Please reload the CAPTCHA.