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

Python Discussion :

Convertir un retour à la ligne d'un Textarea en code html [Python 3.X]


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Ouvrier
    Inscrit en
    Décembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Décembre 2006
    Messages : 50
    Par défaut Convertir un retour à la ligne d'un Textarea en code html
    Bonjour les gens,

    j'aurais besoin de vous pour ce petit problème,.

    Je récupère les données d'un formulaire html (mako) et les encode dans une base mysql.
    Les caractères spéciaux sont convertis en html avec cette fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def htmlCoding(stringToCode):
        return ''.join( '&%s;' % codepoint2name[ord(oneChar)]
                        if ord(oneChar) in codepoint2name
                        else oneChar for oneChar in stringToCode )
    j'aurais besoin en supplément de convertir aussi les retour à la ligne du textarea mais là...

    Je vous remercie d'avance pour votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    Citation Envoyé par bigbib Voir le message
    j'aurais besoin en supplément de convertir aussi les retour à la ligne du textarea mais là...
    Les retours à la lignes sont déjà dans le jeu de caractères latin-1, pourquoi (et comment) les encoder?

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

  3. #3
    Membre averti
    Homme Profil pro
    Ouvrier
    Inscrit en
    Décembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Décembre 2006
    Messages : 50
    Par défaut
    Bonjour et merci pour ta réponse.

    En fait, ma base sql étant en utf8, les caractères spéciaux ne passent pas donc, je les convertis mais les retours à la ligne ne sont pas pris en compte et j'ai tout le texte de mon textarea sur une ligne.

    voici une partie de mon code
    html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    		<form action="index.py?p=aj" method="post">
    			<div class="form-group">
    				<label for="proj">Titre</label>
    				<input type="text" class="form-control" id="proj" name="proj" placeholder="Titre">
    			</div>
    			<div class="form-group">
    				<label for="desc">Description</label>
    				<textarea class="form-control" id="desc" name="desc" placeholder="Description"></textarea>
    			</div>
    			<div class="form-group">
    				<label for="vid">lien vid&eacute;o</label>
    				<input type="text" class="form-control" id="vid" name="vid" placeholder="Lien vid&eacute;o">
    			</div>

    python
    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
    30
    31
     
    class donnees_form():
    	def form1():
    		P = form.getvalue('proj')
    		return P
    	def form2():
    		D = form.getvalue('desc')
    		return D
    	def form3():
    		T = form.getvalue('term')
    		return T
    	def form4():
    		V = form.getvalue('vid')
    		return V
     
     
    class base():
    	def ajouter():
    		frm1 = donnees_form.form1()
    		frm2 = donnees_form.form2()
    		frm3 = donnees_form.form3()
    		frm4 = donnees_form.form4()
    		cur.execute(req_sql.ajouter,(htmlCoding(frm1), htmlCoding(frm2), frm3, htmlCoding(frm4)))
    		conn.commit()
     
     
    class req_sql():
    	ajouter = """
                    INSERT INTO {0} ({1}, {2}, {3},{4})
                    VALUES (%s, %s, %s, %s)
                    """.format(table, champ1, champ2, champ3, champ4)

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    Si j'exécute votre code avec une chaîne de caractères (Unicode) contenant des '\n', çà donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> htmlCoding('ééé\nààà')
    '&eacute;&eacute;&eacute;\n&agrave;&agrave;&agrave;'
    Après côté navigateur, çà ne l'affichera pas car HTML est écrit ainsi...
    On peut les remplacer par des balises <br>, par exemple.

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

  5. #5
    Membre averti
    Homme Profil pro
    Ouvrier
    Inscrit en
    Décembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Décembre 2006
    Messages : 50
    Par défaut
    Je pense que je me suis mal fais comprendre ou je zappe quelque chose.

    en tant qu'utilisateur, quand je fais un retour à la ligne dans le textarea du formulaire, ce retour à la ligne n'est pas transmis à mon form.getvalue('desc') ou alors, je me plante complètement dans le codage utf8, unicode, ...)

    voilà ce que ça donne dans ma base:

    Nom : Capture.PNG
Affichages : 419
Taille : 20,2 Ko

  6. #6
    Membre averti
    Homme Profil pro
    Ouvrier
    Inscrit en
    Décembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ouvrier

    Informations forums :
    Inscription : Décembre 2006
    Messages : 50
    Par défaut
    j'ai trouvé:

    encodage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	def form2():
    		D = form.getvalue('desc')
    		D = D.replace("\n", "<br />")
    		return D
    lecture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	def br(s):
    		b = s.replace("&lt;br /&gt;", "<br />")
    		return b
    à moins qu'il y aie une autre manière, je vais laisser comme cela.

    Merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. retour à la ligne données mysql
    Par illidan05 dans le forum Langage
    Réponses: 1
    Dernier message: 14/08/2009, 20h03
  2. [RegEx] TextArea, retour à la ligne et RegExp
    Par Tutotictac dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2009, 22h52
  3. [MySQL] Comment conserver les retour à la ligne dans MySql ?
    Par lolymeupy dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/05/2008, 13h02
  4. textarea retour à la ligne
    Par -Neo- dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 27/02/2008, 09h28
  5. retour à la ligne automatique sur textarea
    Par jpastier dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/10/2005, 00h44

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