Adding a CMS to Your Flask Web App Transcripts
Chapter: Routing for the CMS
Lecture: Adding our 404 page
0:00 as you saw from those examples, having a fun and playful for four error page and you probably 500 from the server
0:07 crashes as well. But having one of those fund runs requires a little bit of design, a little bit of HTML,
0:13 a little bit of creativity. I've already done some of the work. Let me just show you what I have done here instead of having you watch me
0:19 do it. So I added a little bit of CSS styles. I've added an error page here, so just like all the other pages,
0:29 it used the layout. That means it's going to keep its header in its footer and all the other stuff that happens,
0:35 and except we're gonna have a little message that says we can't find it. And now there's this four or four error right here.
0:43 We dio static image and it's this broken set of boxes will talk about what that's about in just a second. I've already done those things,
0:53 and so our goal here is going to be to basically plug in this error handling
0:59 into our Web app, and we're gonna leverage those things that already exist. Good interviews and we're gonna have something.
1:06 Let's just copy this and paste it. That's easiest civil to say. Error views. And down here what we need We don't need the CMS.
1:15 This is gonna be errors. That name has to be unique working and not do a blueprint route. But let's put it error 404 here for three or three.
1:25 What do you think now for four? I want to put something up there. And then what we're gonna do is we're just gonna basically show a static page.
1:34 I want to say go here to flask and say Render template. I wouldn't give it based on the template folder when say, errors. Look how awesome PIJ arm is.
1:43 It's detecting the blueprint, and it's looking over there. Okay, on what we want is for a four, and we can give it an empty dictionary,
1:53 or we could actually just leave that blank. I don't think it needs it. And then what we want to do is we're gonna return that response now.
2:01 This might look like what you want to dio, but what you need to do is you need to communicate back to the Web browser
2:09 and maybe even more importantly, to search engines like No, no, no, This does not exist because by default it's going to return what
2:16 say called a 200 status code, Which means, Hey, everything's great. We don't think everything's great. So we can alter the response code by putting as
2:26 a second return value or, more accurately, creating a two bowl where the first thing is the response. And the second thing is the status good?
2:33 Not my favorite way of doing it, but so it is. It's also going to take an error argument.
2:39 We're not using error and notice that Pie Charm warns that it's not using gold thing
2:44 over here. So I thought what you can do is put an underscore to say Yeah, yeah, I know it takes a thing. I don't care about what that thing is.
2:51 Please, just make it work, Okay, this is close, but let's see where how far we've gotten here if we go back here was thes off,
3:00 click on help and know no better was wrong. Well, how do I have a flask? You know it's supposed to use this error here.
3:09 Well, it doesn't. So what Weaken Dio as we can go over here and use our blueprint just like before and register it. Careful, Careful. Careful here.
3:16 If you say air handler, what you would put is the status code or the exception to in this case we're handling,
3:24 not found, which is a 44 You would think this would work. Blueprint on air handler does not support for four and yet gives no warnings and no
3:33 errors. What you need, which is not obvious sometimes is app. You're a handler for 44 Okay,
3:39 with that in place, let's go register this just like we can before we're gonna have air use and let's put it was put home up here.
3:50 I have AP register. Blueprint. A reviews on Blueprint. Try this again. Over here. See? Their home page still works. I log in. Still works.
4:01 But what about help? Wait for it. Yes. The hairs are cool. Arab age four of or we just can't find that page.
4:10 Sorry. Maybe you should head back to the top of the site. Isn't that a better experience? And I think that fits a little bit with our
4:16 dynamic nature of our CMS and our pages. One more thing. What's the broken blocks about? Well, if this over here is the logo of the working Pipi,
4:26 I Well, this feels to me like broken pipe ei. So I came up with this little picture based on their logo.
4:32 Right? You guys can come up with whatever you want for your site, but knows we solve the footer down here. We still have the navigation, the design,
4:38 But it is a proper for four final thing. Go inspect element. Got a network, said it to Joe. Just HTML. And you dio, um, click again.
4:50 Notice. We're getting 404 for the document right there. That's super important. That tells things interact with the site.
4:58 No, this doesn't exist. And yet things like log in come back as a 200. Don't need to persist. Logs and slash comes isn't is 200 but help.
5:08 Comes is a 44 perfect. We have a beautiful and playful 44 page, and it conforms to Web standards communicating that it actually wasn't found there.