#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.