2017-08-04 3 views
2

Supposons que j'ai l'itinéraire webapp2 suivant.Présentation des routes webapp2

webapp2.Route('/api/users/register/verify/<user_id:\d+>/<signup_token:.+>', users.VerificationHandler, name='verification') 

Je sais première partie est l'URL, puis est le nom du gestionnaire de requêtes, mais je ne comprends pas le but de « vérification » name =. Quelqu'un peut-il s'il vous plaît expliquer pourquoi le nom est utilisé dans les routes webapp2?

De plus, quel est le but de la fonction uri_for()? Pourquoi l'utilisons-nous?

Répondre

2

webapp2 est une classe et Route était une fonction définie dans une classe.

webapp2 est rien, mais un mécanisme de routage qui étend le modèle d'application web pour fournir des fonctionnalités supplémentaires:

  • bâtiment URI : peuvent être construits les routes enregistrés en cas de besoin, en évitant les URIs codées en dur dans l'application code et modèles.

  • Arguments de mots-clés: Les gestionnaires peuvent recevoir des arguments de mots-clés provenant des URI correspondants.

  • Routes imbriquées: les routes peuvent être étendues pour correspondre plus que le chemin de requête. Nous allons voir ci-dessous une classe de route qui peut également correspondre à domaines et sous-domaines.

Par exemple:webapp2.Route('/api/users/register/verify/<user_id:\d+>/<signup_token:.+>', handler=HomeHandler, name='verification')

de votre exemple, name='verification'

il est alias votre url ...

dans votre exemple,

votre URL est: '/api/users/register/verify/<user_id:\d+>/<signup_token:.+>' vous ne pouvez pas vous en souvenir, alors nommez Je vous aider à l'alias avec un mémorable verification.

de sorte que votre URL, /api/users/register/verify/<user_id:\d+>/<signup_token:.+> = verification

alias se traduira par url d'origine dans l'exécution

suivant, uri_for()

comme je l'ai dit, vous avez attribué alias pour votre grand URL .. donc vous connaissiez l'alias le plus court. si vous voulez récupérer l'URL d'alias que vous pouvez utiliser cette fonction,

print uri_for('verification') 

vous donnera, /api/users/register/verify/<user_id:\d+>/<signup_token:.+>

+0

donc peut-on dire « nom » est utilisé pour faire court URL longue? et c'est pour le facile du développeur seulement? – HamidArrivy

+0

oui .. il ne fera pas l'URL. son alias comme ... il ne s'affichera pas dans la barre d'adresse .. il se traduira en temps d'exécution .. court URL sera assigné en long dans le backend .. python seulement savait que ..il traduira une fois que vous exécutez –

+0

Merci pour cette réponse bien expliquée.! – HamidArrivy