#100DaysOfWeb in Python Transcripts
Chapter: Day 50: Responder framework
Lecture: Key features

Login or purchase this course to watch this video and the rest of the course contents.
0:00 Before we start building our application with Responder, let's talk about a couple of the key features.
0:06 We're not going to be able to cover the majority of these things. We're going to build a pretty simple app in this short chapter.
0:12 I want to highlight some of the other things that Responder does for you. You can go check it out. Well, you'll definitely see the API.
0:18 So there's a pleasant API. This is from Kenneth Reitz and he's pretty good at putting together nice API's. Things like requests are considered some
0:25 of the better API's out there. It has class-based views but you don't have to use inheritance. You can just use a decorator on a class, basically.
0:35 It has a nice ASGI framework. So these are the Async web Service Gateway Interfaces. This is, we talked about this
0:42 when we talked about the Quart framework. This is the essential element that allows us to use async and await for our web view methods
0:51 and actually use asyncio to do more concurrency. And that's one of the key foundations of Responder is it's built on top of an ASGI
0:59 and natively and first-class supports async web view methods. That because of that it's pretty easy for it to support WebSocket.
1:08 It also has the ability to take any other ASGI or WSGI app and make that a sub part of the application. So imagine there's some Flask app
1:18 and you want to make that part of your sub application. Or you want to take a Pyramid app and make that part of some CMS section, or who knows.
1:26 You can mount these other apps as sub routes and sort of combine them together. That's pretty cool.
1:31 It has nice, simple f-string-like ways to declare routes. So you don't have to do regular expressions and stuff like that.
1:38 It has a mutable response object that's passed to each view. So you don't have to return anything. You just set some properties
1:44 and then it just picks those up as it goes. One interesting feature is it has support for background tasks.
1:50 So instead of running those as part of the request you can actually just register stuff to run in the background and that's actually internally done
1:57 with a ThreadPoolExecutor. Also has support for GraphQL, OpenAPI schema generation and documentation, and even special support
2:05 for single page web apps or SPA's. That's quite a few cool features so it's a really neat framework.

Talk Python's Mastodon Michael Kennedy's Mastodon