Table des matières
Modèle d'introduction à Go
Syntaxe de base
Analyse des fichiers HTML
Données de liste de processus
Fonctions et pipelines
Choses à noter
Résumer
Maison développement back-end Golang Tutoriel de modèle Go: du débutant à la pratique

Tutoriel de modèle Go: du débutant à la pratique

Aug 29, 2025 am 09:09 AM

Tutoriel de modèle Go: du débutant à la pratique

Cet article vise à fournir un tutoriel complet et facile à comprendre couvrant tout, de la syntaxe de base à l'utilisation avancée. Nous présenterons comment utiliser le modèle GO pour analyser les fichiers HTML, traiter les données de liste et fournir un exemple pratique de code et de précautions pour aider les développeurs à démarrer rapidement et à maîtriser les compétences de l'utilisation du modèle GO. En étudiant cet article, vous pourrez créer des pages Web dynamiques et générer une sortie dans divers formats de texte à l'aide du modèle GO.

Modèle d'introduction à Go

Le modèle GO est un modèle de moteur fourni par la bibliothèque de langue GO Language HTML / modèle et des packages de texte / modèle. Il permet aux développeurs de combiner des données avec des modèles prédéfinis pour générer une sortie de texte dynamique, tels que des pages HTML, des fichiers de configuration, etc. Avec une syntaxe concise, des fonctionnalités puissantes et une bonne sécurité, le modèle GO est idéal pour créer des applications Web et des scripts automatisés.

Le package HTML / Template est spécialement conçu pour générer une sortie HTML, qui échappe automatiquement aux caractères spéciaux HTML pour empêcher les attaques de scripts (XS). Le package texte / modèle convient pour générer d'autres types de sortie de texte, tels que les fichiers de configuration, le contenu du courrier, etc.

Syntaxe de base

Le modèle de syntaxe du go est basé sur le concept d'actions, qui sont entourés de doubles accolades bouclées {{et}}. Voici quelques actions courantes:

  • Référence de la variable: {{.FieldName}} ou {{.MethodName}} le champ ou la méthode utilisée pour accéder aux données. Indiquer. Indique le contexte actuel.
  • Jugement de condition: {{if .condition}} ... {{else}} ... {{end}} est utilisé pour exécuter différents fragments de modèle selon les conditions.
  • Loop Itération: {{Range .List}} ... {{end}} est utilisé pour traverser les éléments dans une liste ou un tableau.
  • Le modèle contient: {{modèle "templatename".}} Est utilisé pour inclure d'autres modèles.
  • Pipeline: {{.value | FunctionName}} est utilisé pour transmettre des données à une fonction de traitement.

Analyse des fichiers HTML

L'utilisation du package HTML / Template pour analyser les fichiers HTML est très simple. Tout d'abord, vous devez créer un objet de modèle, puis analyser le fichier HTML à l'aide de la méthode ParseFiles.

 package principal

importer (
    "Html / modèle"
    "enregistrer"
    "OS"
)

Type Data Struct {
    Chaîne de titre
    Chaîne de contenu
}

func main () {
    tmpl, err: = template.parsefiles ("index.html")
    Si err! = Nil {
        log.fatal (err)
    }

    Données: = données {
        Titre: "Exemple de modèle Go",
        Contenu: "Ceci est un exemple simple d'utilisation du modèle GO pour générer du HTML.",
    }

    err = tmpl.execute (os.stdout, données)
    Si err! = Nil {
        log.fatal (err)
    }
}

Le code ci-dessus définit d'abord une structure de données pour stocker les données requises par le modèle. Ensuite, utilisez la méthode template.parsefiles pour analyser le fichier html nommé index.html. Enfin, utilisez la méthode tmpl.exécute pour combiner les données et les modèles et sortir les résultats de la sortie standard.

Le contenu du fichier index.html peut ressembler à ceci:

 

<adal>
    <title> {{. Title}} </title>
 head>

    <h1> {{. Title}} </h1>
    <p> {{. Contenu}} </p>

</adal>

Données de liste de processus

Le modèle GO fournit une action de plage pour itérer les éléments dans une liste ou un tableau. Voici un exemple de traitement des données de liste:

 package principal

