Maison  >  Article  >  développement back-end  >  Voici quelques options de titres, jouant avec différents tons et niveaux de spécificité : **Direct et informatif :** * Comment accéder au contexte de la demande dans les modèles Go * Go Templates : accès à la demande

Voici quelques options de titres, jouant avec différents tons et niveaux de spécificité : **Direct et informatif :** * Comment accéder au contexte de la demande dans les modèles Go * Go Templates : accès à la demande

Barbara Streisand
Barbara Streisandoriginal
2024-10-25 16:33:14107parcourir

Here are a few title options, playing with different tones and levels of specificity:

**Direct & Informative:**

* How to Access Request Context in Go Templates
* Go Templates: Accessing Request Data for User Permissions

**Intriguing & Problem-Focused:*

Utilisation du contexte de demande dans les modèles Go

Dans les modèles Go, vous pouvez rencontrer une situation dans laquelle vous devez accéder aux informations de la demande de déclenchement, comme déterminer si l'utilisateur actuel est un administrateur. Cependant, les modèles manquent de connaissance inhérente du contexte de la demande.

Solution : Pipelines

Une approche courante consiste à utiliser des pipelines pour transmettre les données nécessaires du gestionnaire au modèle. . Cela implique de créer une variable de pipeline contenant les informations contextuelles pertinentes, puis d'y accéder dans le modèle. Par exemple :

<code class="go">type TemplateData struct {
    IsUserAdmin bool
}

func handler(w http.ResponseWriter, r *http.Request) {
    isUserAdmin := isAdmin(r)
    data := TemplateData{IsUserAdmin: isUserAdmin}
    t.Execute(w, data)
}</code>

Dans le modèle :

{{if .IsUserAdmin}}
    <a href="/admin/nuke">Go to the big red nuclear button</a>
{{end}}

Contexte d'intégration

Une autre option consiste à intégrer le contexte de la demande dans un contexte personnalisé structure de données du modèle. Cela vous permet d'accéder simultanément aux données du modèle et au contexte :

<code class="go">type TemplateData struct {
    Data interface{}
    Context *http.Request
}</code>

Dans le modèle :

{{if .Context.IsAdmin}}
    <a href="/admin/nuke">Go to the big red nuclear button</a>
{{end}}

Méthode d'entonnoir

Bien que la méthode Funcs puisse être utilisée pour définir des fonctions personnalisées, elle n'est pas recommandée pour gérer une logique complexe telle que la détermination des autorisations des utilisateurs. Il est préférable de conserver ces tâches au sein des gestionnaires ou des contrôleurs.

Bonnes pratiques

En général, il est considéré comme une bonne pratique de limiter les modèles à la gestion de la logique d'affichage et d'éviter d'introduire une logique métier. ou demander des dépendances de contexte. Cependant, dans certaines situations, il peut être nécessaire d'accéder à des informations spécifiques à la demande, d'où les méthodes décrites ci-dessus.

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:
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