django-template-fragmenten is een helper voor sjablonen gebruikt in kader JavaScript client.
Inleiding
Vaak, als u een client-side javascript kader (bijv backbone / ember / hoekige / wathever) gebruiken, wil je kleine sjablonen om uw pagina te maken. Het probleem begint wanneer:
- Je wilt toch in staat zijn om Django template engine gebruiken
- En je wilt een leuke plek om uw kleine sjablonen te definiëren.
Dat zijn de 2 problemen die deze Django app probeert te pakken. Het komt ook met helper functionaliteiten voor dat soort sjablonen, zoals de letterlijke templatetags van Django 1.5 dev code die u toelaat om een zone waar Django niets zal interpreteren om conflicten met sjabloon talen zoals mustache.js voorkomen definiëren.
Met het, u al uw kleine sjablonen in dezelfde map te definiëren en je zult in staat zijn om ze te openen in de fragmenten javascript object dat de (gewezen door Django) templates bevat.
installatie
Van pip:
pip django-template-fragmenten te installeren
Van setup.py:
git clone git: //github.com/Psycojoker/django-template-fragments.git
cd django-template-fragmenten
python setup.py installeren
Maak een dir waar u wilt uw fragmenten op te slaan, voeg dan FRAGMENTS_DIR aan uw settings.py, moet het een absoluut pad zijn.
Ik wil graag mijn FRAGMENTS_DIR als dit te definiëren:
import os
PROJECT_PATH = os.path.abspath (os.path.split (__ bestand __) [0])
SUBPROJECT_PATH = os.path.split (PROJECT_PATH) [0]
FRAGMENTS_DIR = os.path.join (SUBPROJECT_PATH, "fragmenten")
Dit zal deze ingesteld op de directory project_name / fragmenten (waar uw settings.py is in project_name / project_name / settings.py).
Vervolgens schrijven een aantal kleine html-fragmenten in deze dir.
Voeg dan iets als dit uw urls.py
url (r '^' bevatten (fragments.urls)),
En ergens in je basis template
Dit geeft je een javascript object fragmenten die al uw fragmenten te geven, de sleutel is de bestandsnaam van het fragment zonder de extensie.
Voorbeeld: object_list.html zal toegankelijk zijn in de fragmenten zijn bezwaar als dit: fragments.object_list
Als je het fragment in een subdirectory in de FRAGMENTS_DIR, zal de sleutel van de bestandsnaam zijn zonder zijn uitbreiding samen met de subdir pad waar de / worden vervangen door _.
Onduidelijk? Hier is een voorbeeld: het bestand FRAGMENTS_DIR / een / twee / three.html zal bereiken op de sleutel one_two_three zijn.
HamlPy ondersteuning
Als je HamlPy geïnstalleerd en dat uw fragment naam eindigt met .haml, zal django-template-fragmenten hiermee rekening te houden en gebruik HamlPy om de html te genereren.
Verbatim tag
Je moet fragmenten in uw geïnstalleerde apps in settings.py gezet om dit te laten werken.
Ik heb de code van de dev tak van django 1.5 genomen om het gebruik van de woordelijke templatetags toelaten om conflicten tussen Django template syntaxis en andere template engine syntax voorkomen (bv snor).
Voorbeeld:
{% Belasting fragmenteert%}
{{Will_be_interpreted}}
{% Verbatim%}
{{Wont_be_interpredted}}
{% Endverbatim%}
U kunt ook kiezen voor een specifieke afsluitende tag, zoals beschreven in Django documentatie.
Voorbeeld uit de doc:
{% Belasting fragmenteert%}
{% Verbatim myblock%}
& Nbsp; Vermijd sjabloon weergave via de {% verbatim%} {% endverbatim%} blok.
{% Endverbatim myblock%}
Genegeerd bestanden extensies
Standaard django-template-fragmenten negeert elke bestanden die eindigt met een van die: .pyc .swo SWP ~
. U kunt uw eigen lijst te geven door het definiëren FRAGMENTS_IGNORED_FILE_TYPES in uw settings.py
Eisen
- Python
- Django
Reacties niet gevonden