importer (
    "Html / modèle"
    "enregistrer"
    "OS"
)

Tapez l'élément struct {
    Chaîne de noms
    Prix ​​Float64
}

Type Data Struct {
    Articles [] Article
}

func main () {
    tmpl, err: = template.parsefiles ("items.html")
    Si err! = Nil {
        log.fatal (err)
    }

    Données: = données {
        Éléments: [] élément {
            {Nom: "Apple", prix: 1.0},
            {Nom: "banane", prix: 0,5},
            {Nom: "orange", prix: 0,75},
        },
    }

    err = tmpl.execute (os.stdout, données)
    Si err! = Nil {
        log.fatal (err)
    }
}

Le contenu du fichier items.html peut ressembler à ceci:

 

<adal>
    <title> Items </title>
 head>

    <h1> éléments </h1>
    <ul>
        {{range .items}}
        <li> {{..
        {{finir}}
    </li>
</ul>

</adal>

Dans l'action de la plage, le point. représente l'élément de l'itération actuelle. printf "% .2f" .Price est utilisé pour formater le prix, conservant deux décimales.

Fonctions et pipelines

Le modèle GO permet d'utiliser des fonctions personnalisées et des pipelines pour traiter les données. Les fonctions personnalisées peuvent être enregistrées en modèles à l'aide de template.funcmap.

 package principal

importer (
    "Html / modèle"
    "enregistrer"
    "OS"
    "Strings"
)

Func Toupper (S String) String {
    Retour Strings.Toupper (s)
}

func main () {
    funcmap: = template.funcmap {
        "toupper": toupper,
    }

    tmpl, err: = template.new ("example.html"). funcs (funcmap) .parsefiles ("example.html")
    Si err! = Nil {
        log.fatal (err)
    }

    data: = map [String] String {
        "Message": "Hello World",
    }

    err = tmpl.execute (os.stdout, données)
    Si err! = Nil {
        log.fatal (err)
    }
}

Le contenu du fichier Exemple.html peut ressembler à ceci:

 

<adal>
    <title> Exemple 
 head>
</title>
    <h1> {{. Message | toupper}} </h1>

</adal>

Dans le code ci-dessus, la fonction Toupper convertit la chaîne en majuscules. Utiliser le pipeline | Pour passer la valeur du champ de message à la fonction Toupper pour le traitement.

Choses à noter

  • Sécurité: utilisez le package HTML / modèle pour échapper automatiquement aux caractères spéciaux HTML pour empêcher les attaques XSS. Mais il est toujours nécessaire de faire attention de ne pas insérer les données saisies par l'utilisateur directement dans le modèle pour éviter les risques de sécurité.
  • Gestion des erreurs: lors des modèles d'analyse et des modèles d'exécution, une gestion des erreurs est nécessaire pour assurer la stabilité du programme.
  • Cache de modèle: pour les modèles fréquemment utilisés, ils peuvent être mis en cache pour améliorer les performances.

Résumer

Le modèle GO est un moteur de modèle puissant et flexible qui peut être utilisé pour générer différents types de sortie de texte. En étudiant cet article, vous avez maîtrisé la syntaxe de base du modèle GO, analysant les fichiers HTML, traitement des données de liste, utilisant des fonctions personnalisées et des pipelines. J'espère que ces connaissances pourront vous aider à mieux créer des applications Web et des scripts d'automatisation à l'aide du modèle GO.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment travaillez-vous avec les variables d'environnement à Golang? Comment travaillez-vous avec les variables d'environnement à Golang? Aug 19, 2025 pm 02:06 PM

Goprovidesbuilt-insupportforhandlinlinenvironmentVariblesviattheoSpackage, permettant à développer laderadead, set et manageenvironmentDataseCurely et entièrement.

Comment gérer les packages et les importations en Go? Comment gérer les packages et les importations en Go? Sep 01, 2025 am 02:10 AM

UsegomodulesbyrunninggomodinittrocereAgo.modfile, qui mentionne les dépenses et les versions.2. OrganizcodeIntopackages whereweachDirectoryisapackagewithaconsistpackagename, de préférence laMatchingTheDirectoryName, et lastructureImportSbaseTheMoDulepath.33.

Comment implémenter un cache LRU générique dans Go Comment implémenter un cache LRU générique dans Go Aug 18, 2025 am 08:31 AM

Utilisez GO Generics et Container / List pour réaliser le cache LRU en filetage; 2. Les composants principaux incluent des cartes, des listes liées bidirectionnelles et des verrous mutex; 3. Obtenir et ajouter les opérations assurer la sécurité de la concurrence à travers les verrous, avec une complexité temporelle d'O (1); 4. Lorsque le cache est plein, l'entrée inutilisée la plus longue sera automatiquement éliminée; 5. Dans l'exemple, le cache avec une capacité de 3 a réussi à éliminer le "B" le plus long inutilisé. Cette implémentation prend en charge entièrement générique, efficace et évolutif.

Comment créer et utiliser des types d'erreur personnalisés dans Go Comment créer et utiliser des types d'erreur personnalisés dans Go Aug 11, 2025 pm 11:08 PM

Dans GO, la création et l'utilisation de types d'erreurs personnalisés peuvent améliorer l'expressivité et la débogabilité de la gestion des erreurs. La réponse est de créer une erreur personnalisée en définissant une structure qui implémente la méthode Error (). Par exemple, ValidationError contient des champs de champ et de messages et renvoie les informations d'erreur formatées. L'erreur peut ensuite être renvoyée dans la fonction, détectant des types d'erreur spécifiques via des assertions ou des erreurs de type. Vous pouvez également ajouter des méthodes comportementales telles que les erreurs ISCRITIQUES à personnalisées, qui conviennent aux scénarios qui nécessitent des données structurées, un traitement différencié, une exportation de bibliothèque ou une intégration API. Dans des cas simples, des erreurs.

Comment gérez-vous les signaux dans une application Go? Comment gérez-vous les signaux dans une application Go? Aug 11, 2025 pm 08:01 PM

La bonne façon de traiter les signaux dans les applications GO consiste à utiliser le package OS / Signal pour surveiller le signal et effectuer un arrêt élégant. 1. Utilisez Signal.Notify pour envoyer SIGINT, SIGTERM et d'autres signaux au canal; 2. Exécutez le service principal en goroutine et bloquez le signal d'attente; 3. Après avoir reçu le signal, effectuez un arrêt élégant avec le délai d'expiration via Context.withTimeout; 4. Nettoyer des ressources telles que la fermeture des connexions de la base de données et l'arrêt de la goroutine d'arrière-plan; 5. Utilisez le signal.Resine pour restaurer le comportement du signal par défaut lorsque cela est nécessaire pour vous assurer que le programme peut être terminé de manière fiable en Kubernetes et dans d'autres environnements.

Comment créer une balise de construction personnalisée dans Go Comment créer une balise de construction personnalisée dans Go Aug 27, 2025 am 04:37 AM

CustomBuildTagSingoAllowConditionalCompilationBasedOnenvironment, Architecture, OrCustomScenariosByusing // Go: BuildTagsAtTheTopoffiles, qui aéréthénabledViagobuild-tags "Tagname", soutenant les opérateurs de type &&, ||, et! ForComplexCondidit

Comment gérer les paniques dans un goroutine à aller Comment gérer les paniques dans un goroutine à aller Aug 24, 2025 am 01:55 AM

Tohandlepanicsingoroutines, a utilisé avec cocoverités de manière

Identification et traitement des zéros négatifs de l'IEEE 754 Numéro de point flottant en langue GO Identification et traitement des zéros négatifs de l'IEEE 754 Numéro de point flottant en langue GO Aug 11, 2025 pm 05:06 PM

Cet article explore en profondeur comment faire la distinction entre zéro positif (0) et zéro négatif (-0) dans le nombre de points flottants standard IEEE 754 dans GO. En analysant la fonction de signalisation dans le package mathématique et en combinant des exemples de code réels, la bonne façon d'identifier les zéros négatives est expliquée en détail. L'article vise à aider les développeurs à comprendre les caractéristiques des valeurs flottantes du point zéro et à maîtriser les techniques de traitement avec précision de ces valeurs spéciales dans le langage GO, en assurant l'intégrité des informations symboliques dans la sérialisation ou des scénarios informatiques spécifiques.

See all articles