Building Data-Driven Web Apps with Pyramid and SQLAlchemy Transcripts
Chapter: Introducing the Pyramid framework
Lecture: Building block: Dynamic HTML Templates
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
The final building block
0:01
that we're going to talk about here are templates.
0:03
Templates are super important.
0:05
They let us define in an HTML-like fashion
0:10
the general markup for our site
0:12
and then add little bits of
0:14
dynamic behavior to it.
0:16
There's actually three choices we can use
0:18
for the template language.
0:20
We can use Mako,
0:22
we can use Jinja2,
0:23
or we can use Chameleon templates.
0:26
This is a Chameleon template here,
0:29
and I'll talk later about why
0:31
I think Chameleon is the right choice.
0:32
But let's just see how this works.
0:34
It's kind of the same for all the template languages.
0:37
So what we're going to do is we saw that we passed
0:39
a model over that had packages, right.
0:43
One of the keys in the model was packages,
0:45
and the value was actually a list of packages.
0:50
We're going to use tal:repeat and I'm going to say
0:52
for every package in packages,
0:55
I want to replicate this HTML block,
0:58
including the DIV that has the tal:repeat on it.
1:01
So we'll have a DIV containing a hyperlink
1:04
in a span for every package.
1:06
And then for the hyperlink
1:07
we need to set the URL,
1:09
so within this little repeat loop
1:10
we can say p.url,
1:12
p.name and so on.
1:14
And then we're going to show the summary
1:17
but only if the summary exists.
1:19
Like if there's an empty summary or it's not set,
1:21
then we're not going to show it.
1:22
So you can see that if we want to take some sort of text
1:26
or anything and get a string version of it
1:28
and just plunk it into the page,
1:30
we'll use dollar curly expression.
1:33
We can do these conditions with tal:condition
1:36
and so on.
1:37
Often when we take this
1:39
and actually pass that data to it and render it,
1:42
that pyramid render it,
1:43
it's going to look like this:
1:44
requests, Http For Humans, boto3, AWS API
1:48
and SQLAlchemy and so on.
1:49
Cause that was the model of the three packaged requests
1:53
Boto3 and SQLAlchemay passed along to this template.
1:56
So that's what its going to look like.
1:58
Unstyled and ugly of course,
2:00
we're going to work on that later.