Python for Entrepreneurs Transcripts
Chapter: Build web apps with Pyramid: Part 1
Lecture: Building Block: Templates
Login or
purchase this course
to watch this video and the rest of the course contents.
0:01
Here is the template and this template language is called Chameleon.
0:05
It's really clean and nice and it uses what's called template attribute language, so TAL.
0:11
And often whenever you see the code that has to do with this template language you'll see "tal:" in the attributes,
0:18
the other way that it works with code is you say "$" and put on curly braces and within there you can write basically arbitrary Python code,
0:26
arbitrary Python expressions at least. So what we want to do is we want to take some albums,
0:32
here we passed a dictionary or a model that has a key called "albums",
0:36
and that album is a list, so we want to loop over it, so we say tal:repeat="a albums".
0:42
I like to say something like "a in albums" or something like that, but it's just a albums, no "in".
0:47
So what it's going to do is this div that has the tal:repeat= is going to be repeated
0:52
for as many times as there are albums and each time through a will have a different value.
0:56
Then we want to go and say "a is one of these individual albums, let's say that URL for buying it is going to be a.url" and the title,
1:04
the text we want for the link is "buy", whatever the title is, so "a.title".
1:09
So values that pull out the text or look at the string representation of data passed in,
1:14
will be passed within, there is "$" expression and like I said, these can be methods,
1:19
these can just be values and so on, we can also do tal conditional, which is really nice, this is our "if" statement in the template language,
1:27
so we only want to show "preview music" if there is some kind of preview available, remember, some of our albums have previews, some of them didn't.
1:35
So, here we can say tal:condition and it will completely leave this segment, or this node out of the URL, if has_preview is falsie.
1:45
Now if we run this and we give it a set of albums, we can come out looking something like this, assuming we've given it basically zero style.
1:53
But that gives you a sense of how this template will render, what we give it.