Adding a CMS to Your Pyramid Web App Transcripts
Chapter: Redirects and the admin section
Lecture: Concept: GET-POST-Redirect flow
0:00 Before we get to writing the code, actually edit our redirects, or for that matter, are pages as well,
0:07 I want to review this design pattern, this concept that you may be familiar with, but you might not be.
0:12 And it's super nice for how we organize your code. I still see lots of Web apps out there not explicitly using this
0:18 and they're way harder to understand and work with because of it. So the idea is we're going to use this get post redirect pattern to edit our things.
0:26 How does that work? Well, we have our server, and we have our database. Out there somewhere, there's a user who wants to talk to our site and
0:34 the assumption here, is they're going to edit one of these redirects. Or they're going to create an account or something like that.
0:41 They're gonna register for an account. So the first thing that they need to do to get started is they need to see that page that has the form.
0:47 Like we're gonna register. So what is your name? What is your email? What do you want your password to be? Things like that.
0:52 So they're gonna do an http get request against the server for '/accounts/register', and that's gonna show the form on their page.
1:01 And then they're going to say, Well, my name is Michael and my email addresses email@example.com and so on.
1:06 And they edit that locally, and then we're gonna save that back. So to do the save, their going to do an http post back to the same url.
1:14 The server's gonna look at that and go, "That means they want to save stuff. Let's validate it. And then if it works, we're gonna save it".
1:19 And then finally, instead of leaving them on this page, they've just registered. They've just created an account
1:25 What do we want to do? Probably send them to '/accounts' or some sort of welcome page
1:30 They're going to send them a redirect request an http found as we've already been doing to '/ welcome'
1:37 Welcome to your account! Here's what you gotta do to get started using our service.
1:41 So it's a 'get, post, redirect' that is very typically the way that this works.
1:46 If for some reason the data doesn't validate, they're going to stay on Step 2-3.
1:51 They're gonna get a message that you have to edit it again, post this back again.
1:55 And then eventually, when it's valid, they move on to the redirect stage.
1:58 This is how I think of it. I get the form. I edit the form. I save the form, and I go on.
2:03 This is actually a well known pattern mentioned on Wikipedia, but they have it wrong in my opinion. They call it post, then redirect, then get.
2:12 Well, what are you posting? You got to start to get the thing to actually post.
2:16 So anyway, they call it post, redirect, get, but it's a very well known pattern around
2:21 organizing our code and the way that we process people editing data on the web. So we're going to use this for our admin section, of course.