Django templates priority order
- First, the
TEMPLATE_DIRS dir setting in
settings.py file of the project enviroment
- Secondly, templates dir into de apps.
- The last one is the propertly app which use this template
In addition templates used by admin gui or any other Django core module can be overwritten in cascade. For example:
these templates are being replaced by the next one in order. That is, you can replace the template for a concrete template for a singular model of a specific application.
I have the pleasure of presenting a tip from the past. Today from long time ago: Paramiko.
ssh = paramiko.SSHClient()
ssh.load_host_keys(os.path.expanduser(os.path.join("~", ".ssh", "known_hosts")))
ssh.connect(hostname, port=port, username=str(username), password=str(password))
sftp = ssh.open_sftp()
remote_file = sftp.file(remotepath, "r")
file_lines = remote_file.read()
file_lines = ...
From a couple of days ago, I has been recycling my knowledge about Debian-Python packages. Debian 6.0 is currently next to be released and we’ll need effort to adapt many of own packages from etch to squeeze.
I’ve been following the Debian-Python mailling list from one year ago and I know many several troubles, changes or improvements which was occurred during this period.
As a brief resume, many things has changed: default Python interpreter for Debian 6.0, the backend frameworks to build packages (CDBS with python-distutils.mk, Python-central or Python-support) …
All these changes have been discussed on Debian Wiki and have been formalized as the new Python Policy. This policy is already accessible on http://www.debian.org/doc/packaging-manuals/python-policy/.
I’ve been searching documentation about build a Command Line Interpreter (CLI) from some time ago. My requirements were:
- I was needed a command history
- I was needed TAB auto-completion.
- … a easy framework.
Against I could expect, I didn’t found a lot of information on Internet about this aim. So after some time searching documentation about it, I had some luck and I finally found some refers to cmd Python module (oh, what surprise!):
Next lines, show a simple example about how it work:
"""Simple command processor example."""
def do_greet(self, person):
print "hi,", person
print '\n'.join([ 'greet [person]',
'Greet the named person',
def do_EOF(self, line):
if __name__ == '__main__':
… and this is a example of use:
$ python cmd_do_help.py
(Cmd) help greet
Greet the named person
One extra reference:
CDM2 is a extentesion of CMD. It adds several features for command-prompt tools:
- Searchable command history (commands: “hi”, “li”, “run”)
- Load commands from file, save to file, edit commands in file
- Multi-line commands
- Case-insensitive commands
- Special-character shortcut commands (beyond cmd’s “@” and “!”)
- Settable environment parameters
- Parsing commands with flags
- > (filename), >> (filename) redirect output to file
- < (filename) gets input from file
- bare >, >>, < redirect to/from paste buffer
- accepts abbreviated commands when unambiguous
- py enters interactive Python console
- test apps against sample session transcript (see example/example.py)
Python offers a way to define functions args as a tuple. The syntax is similar to C language, we’ll use *args to refer the tuple of arguments which are used in the function invocation.
for arg in args:
print "another arg:", arg
test_args(1, "two", 3)
another arg: 1
another arg: two
another arg: 3
*args when calling a function
Also, this special syntax can be used, not only in function definitions, but also when calling a function.
def test_args_call(arg1, arg2, arg3):
print "arg1:", arg1
print "arg2:", arg2
print "arg3:", arg3
args = ("two", 3)
More info about:
Usually, we don’t note little, but relevant, differents in the code that we are reviewing. For example, the two next classes, apparently, are equivalents:
l = 
self.l = 
But, really, this two classes are differ in their behavior:
>>> a = A()
>>> a2 = A()
>>> print a.l
>>> b = B()
>>> b2 = B()
>>> print b.1
Class A, due to
l var is defined in class definition, share the
l var between all A objects instanciates.