FastAPI is an up and coming framework for Python to create an API. Some would say it’s already here. Yes, its main purpose is to be an API, but it can still host a website. Much in the same way Flask is a web framework, but can be used as an API. They can do both, but each has strengths weighted for its initial purpose.
In my opinion, one of the best benefits of FastAPI is that it comes with a doc system and testing right out of the box! Obviously, it can still be used with other external systems such as Postman.
I have completed the FastAPI course with Eric Ruby at Udemy, he does a really good job of explaining, and goes at a pace that does not feel frenzied. Admittedly, I mostly skipped section 14 about full stack and deployment. For the day job, I deal with a public facing website built with Bootstrap, Python, Jinja2, SQLAlchemy, and has an admin section. And a few years ago, I built an iOS app called AlertYoSelf that included customer logins and account creation.
I chose this course because I still have plans to build something that has been rattling around in my head for a few years. But I am thinking of starting a little smaller and rebuilding the iOS app that was previously mentioned. One of the lessons I learned about that app is that it was created “incorrectly”. It was made to be run only on iOS. At the very least, an independent API would have left the option open for expansion, as it was not a device specific application (I was doing an iOS tutorial at the time).