"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 aux données de 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 aux données de demande

Publié le 2024-10-31
Parcourir:679

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 :

type TemplateData struct {
    IsUserAdmin bool
}

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

Dans le modèle :

{{if .IsUserAdmin}}
    Go to the big red nuclear button
{{end}}

Contexte d'intégration

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

type TemplateData struct {
    Data interface{}
    Context *http.Request
}

Dans le modèle :

{{if .Context.IsAdmin}}
    Go to the big red nuclear button
{{end}}

Méthode Funnel

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 de requête spécifiques, d'où les méthodes décrites ci-dessus.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3