django_friendlyurls is een Django app kun je URL's die direct terug te keren weergaven maken.
Er is geen 302 Redirect.
De meest voorkomende use case is dat je URL's die gebruikersprofielen terugkeren zoals
http://www.example.com/user/1
Vriendelijke URL's kunt u een URL te maken, zodat de gebruiker kan ook worden benaderd door te gaan naar:
http://www.example.com/jeff
De sleutel is dat de adresbalk in de browser niet verandert in http://www.example.com/user/1
De webserver dezelfde HTML-document keert terug als http://www.example.com/user/1
Flow
De applicatie zoekt de string 'Jeff' Als het een vriendelijke url wedstrijd zal het uitlezen van de absolute_path en proberen om het op te lossen door de invoering van het door de URL resolver een 2e keer.
Als het een resolutie zal dat standpunt terug.
Gebruik
Hier is een voorbeeld van hoe je friendly_urls voor een gebruiker uit te voeren:
Ik zet dit in models.py:
van django.contrib.contenttypes importeren generieke
van friendlyurls import UrlMapping
van django.contrib.auth.models import Gebruiker
def get_absolute_url (zelf):
& Nbsp; terug u '/ user /% s'% self.id
User.add_to_class ('friendly_urls', generic.GenericRelation (UrlMapping))
User.get_absolute_url = get_absolute_url
Dit principe aap patcht de gebruiker model om een veld toe te voegen. U kunt dan doen
user = User.objects.get (PK = 1)
user.friendly_urls.all ()
Dit zal een lijst van alle vriendelijke urls te krijgen.
Je moet niet te aap patch alle modellen.
Problemen / Vragen
Vergeet niet om syncdb uitgevoerd omdat friendlyurls zorgt voor een tafel om de URL mappings op te slaan.
Extra instellingen
FRIENDLYURLS_IGNORE_CASE - Zet dit op True als je wilt om de zaak te negeren wanneer het proberen om een pad te vinden. Standaard: Valse
Eisen
- Python
- Django
Reacties niet gevonden