A readline shell for the Django template language.
Project description
django-template-repl is a readline shell for the Django template language.
It is similar to a CPython shell but it interprets template code instead of
Python. It can be invoked either as a management command or with a templatetag.
To install, add 'template_repl' to your settings.INSTALLED_APPS.
The management command gives you quick access to the shell:
python manage.py templateshell
You can pass a url to the management command to assume the context of a specific location:
python manage.py templateshell -u /admin/foo/bar/
You can also provide context directly with a command line option. Here is
an example of an interactive session:
$ python manage.py templateshell -c "{'foo': 'FOO', 'bar': True}"
>>> {% if bar %}
... {{ foo }}
... {% endif %}
FOO
>>>
The templateshell management command also has a --pdb option to allow you to load
the context into a namespace and start a PDB debugger shell. This works in conjunction
with the -u (--url) and -c (--context) commands. It also provides a "vars" list that
shows the names of the context variables:
$ python manage.py templateshell -u /admin/ --pdb
...
ipdb> vars
Out[0]:
['app_path',
'error_message',
'root_path',
'title',
'MEDIA_URL',
'LANGUAGES',
'LANGUAGE_BIDI',
'LANGUAGE_CODE',
'perms',
'messages',
'user']
ipdb> print user
AnonymousUser
In addition, you can use the repl templatetag which creates a REPL that assumes the
context of the caller template. This is basically "PDB for templates":
{% load repl %}{% repl %}
You can also start a real PDB shell using the same tag by giving it a second argument
of "pdb". This loads the contex into the PDB namespace:
{% load repl %}{% repl pdb %}
It is similar to a CPython shell but it interprets template code instead of
Python. It can be invoked either as a management command or with a templatetag.
To install, add 'template_repl' to your settings.INSTALLED_APPS.
The management command gives you quick access to the shell:
python manage.py templateshell
You can pass a url to the management command to assume the context of a specific location:
python manage.py templateshell -u /admin/foo/bar/
You can also provide context directly with a command line option. Here is
an example of an interactive session:
$ python manage.py templateshell -c "{'foo': 'FOO', 'bar': True}"
>>> {% if bar %}
... {{ foo }}
... {% endif %}
FOO
>>>
The templateshell management command also has a --pdb option to allow you to load
the context into a namespace and start a PDB debugger shell. This works in conjunction
with the -u (--url) and -c (--context) commands. It also provides a "vars" list that
shows the names of the context variables:
$ python manage.py templateshell -u /admin/ --pdb
...
ipdb> vars
Out[0]:
['app_path',
'error_message',
'root_path',
'title',
'MEDIA_URL',
'LANGUAGES',
'LANGUAGE_BIDI',
'LANGUAGE_CODE',
'perms',
'messages',
'user']
ipdb> print user
AnonymousUser
In addition, you can use the repl templatetag which creates a REPL that assumes the
context of the caller template. This is basically "PDB for templates":
{% load repl %}{% repl %}
You can also start a real PDB shell using the same tag by giving it a second argument
of "pdb". This loads the contex into the PDB namespace:
{% load repl %}{% repl pdb %}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-template-repl-0.3.0.tar.gz
.
File metadata
- Download URL: django-template-repl-0.3.0.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07f4d8e9aa76a0890c27c0ff74145057812497301158bc48c995a3c6a5fbd04f |
|
MD5 | 389e7df1b844905c6b3653d5a44854a5 |
|
BLAKE2b-256 | 96707a021b70657a545804cbd21c8ddeae3a86910912b9b46bbd4f9661fb9d44 |