Maison > développement back-end > Golang > le corps du texte

Utilisez le package Template de Golang pour développer rapidement des pages Web réactives

WBOY
Libérer: 2023-07-18 16:51:30
original
797 Les gens l'ont consulté

Utilisez le package Template de Golang pour développer rapidement des pages Web réactives

Dans le développement Web, les modèles de pages Web sont une technologie très courante. Les modèles peuvent être utilisés pour séparer la structure et le contenu des pages Web, afin que la conception et le code logique des pages Web puissent être développés et maintenus de manière indépendante. Le package Template de Golang est un moteur de modèles puissant et flexible qui peut nous aider à développer rapidement des pages Web réactives. Cet article expliquera comment utiliser le package Template de Golang pour développer rapidement des pages Web réactives et joindra des exemples de code correspondants.

1. Utilisation de base des modèles

Avant de commencer, nous devons comprendre l'utilisation de base du package Template de Golang. Tout d’abord, nous devons créer un objet modèle et analyser la chaîne du modèle en un objet modèle via la fonction Parse. Par exemple :

tpl := template.Must(template.New("example").Parse("Hello, {{.Name}}!"))
Copier après la connexion

Dans le processus d'analyse du modèle, nous pouvons utiliser une syntaxe spéciale pour définir des espaces réservés dans le modèle. L'espace réservé dans le modèle est entouré d'une paire d'accolades doubles {{}}, où le point représente l'objet de contexte actuel. Par exemple, dans l'exemple ci-dessus, nous pouvons utiliser {{.Name}} pour représenter un espace réservé nommé Name.

Ensuite, nous pouvons utiliser la fonction Exécuter pour restituer le modèle dans le contenu final de la page Web. Nous devons transmettre les données requises pour le rendu à la fonction Exécuter pour remplacer les espaces réservés dans le modèle. Par exemple :

data := struct {
    Name string
}{
    Name: "World",
}
err := tpl.Execute(os.Stdout, data)
Copier après la connexion

Les données ici sont un objet de structure, qui contient un champ nommé Nom. En passant cet objet de structure, nous pouvons remplacer les espaces réservés dans le modèle par des valeurs réelles.

2. Jugement conditionnel et bouclage dans les modèles

En plus du remplacement de base des modèles, le package Template de Golang prend également en charge certaines fonctions avancées, telles que le jugement conditionnel et le bouclage. Nous pouvons utiliser des instructions if dans des modèles pour effectuer des jugements conditionnels et des instructions range pour effectuer des boucles. Par exemple :

tpl := template.Must(template.New("example").Parse(`
    {{if .ShowWelcome}}
        <h1>Welcome, {{.Name}}!</h1>
    {{else}}
        <h1>Goodbye, {{.Name}}!</h1>
    {{end}}

    <ul>
        {{range .Fruits}}
            <li>{{.}}</li>
        {{end}}
    </ul>
`))

data := struct {
    Name        string
    ShowWelcome bool
    Fruits      []string
}{
    Name:        "Alice",
    ShowWelcome: true,
    Fruits:      []string{"Apple", "Banana", "Cherry"},
}
err := tpl.Execute(os.Stdout, data)
Copier après la connexion

Dans l'exemple ci-dessus, nous avons utilisé une instruction if pour sélectionner différents messages de bienvenue en fonction de conditions. Dans le même temps, nous utilisons l'instruction range pour parcourir une liste de chaînes et afficher chaque élément de celle-ci en tant qu'élément de liste.

3. Mise en page et modèles partiels dans les modèles

Le package Template de Golang prend également en charge les fonctions de mise en page et de modèles partiels pour améliorer la réutilisabilité et la maintenabilité des pages Web. Nous pouvons définir un fichier de mise en page qui contient une structure de page commune, puis utiliser le fichier de mise en page pour intégrer d'autres modèles. Par exemple :

layout := template.Must(template.ParseFiles("layout.html", "content.html"))

data := struct {
    Title   string
    Content string
}{
    Title:   "My Page",
    Content: "Hello, World!",
}
err := layout.ExecuteTemplate(os.Stdout, "layout.html", data)
Copier après la connexion

Dans l'exemple ci-dessus, nous avons d'abord analysé un fichier de mise en page nommé layout.html et un fichier de contenu nommé content.html via la fonction ParseFiles. Nous intégrons ensuite le modèle de contenu dans la mise en page en transmettant les données et le nom du modèle via la fonction ExecuteTemplate.

Le fichier de mise en page layout.html peut être similaire à la forme suivante :

<!DOCTYPE html>
<html>
<head>
    <title>{{.Title}}</title>
</head>
<body>
    <header>
        <h1>My Website</h1>
    </header>

    <main>
        {{template "content.html" .}}
    </main>

    <footer>
        <p>© 2020 My Company</p>
    </footer>
</body>
</html>
Copier après la connexion

Dans le fichier de mise en page, nous utilisons la balise template pour introduire d'autres modèles. Dans l'exemple ci-dessus, nous avons utilisé le modèle « content.html » pour introduire un modèle de contenu nommé content.html.

Résumé

Le package Template de Golang est un moteur de modèles puissant et flexible qui peut nous aider à développer rapidement des pages Web réactives. Cet article présente l'utilisation de base des modèles, le jugement conditionnel et le bouclage, ainsi que l'utilisation de la mise en page et de certains modèles. Nous espérons que l'introduction de cet article pourra aider les lecteurs à mieux comprendre et appliquer le package de modèles de Golang.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal