We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Faceoff Fun with Python Frameworks: FastAPI vs Flask

00:00

Formal Metadata

Title
Faceoff Fun with Python Frameworks: FastAPI vs Flask
Title of Series
Number of Parts
115
Author
Contributors
License
CC Attribution - NonCommercial - ShareAlike 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
“All the cool kids are using FastAPI for API development.” Imagine hearing this, just as you start getting more comfortable using other frameworks, like Python’s Django or Flask, to build out your API’s. Ladies and gentlemen, there’s a new kid on the block and in this talk there’s going to be an epic faceoff between FastAPI and Flask. What is Flask? Flask is a micro web framework built for Python designed to get your application up and running quickly. It’s lightweight and used by many different well known projects. What is Fast API? Fast API (aka the new kid) is a modern Python web framework that takes all your favorite features from other tools and combines them into one. It was built for speed, rapid development and enhanced developer experience. We’ll do a side by side comparison of the two frameworks including features and code structure, using a REST API. By the end of the faceoff you’ll have a much better understanding of which one you’ll use in your next project. Let’s analyze the pros and cons of each and why you’d use one over the other. You may even find a lot of similarities between the two and some contrast as well. You’ll see different categories of features for the frameworks and a winner will be chosen for each. Finally, no matter which you prefer, FastAPI and Flask are both great choices for API development, so let’s have fun and let the faceoff begin.
19
Thumbnail
43:26
Software frameworkGoogolMultiplication signFunctional (mathematics)Symbol tablePhysical systemData dictionaryKey (cryptography)Client (computing)Server (computing)Object (grammar)Uniform resource locatorCASE <Informatik>Mobile appRight angleRoutingMappingNear-ringReduction of orderError messageSoftware bugStandard deviationPrototypeProcess (computing)Template (C++)Software developerCodeHand fanGodTerm (mathematics)BitTwitterTouchscreenConstructor (object-oriented programming)Social classSoftware testingDependent and independent variablesVideo gameSynchronizationComputing platformCuboidEndliche ModelltheorieInternetworkingType theoryNumberCycle (graph theory)Formal languageSoftware frameworkIntegerLength of stayPresentation of a groupModul <Datentyp>Drum memoryMoving averageModule (mathematics)String (computer science)Interior (topology)Inheritance (object-oriented programming)AreaVariable (mathematics)Validity (statistics)PasswordParameter (computer programming)Category of beingMathematicsGoodness of fitLibrary (computing)Extension (kinesiology)Order (biology)Power (physics)Web applicationProduct (business)Computer fileBuildingRadical (chemistry)TelecommunicationData storage deviceInternet service providerCartesian coordinate systemDefault (computer science)VideoconferencingExpected valueLevel (video gaming)Electronic visual displayData structureFlagForm (programming)Different (Kate Ryan album)Game theory2 (number)FreewareFlash memoryGroup actionDisk read-and-write headArithmetic mean1 (number)Electronic mailing listTranslation (relic)Line (geometry)Pulse (signal processing)Latin squareFile formatQueue (abstract data type)Gateway (telecommunications)Web browserInterface (computing)Point cloudCurvatureSimulationGoogolSkeleton (computer programming)WebsiteDampingStack (abstract data type)Web 2.0ScalabilityConfiguration spaceBuffer overflowCodeElectric generatorDecision theoryInstallation artRootWeb pageComputer configurationOnlinecommunityUnit testingVirtual machineObject-oriented programmingHome pageMeeting/InterviewComputer animation
Cycle (graph theory)Software frameworkComputer animation
NumberMultiplication signComputer animation
FreewareGoodness of fitCollaborationismComputer animationMeeting/Interview
Software frameworkWeb 2.0Similarity (geometry)Extension (kinesiology)
Software developerTelecommunicationInternet service providerProduct (business)TouchscreenCodeCartesian coordinate systemComputer animationJSONXML
Expected valueLevel (video gaming)Different (Kate Ryan album)Physical systemData dictionaryServer (computing)Dependent and independent variablesDisk read-and-write headRepresentational state transferType theoryTranslation (relic)InternetworkingClient (computing)Computer animation
Cartesian coordinate systemFunctional (mathematics)Symbol tableComputer animation
Task (computing)Gamma functionRoutingMobile appFunctional (mathematics)Uniform resource locatorMappingHome pageComputer animation
Computer virusComputer wormWeb browserMobile appComputer animation
Computer virusWeb browserMobile appVirtual machineCodeDifferent (Kate Ryan album)Computer animationJSONXML
CodeProduct (business)Server (computing)Radical (chemistry)Order (biology)CASE <Informatik>Software developerMobile app2 (number)Computer fileMultiplication signGame theoryCartesian coordinate systemType theoryComputer animation
Gamma functionServer (computing)Different (Kate Ryan album)Error message2 (number)Data dictionaryWeb 2.0Electronic mailing listComputer animation
Dependent and independent variablesInteractive televisionVideo gameComputer animation
CuboidEndliche ModelltheorieSoftware frameworkWritingConstructor (object-oriented programming)Functional (mathematics)Computer animation
Data typeAverageData modelLinear programmingValidity (statistics)Social classEndliche ModelltheorieFunctional (mathematics)Parameter (computer programming)IntegerCategory of beingObject-oriented programmingType theoryCodeVariable (mathematics)Inheritance (object-oriented programming)Interior (topology)XMLComputer animation
Parameter (computer programming)String (computer science)IntegerVariable (mathematics)Skeleton (computer programming)Endliche ModelltheorieComputer animation
Dependent and independent variablesWeb browserServer (computing)Multiplication signDependent and independent variablesRight angleComputer animation
Configuration spaceCuboidExtension (kinesiology)Installation artComputer animationJSONXMLUML
PasswordNetwork topologyClient (computing)PasswordEndliche ModelltheorieSocial classVariable (mathematics)Computer animation
Parameter (computer programming)PasswordLoginError messageDependent and independent variablesTerm (mathematics)PasswordError message
Validity (statistics)Power (physics)Reduction of orderMultiplication signError messageComputer animationJSONXMLUML
Template (C++)Data typeWeb applicationTemplate (C++)Software developer2 (number)Data storage deviceComputer fileVariable (mathematics)CodeWeb 2.0Electronic visual displayComputer animation
Server (computing)Arithmetic mean1 (number)Module (mathematics)Modul <Datentyp>Drum memoryWorld Wide Web ConsortiumOnlinecommunityWeb 2.0Web applicationStandard deviationReduction of orderError messageProcess (computing)BitMultiplication signGateway (telecommunications)Interface (computing)Line (geometry)SynchronizationPrototypeUniform resource locatorQueue (abstract data type)Type theoryNear-ringSoftware developerExecution unitTwitterMobile appComputer animation
World Wide Web ConsortiumScalabilityMultiplication signDifferent (Kate Ryan album)Goodness of fitBitSoftware frameworkGodTerm (mathematics)Library (computing)TouchscreenStack (abstract data type)Software developerHand fanLecture/ConferenceMeeting/Interview
State of matterTunisMeeting/Interview
Transcript: English(auto-generated)
It is time for inviting our next speaker, Tonio Simms. Let's welcome Tonio. Hi. Tonio is a Python developer advocate at Vonage,
which is a cloud communications platform and is also one of the sponsors of EuroPython 2021. An interesting thing about Tonio is that Tonio is a former professional American basketball player who earned entry into the Wisconsin Basketball Hall of Fame. Really good. Today, Tonio is going to talk about a faceoff
between two Python frameworks, the New Kid, FastAPI, and Flask. It's going to be a really interesting talk. Okay, so let's get started. Over to you, Tonio. All right, thank you for the introduction. I appreciate it. So welcome to the Flask versus FastAPI faceoff.
Okay, I feel your pain, right? Like, I understand how frustrating it can be choosing a framework in any language, especially when you're first starting out with coding. It's like a vicious cycle. You choose one, then you want to choose the other, and you keep going back and forth. So imagine it's the year 1985, okay? And Back to the Future was the number one movie,
and almost everyone had big hair, including me, actually. So are you a sports fan? If you are, let me know which sports you like and what teams that you like. Let me know in the chat, and we'll talk about it after this presentation. Because there was something else going on in 1985 that was really big. I'm not sure if you follow the NBA,
but one of the biggest NBA basketball robberies of all time between the Los Angeles Lakers versus the Boston Celtics. It was Magic Johnson versus Larry Bird, right? Two of the biggest superstars. I mean, this rivalry was huge. It was as big as, you know, football versus football. And my personal favorite, European cuisine versus American food.
But there's good news about rivalries and face-offs. They help to create innovation, innovative ideas, and instead of competition, you can become collaborators. And I'm happy to say Magic and Larry Bird became best friends, and they're still besties to this day,
and have even done commercials together. So you may be wondering, like, what does this have to do with Flask versus FastAPI face-off? A lot. Flask and FastAPI are kind of similar. Both are very high-performing and lightweight Python web frameworks. They are micro-fameworks, which means that they're just stripped down without all the bells and whistles.
So it allows for flexibility. They're very different as well. One is battle-tested, right? And more reliable. The other one is newer. And one comes with lots of built-in libraries, and the other one you have to install some extensions. So, hi, I'm Tanya.
And I am a former professional athlete. I played Pro Bowl in Europe, hence all the sports references. Turned Pythonista. And now I'm a Python developer advocate at Vonage. We are one of the leading communication API providers. You can use our APIs, right, to build applications using video, voice, text messaging, and much more.
Our customers range from those in the telehealth sector to insurance to startups. And we have a freebie for you. You can take a screenshot of this if you'd like. It's a coupon code to try our products. We give you free credit to use our APIs, and you can build cool stuff. And it's redeemable through August 15th of this year.
And you can redeem your coupon here at dashboard.nexmo.com slash coupon. So this screen might be worth taking a screenshot of as well, so you know where to go to redeem your coupon. So before we begin our faceoff, I want to just set some expectations. So I might go back to the basics sometimes,
because everyone here might be at different learning stages. And I'm not sure about you, but when I first started learning how to code, it felt like my head was going to explode. So type in the chat, like, what was your journey like when you first started coding, and how is it going now? I would love to learn more about you. So this talk will focus on REST APIs.
But first, you have to grasp what is meant by API. You might already know, but if you don't, an API is like a translator. So if you speak English, right, and you want to converse with someone who speaks, let's say, Pig Latin, and you can't understand each other, an API would sit in between the two of you and interpret your request
and send back a response. And a REST API is a type of API that relies heavily on something called HTTP. And HTTP is a way to transfer data over the internet using what's called a client-server model, where the client makes a request, and the server returns a response with data.
And that response is typically a JSON object, which is used to transport data. So two different systems can understand each other. So if you're familiar with Python dictionaries, which I'm sure you are, JSON kind of looks like a Python dictionary with key-value pairs. Okay, so let our face-off between Flask and FAS API begin.
Let's start with the hello-word application to get you up and running quickly. So there's two things to understand running your hello-word application. The first are decorators, and decorators are just functions, okay, which modify the functionality of other functions. And they start with the at symbol
followed by the name of the decorator. So a decorator, you can think of it like decorating a cake, right? It starts with something, something existing, then you modify it, and you add the frosting, the flowers, the sprinkles, the drizzle, whatever you like on your cake. The next thing to understand is a route. And a route just maps a function to a URL
so it knows which webpage to take the user to who's making the request, okay? So in Flask, the hello-word app would look something like this. You'd have your decorator here, and it's routing or mapping this function home to the URL.
In this case, it's a backslash, which is just the route or the index page and returns hello-world. And it gets served up on port 5000 by default, and you can always change the port and it returns hello-world here in the browser because it's doing a get request. Similar to Flask, hello-world and FAS API, the decorator is slightly different than Flask.
Here it is. It's just the decorator at app.get. And in FAS API, the HTTP verbs get, post, put, delete have their own decorators, which is really nice. And it just turns a dictionary with hello-world here. And in the browser, it gets served up by default on port 8000 in FAS API, and you can always change the port, of course,
and it returns hello-world in the browser. So both require a little coding to get a hello-world app up and running. The only main difference is the way the decorators looked. In Flask, you have the at app, that route, and then in FAS API, you have the at app.get for a get request.
So running and development, right? Running locally on your machine first so you don't put error-prone code in production because people are going to freak out at that. Well, people always freak out anyway. So to run development in Flask, you have to export your main Python file, which in this case is app.py, like this.
Then you run the Flask development server by running flask run, and this is all done in your terminal. But what if you want to make a code change? You'll have to keep restarting the development server every time, and in order to keep the development server running,
you'll have to do something else from your command line. You'll have to export development into the Flask underscore env variable. In FAS API, running and development, FAS API uses something called hot reloading, and hot reloading keeps the app running
when you're making code changes, right? So you don't have to keep restarting the development server over and over again, and what you can do is, from the terminal, just pass in the reload flag, and to start the server, you just would type uvacorn main colon at. Main is the name of your Python file that you're running,
so in this case, it's main.py, and you can think of uvacorn as this lightning-fast server that allows your application to perform faster. So hot reloading saves you lots of development time because your application reloads automatically anytime you change the code, which is pretty sweet if you ask me.
Okay, now you should be warmed up, right? You're in the game. It's second quarter. Let's talk about HTTP methods in Flask and FAS API, and HTTP methods are just action-oriented verbs. We've already covered how to do Git in Flask and FAS API, which is like a read-only request, so let's see how to do a POST in both of these frameworks,
and a POST, you're just creating a resource. It's kind of like you're submitting data to a form, and it gets submitted to the server. So in Flask, for HTTP methods, we'll start with a POST request, right? We'll just do a POST request because we've already seen the Git, and here, we want to create data and send it to the server.
So let's say we have this list of dictionary called teams. So the difference is in Flask, with the POST request, you'll have to specify POST in the methods list inside of your decorated route.
This is the new team that you want to create. You want to add to the list of dictionaries, and you return it by using JSONify, which turns Python dictionary into JSON so the server can interpret the data. But if you pull up the browser, and if you go to the route, you'll get a 405 method not allowed error
because this is a POST request, right? And by pulling up a web page, that's doing a Git request. So you'll have to use an external tool called Postman. And Postman acts as a client, so you can see your POST request and the data that you've created in JSON format.
Fast API HTTP methods. Fast API provides separate decorators for each HTTP method, and we'll see an example in a few seconds. But in Fast API, the intentions are clear with having to specify each decorator with an HTTP verb, right?
And it also provides native support for JSONify. So it automatically turns a Python dictionary into JSON. And I'll show you why Fast API has an edge when it comes to HTTP methods and routing, and that is because of automatic documentation, which is an interactive API documentation
where you can see your request in the browser, such as your POST request, and interact with them like passing in data to see what you get back, so your response. It's like magic, honestly, right? It's going to make your life easier, and you don't need any extra tools like Postman.
So Fast API automatic documentation. Fast API is based on something called Pydantic, which comes with Fast API out of the box when you install Fast API, so there's no need to install Pydantic. And Pydantic is a framework for easily modeling and validating objects.
With Pydantic, it takes the pain away because you don't have to write constructors, right? And constructors are things that instantiate your objects, and you also get all the magic methods, or the dunder methods, which are like helper functions. Pydantic also does data validation and uses Python type-hinting,
so you'll get friendlier data validation areas, which, of course, reduces your debugging time, which is always nice. So type-hinting is pretty much what it sounds like, right? They hint at the variable type you're using, and they help document code for other engineers
that may be using your code, and they help catch bugs sooner. So an example of type-hinting would be just, you know, this variable player ID followed by the type integer or int. Pydantic also works together with something called Swagger UI for the automated documentation,
which allows you to visualize and interact with your APIs. So let's do something more cool so we can see the beauty of how automatic documentation works in FastAPI. So to use Pydantic, you'll have to import something called base model. So our class that you're about to see
will inherit from base model. So inheritance works like this. Like, if both your parents have brown eyes, it's highly likely that you'll inherit their brown eyes as well. It's kind of the same with object-oriented programming. It works the same way, inheritance. So here, we're importing base model. Then we have a class called player that inherits from base model.
Okay, so it takes all the properties and functions and all the stuff that comes with base model. You're declaring your variables as type hints. So for example, player name string, player team string, player age type int. And inside of our function, we have a parameter.
And notice we're doing a post here in the decorator. Inside of our function definition, we have a parameter we're passing in. It's called request. That is a type of player, right? So that is a type hint. We're saying this variable request is a type of our player class that we just created, and then we're just returning a dictionary.
So to access your automatic documentation, you would just go to your local host slash docs. And you can see things like the schema, which is like a skeleton for your model with your variables.
And you can see which variables are required with hints. You see like the asterisk, the red asterisk next to them. So those are the required variables or your optional variables. You can try it out. There's a try it out button to test your API endpoints by passing in values for your variables. So here we're just passing in Michael Jordan for the player name,
Chicago Bulls for the player team and the player age 32. And then you can execute. You just click execute, and it's going to give you the response body back or what the server will receive for the post request. So once again, no need to use postman. You can just do everything right here from your browser.
You also get back a curl request, right, which lets you talk to a server by sending data or making a request through the command line. It generates it for you, so you don't have to write it from scratch. And I've written curl from scratch. You may have too, and it is time consuming. Flask doesn't have any built-in feature
for documentation generation, so you have to use an extension called Flask swagger, and you have to do a lot of configuration as it doesn't come out of the box with swagger. So since automatic documentation comes out of the box with FastAPI,
you don't have to install anything, and FastAPI also comes with PyDant on the box, which uses the automatic documentation. Data validation, which can be client or server-side validation, which uses our lovely friend PyDantic.
So FastAPI data validation, we are creating a class here called login, okay, that once again inherits from base model or the PyDantic model with our type-hinted variables in our class, username, password, agree to terms. So in our function, let's just check to see
if username is equal to Jane Doe and password is equal to password one to be four five. If it is, then it's a success. Otherwise, it's going to fail. So we pull up our automated documentation again, click try it out.
Let's pass in none for the username, but we're keeping the password the same, and agree to terms is optional, but let's just make it true here. So PyDantic is going to work its magic, and you'll get a friendly error message telling you exactly what the error is,
and here it says error is expecting value, which is right on the money, right, because we passed in none for username, and it's expecting a value, and we didn't pass it one. Flask data validation. Flask does not have any in-house data validation support, but you can install the powerful PyDantic package
for data validation, though. So once again, FastAPI comes with PyDantic, which will give you friendly error messages and reduce time spent debugging. All right, it's fourth quarter.
We're coming to an end now. Let's talk about the templates folder. You may have seen this if you've done some web application development. The templates folder stores your HTML files if you want to build a web application,
and in Flask, the templates folder by default, you have to create the templates folder in Flask in your file structure, and it looks for that templates folder in a quote-unquote templates folder that you've created. So it stores your HTML files here,
and you have to use something called Jinja to display your variables in HTML, and Jinja is a templating engine that allows you to write code similar to Python to display your HTML, and it looks something like this.
Like, so here's your HTML file, and to display variables in Jinja, you have to surround them with double curly braces. So in FastAPI, you have to install Jinja and you have to define the templates folder in your code.
So when you install Flask, you also get Jinja. It comes out of the box, which is really nice for that, versus in FastAPI, you have to install it separately. Running in production, going live so the whole world can see. You know, it's scary sometimes, but FastAPI in production,
you can use something called an ASGI web server. Think of it as, like, a very, very fast web server, and it's asynchronous. So asynchronous means this. So imagine this. You have a bunch of, like, requests coming in.
You don't have to wait for the other ones to complete or finish before they start processing. Like, they can process at the same time, right, which makes for fast processing. In Flask production, you have to use something called WSGI,
which stands for it's a Python Web Server Gateway Interface. It's been the Python standard for many years, but that is changing. So WSGI is synchronous, right? It's like the total opposite of asynchronous. So, for example, imagine that you have a bunch of requests. They have to wait in line, right,
for the other requests before it's too complete. So it's kind of like a queue. So imagine waiting in line at the movie theater. I know movie theater is kind of like a thing of the past, but hopefully they'll come back. So you're standing in line at the movie theater, and you're at the end of the line,
and you have to wait, right, for the other people in front of you to get their ticket. So that's kind of how a synchronous web server works. So, I mean, ASGI makes for faster performance in your web applications because of the way they process requests asynchronously.
So I feel like FastAPI definitely does have the edge here. Oh, there's so many things we didn't get to talk about today because we had limited time, but, I mean, we could have talked about path parameters, or you might know them by URL parameters, which returns a single item.
So for example, if you want to see the details for one item, it would get the ID for that item through the URL you pass in and return. So for example, if you want to get, you know, you have like this player class, and you want to see the details for one player,
maybe it's Michael Jordan, you would just pass in an ID for Michael Jordan, which maybe could be two, through the URL, and then it will return the details for that player. Testing, we could have talked about testing, you know, with pytest and unit test, and then there's also modularity, which is really important.
So, you know, as your app grows, you know, how do you break it down into modules so you can port your code, or so other developers can also use those modules too. And Flask uses something called Blueprints for modularity and in FastAPI uses API Router, I believe.
So my winner, drum roll, please. Okay, so this is how I would choose personally. So I would use Flask for this, for these things. Okay, so, you know, as we said, Flask is battle-tested. It's been around for a long time.
It's reliable. There's tons of documentation, lots of user communities. If you want to quickly prototype something, you know, definitely use Flask. And if you want to do some web application development, you can use Flask as well for that. That's what I would use it for. Use FastAPI if you want speed, right?
Not only in performance, but in development time, right? Because it's, I mean, the way FastAPI is designed, it's really nice that it speeds up your development time. I would use FastAPI if you want to reduce errors and bugs, right, because of type hinting and our lovely friend, Pydantic.
And use FastAPI for, definitely use it for API development. I really do believe it's going to become the standard in the near future and many years to come. And also for FastAPI being so new, it has absolutely an amazing documentation.
I'm really impressed by the documentation that it has, and you can find what you're looking for online. Do a simple Google search or, you know, just pull up their documentation online. So thank you so much for your time today, and also thank you to the EuroPython Conference.
You guys do such an amazing job of putting this conference together. I know there's a little bit of challenges, you know, with the pandemic, but EuroPython, you guys did awesome. And I would love to hear from you. So this is where you can find me on Twitter. I'm just at at tonyasims. Give me a follow. I'll follow you back. And, yeah, so you can ask me any questions you want
about sports or Python or anything else. So thank you very much. Thanks, Tonya. It was a pleasure listening to you. We have a couple of questions lined up, and I'll just read out them for you.
Okay. So let me just read them as well on the screen. The first question is, basically, it's from a fan of basketball here named Sebastian. He's firstly thanking you for the talk, and next is the question. So which framework is magic and which one is first? So for all the basketball fans out there,
LA Lakers and Boston Celtics fans, this question may interest you. Oh, my God. This is such an amazing question. I love this question. Oh, wow. Oh, wow. This is tough. This is really tough. I mean, like I was saying, like, towards the end of my talk, I feel like, I mean, both Flask and FastAPI
definitely have their, you know, have their pros and cons, and so it's kind of hard to choose. I mean, Magic and Larry Bird were pretty comparable, like, in terms of, like, talent, but I do think moving forward in the future, I think I do think FastAPI will be the,
like, will be the standard for, especially for, like, API development. So, so, yeah, I mean, Magic Johnson was, like, my favorite player growing up, and I also really like Larry Bird, too. So, yeah, so that's how I answer that. Nice. Yeah. Okay. So the next question is, Flask 2.0 now looks like FastAPI.
However, the same is not reflected in the docs yet. So what's your opinion about the same? Yeah, I definitely kind of agree, actually. I feel like, like, when I was learning FastAPI, it was kind of like, you know, it took some of the best feature. Oh, wait, actually, you're saying... Oh, interesting. Yeah, I mean, I feel like FastAPI took some of the best features
from, like, Flask and Django and kind of, like, stripped it down and scaled it down. And, yeah, Flask 2.0 does look a little bit like FastAPI. So I haven't played around with Flask 2.0 as much because I've been... More of my time has been spent doing FastAPI development using APIs, so...
All right. Okay, I hope that answers the question. Next question is, why would one want to switch from Django to FastAPI or Flask? Are there any differences based on performance or scalability? Yeah, I definitely think...
So you'd want to switch from Django to FastAPI or Flask just because... So Django is a great framework. Don't get me wrong. But I feel like it's maybe slightly bolded, you know, but it does have a lot of good features as well. So you'd want to switch to, like, Flask or FastAPI
because they're micro frameworks and you have a little bit more flexibility and kind of, like, the packages or the libraries that you'd want to install. I think, too, with both of those, FastAPI and Flask, if you want to get something up quick, I would definitely use one of those frameworks. Okay.
Nice. All right. Okay, the next question is, based on the community support and documentation available, which one would you recommend, FastAPI or Flask? Ooh. Oh, wow. Okay, so, you know, Flask has been around for a while now, and it does have a very supportive community,
and it is reliable. It has a lot of documentation. But on the other hand, FastAPI, even though it's a newer framework, the documentation is amazing, honestly. It's very thorough. If you just go to their documentation site, I was really blown away, actually, by their documentation and just how complete it was.
I'm starting to see more questions about FastAPI, like, on Stack Overflow, and I think the community is really growing as well. Okay. Yeah, I don't know if I could say which one is better. I mean, I think, like, for... I mean, at least for me, I'm gonna be moving forward, doing more FastAPI stuff,
so that's kind of how I wish it was. Nice. Okay, so we are towards the end of the session. Just the last question. And it's an interesting one. Although you enjoy more, is it basketball or coding in Python? Oh, wow. Oh, wow. I would say they're definitely a tie. Now, I haven't played basketball in a while, but I love...
Obviously, I love coding in Python, so I wouldn't be here. But, yeah, I would say both. Okay. Nice. All right, so that ends the session. So thanks a lot, Tonio, for joining and delivering a really nice talk. Thank you. Thanks for having me. I hope people enjoyed it a lot.
All right. It sounds good. Thank you for having me. I appreciate it. Thanks. Bye, everybody. So anybody who has further questions can please join the breakout knee room, where Tonio will be present to answer your questions. And in ten minutes, we are having the lightning talk starting, so tune to them as well.
Thanks, everyone, and stay tuned.