IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

fonction bytes ("..","utf8")


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 42
    Par défaut fonction bytes ("..","utf8")
    Bonjour, pouvez-vous m'expliquer le rôle de la fonction «bytes» à la fin du code ci-dessous svp ? Est-ce lié aux chaînes de caractères encodées (type «byte» sur Python 3) ? Aussi j'ai du mal à voir à quel endroit verra-t-on la phrase «Cette page a été vue {0} fois."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    from django.db.models import F
    from models import Page
     
    def stats_middleware(get_response):
        def middleware(request):
            # Avant chaque exécution de la vue, on incrémente 
            # le nombre de page vues à chaque appel de vues
            try:
                # Le compteur lié à la page est récupéré et incrémenté
                p = Page.objects.get(url=request.path)  
                p.nb_visites = F('nb_visites') + 1
                p.save()
            except Page.DoesNotExist:
                # Un nouveau compteur à 1 par défaut est créé
                p = Page.objects.create(url=request.path)
     
            # Appel de la vue Django
            response = get_response(request)
     
            # Une fois la vue exécutée, on ajoute à la fin le nombre
            # de vues de la page 
            response.content += bytes(
                "Cette page a été vue {0} fois.".format(p.nb_visites),
                "utf8"
            )
            # Et on retourne le résultat
            return response
     
        return middleware
    Merci pour votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    "..." est une chaîne de caractères à laquelle on pourra appliquer la méthode .format et si on veut des "bytes", mieux vaut l'appliquer à la chaîne résultante.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 42
    Par défaut
    Et pourquoi on voudrait des bytes dans ce cas là ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par Sinouhé87 Voir le message
    Et pourquoi on voudrait des bytes dans ce cas là ?
    Peut être parce que la réponse doit être en "bytes". Ce qui est raisonnable puisque c'est du HTTP au dessus de sockets.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 42
    Par défaut
    Ok merci pour la réponse.

Discussions similaires

  1. Choix de fonction de quote (%STR %QUOTE)
    Par tidou95220 dans le forum Macro
    Réponses: 3
    Dernier message: 21/01/2016, 12h34
  2. Fonction split et chaines en UTF8
    Par AnkyFive dans le forum Langage
    Réponses: 9
    Dernier message: 05/01/2012, 17h38
  3. Fonctions de quoting : str, nrquote, nbrquote
    Par L0007 dans le forum Macro
    Réponses: 8
    Dernier message: 12/11/2010, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo