Django-protocolify on template for Django joka sallii protokollan / järjestelmää käytetään linkkejä ja lohkon mallin koodi muuttaa.
Use-asia tämä on, kun osa Web-sivusto käyttää HTTPS (esimerkiksi maksu-sivulla) ja haluat käyttäjä palata käyttämällä HTTP, jos he lähtevät sivun. Yleensä voit käyttää {% url%} template luoda URL-osoitteita, mutta tämä johtaa URL-osoitteet, kuten:
/ Tuotteet /
sijaan:
http://example.com/products/
Tämä tarkoittaa, että kun käyttäjä syöttää HTTPS sivun, ne jumissa HTTPS elleivät he itse muuttaa URL-selaimen osoiteriville.
Tässä on Django-protocolify loistaa.
Käyttö
{% Protocolify [vanhoja] ja
Esimerkki (olettaen pyyntö oli http://example.com/blah/):
{% Kuormalla protocolify%}
{% Protocolify ja "https"%}
{% Endprotocolify%}
tekee sen:
Tämä on tällä hetkellä toteutetaan pari yksinkertaista säännöllisiä lausekkeita ja urlparse.urljoin () (Huom: vanha oletuksena [AZ az] +):
# Esim href = "http://google.com"
re.sub (r '(src | href) = "% s: //"% vanhoja, r' 1 = "% s: //"% uusi, ...)
# Esim href = "../ tuotteet"
re.findall (r "" "(src | href) = ('|') (?! [az] [-z0-9 + -.] *:) (. *?) 2" "")
Kun suhteellinen polku on korvattu (esim ../products) se liitetty request.path. Jotta tämä toimisi, mallin yhteydessä tulee sisältää HttpRequest pyynnössä muuttujaan. Tämä voidaan saavuttaa käyttämällä RequestContext ja lisäämällä "django.core.context_processors.request" ja TEMPLATE_CONTEXT_PROCESSORS asetus.
Domain ambiguitity on otettu käyttöön, kun suhteellinen polku (esim / tuotteet /) on protocolified (koska domain täsmennettävä). Domain arvauksia suoritetaan seuraavassa järjestyksessä:
1. request.META ["HTTP_HOST"] - jos yhteydessä on pyyntö
2. Site.objects.get_current (). Domain
asennus
1. Lataa ja asenna: pip asentaa Django-protocolify
2. Lisää "protocolify" ja INSTALLED_APPS asetus projektin.
vaatimukset
- Python
- Django
Kommentteja ei löytynyt