Python for Entrepreneurs Transcripts
Chapter: Build web apps with Pyramid: Applied web development
Lecture: Navigation based on logged in status and demo wrap up
Login or
purchase this course
to watch this video and the rest of the course contents.
0:01
Now, notice up here we have this home, albums, contact, right, as we click around, the other thing I'd like to do is
0:07
add just a little bit of a concept of a logged in user. We are going to get to user accounts and all that stuff later,
0:14
but let's start talking about the template a little bit up here. Now notice, right now I have this part hidden, but if I put it back,
0:21
we have this section that says should you sign in or register or are you already signed in, you can view account or log out.
0:29
And notice there is no real actions here but just from a template perspective, we would like to show some or the other, so let's go back over here,
0:36
our base controller here, and let's add some kind of behavior here, so we are going to have a property,
0:44
a property is basically a function that you interact with, like a field but in fact it's a function call, and it's also read-only, so we have this,
0:53
we'll say is_logged_in, and we are going to "return" right now, let's just "return True", yes, they are logged in.
1:02
So over here, let's go back for a moment, our base controller has all of these attributes, or fields
1:10
and then it has these properties, our albums controller derives from that so our albums controller has those properties as well,
1:18
so it has is_logged_in and so on, so that means over here I can do this, remember, when speaking of the controller we say view.,
1:28
so we'll say, it's tal condition, is_logged_in, actually, we don't want this, we want the opposite of that, so we'll say "not"
1:34
and then put this on those, we want this in the case you are logged in, in here we want to when you are not logged in.
1:43
So let's rerun it, because we changed the Python code which means we've got to restart the web app, so over here you can see we have our account,
1:50
we have our logout and that's because in the base controller we said yes, they are logged in, right now,
1:56
so if we come over here and look we have account, and log out, because those are logged in users, if this was false,
2:02
if they weren't logged in... we refresh this, rerun the code and refresh it, you can see now we have sign in and register,
2:08
so that's how we work with the template attribute language with Chameleon templates and so on, let's just review.
2:15
We go from our albums controller, we get to our action method, we do our data access, web service access, whatever calculations we want,
2:22
we return that as a dictionary, as a model, to the template. Great, so the template then has access to the view
2:30
which is the instance of the controller class and all of its properties and fields and so on,
2:35
so we can say "tal conditional" don't show this if they are logged in,
2:39
do show this if they are logged in, or show this if they're not logged in rather.
2:43
And then we come down here and we say create little prototypical HTML block that we want to work with and then we'll say "tal repeat"
2:52
and we'll create a local variable for each time through the loop
2:55
so here we are going to create - now that we are floating this we don't need this anymore, we are going to create an image
3:01
and we are going to use the image URL from the "a" each album coming through
3:05
again, we want to set the title, use the tal conditional on whether or not it has a preview
3:10
and then we are going to go the albums tracks and loop over those as well. And you can see that our albums are on the screen in a pretty decent way
3:20
that represents the data that is backing them. Like I said, we'll make this more beautiful later but it's a good start.