One of the other major point about fast api is that it is built to support async out of the box. So if you have blocking IO calls inside your API logic(db calls, file system interaction, other API calls etc), using async will improve your performance even more. In simple terms usually when 1 thread of python server will handle 1 API request. With async it would be able to serve more requests. One major thing is that, make sure to use async specific db library, requests module, file io modules etc. Then only we will have this advantage
Every Python programmer should do that. You can start by typing new functions and slowly typing legacy code, gradually increasing coverage in the codebase. Type hints improve everything, from catching trivial bugs to helping your IDE make better suggestions, not to mention living documentation that can't get out of date if you have a type checker in your CI.
It's a really nice and concise tutorial. For those who are struggling in list comprehension, part in the 'query_item_by_parametters()' function. What it does is, It's going through all the items in the global dictionary object items ( 2:17 ) and for each `item` it's calling 'check_item()' with the argument `item` if it returns true then the item added to the selection list object.( 9:29 )
Thanks, there is also a typo for count in the return all(). It has "item.count != count" when it should be "item.count == count". It threw me off for a bit.
...and in 20 minutes you can learn 80% of what is needed to use FastAPI ! Great introduction ! I'm using FastAPI right now, and a lot of things about it are good, but, I've to say, I find the router pretty weak, compared to i.e. Pyramid, and also, something that bothers me are some of decision they made, i.e. HTTPBearer security scheme is returning 403 instead or 401 when not authenticated. Also, I find some things are really difficult with it (i.e. peeking request content before the endpoint, for i.e. logging). That said, the auto doc, async, and all bells and whistles are worth it, for the time being
I've been trying to learn Python. I started programming more than forty years ago, and while I'm not a professional developer, I have experience with a dozen or more programming languages, including C# and Perl (to me, Python seems like an illegitimate love child of those two parents). So... trying to learn Python. So many "intro to Python" videos provide the basics of programming along with the rudimentary structures of the language (formatted strings, getting input, etc.), and they're not useful to someone who can glance at a command, recognize its C roots, and move on without several minutes' discussion about how "print" puts a message on the console. This is the first video I've seen that outlines enough of the way a serious piece of software is written (data structures, function calls, API development, etc.) that it has been the most useful video on Python development I've watched. So thank you. I subscribed, am looking forward to more videos, and will refer back to this one a lot.
Will be very much helpful if you create a microservice series using fastAPI and django/ flask which can imetate the real life project scenario. So that we(entire ArjanCodes community) get to know better coding techniques as well as other understanding in details about that as well.
Have been recently playing around with flask and a little Django in the past. The learning curve and setup time is less steep with FastAPI. I like that templates (jinja2) can be added later.
Hey Arjan, thank you for making this video I'm a big fan of FastAPI! I noticed some problems: - at Path and query parameters, I got a JSONDecoder error, more exactly there was a problem at the return type, instead of dict[str, Selection] it should be dict[str, Selection | list[Item]] or other alternatives - in the Routing and requests, post and put endpoints had some unraised HttpExceptions I hope you make more videos using this framework in the future, thank you!
Last year we ported our extensive Tornado based application to FastAPI. It was quite a learning experience. FastAPI really forced us to re-think some of our original customizations, but we ended up having full feature parity. Unfortunately we never managed to get it into production as the company eventually had to fold. You didn't even get to go into some of the neat tricks like Depends()! Future video? ;)
Oh, and a nice trick with Pydantic models is that you can define separate Create/Update/Retrieve types. Then in your FastAPI route you can define a `response_model` that can help you filter results. Say your endpoint accepts certain data, but you only want to return some other data (instead of the exact same object, sometimes needed for enhanced security).
How robust is FastAPI? could this handle thousands of transactions a second, for example? I'd like to work with something that can handle ~500k individual transactions a day (with max db hits being ~5k a second), and this looks pretty good :)
@@obsidiansiriusblackheart There's no real way to know. It's going to depend on a number of factors including: the speed of the DB, the speed of the systems running the (API, DB) processes, the complexity of the API functions, any potential latency if the DB is remote, the list goes on. Almost anything will work if you throw enough processes at it or tune it correctly, it really depends on how much you want it to work. You're not going to get C++ or even Go levels of performance out of a Python app, but you can get performance that's on par with NodeJS. If you're curious to see if it suits you, I'd suggest setting up a small test environment and throwing some traffic at it. As you've seen from the video, it doesn't take long to set up a single endpoint for test purposes. If you don't mind me asking, what sort of thing has such a wild variance that it could have up to 5k requests per second, but only 500k per day?
It would be helpful to have a series of this and include a tutorial about the interaction between machine learning models and FastAPI (maybe you can include saved models using MLFlow).
Thank you for this so much Arjan. I was just about to learn about FastAPI. There are so many of your vids on my watchlist when I'm going to switch jobs soon. Take care.
Well to be fair the "A Detailed Python Tutorial" seems to be more of a clickbait than real description but thats a really clear and useful intro to FastAPI
This is really great! Pydantic seems easier to use that marshmallow and enforces type-hints as best practice. Really love your videos about best practices/architecture stuff. A similar tutorial about Git best practices would be really nice!
Fastapi is mean to following the ASGI specification, same as Unicorn. It doesn't make sens to use Gunicorn who follow WSGI spec. Hypercorn is more adapted, however unicorn is robust enough to stay in production.
In my current job we are developing a microsservice using fastapi, and everything is flowing nicely, in the next week the microsservice will gonna be deployed and if everything goes well we are gonna using for alot of things. Thanks for video, hope to see more fastapi around here
I have a question about the code in 10:03, you defined the Selection type is a dictionary but why you can return the selection value in the response object with a list :D
Thanks for this Arjan! Great tutorial covering all you need to get started :) I wonder though why at 10:07 FastAPI doesn't crash with a validation error for you. Your return type of the function doesn't cover list[Item] which the "selection" part of your return value / response contains. I'd expect FastAPI to validate the data through Pydantic and failing to do so because of it containing a list of Item in the dict. Locally I do see this expected behaviour. Anyway, thanks again and greetings from Utrecht :)
What about dataclass_json library? I find it extremely neat to use. Adds a bit to regular Python dataclasses, like including/excluding additional fields, or providing default ones.
a video like this one on api best practices would be really nice, like how to add authentication between two services, a authentication with azure directory, etc...
Thanks for yet another awesome video @ArjanCodes❤ I tried to code along some parts of your video without knowing your approach and I struggled a lot on the parameter query part. Even knowing your solution to the problem know, it still feels kinda hard to wrap my head around it. Any tips how I can improve that and solve such problems faster? Thinking about it.. is a video about problem solving something you want to do in the future?
@ArjanCodes At time of 13:42, if you change the item.id to a number that exist in items dict, the code not gonna throw an error, it just adds the item to items. Can you explain why ? Thanks
Hi Arjan, this is incredible about how easy is to use the fast API compared to other frameworks (especially from Java). With few lines of code, I can get a good structure of an API. Thanks for the amazing tutorial and greetings from Brazil!!
typing.Optional does not give you a default value though so you cannot really get around that. The other part is just preference. As of Python 3.10 you can use | instead of Union so specifically importing an additional class to write Optional[int] seems a bit pointless to me if you can simply write int | None.
at Grupo Sifra (BR company for credit) all the new python APIs are developed with FastAPI rather than Flask, when well developed they become faster! I already shared your channel with coworks, your videos are amazing
Do you have a full length tutorial for using Pydantic? That's something new to me that's quite common and I could use your extremely clean explanations!
From my experience the "Fast" in FastAPI really shines during development. In practice, when running an optimized (not everything-by-default) application, the speed is comparable to Django or Flask. FastAPI has been my go-to framework for the past 3 years.
I've spent several hours today trying to do something that should be simple: use a custom class in the query? parameters with fastapi. The custom class can be instantiated from a string (I realize all parameters in the query are initially string). From searching similar issues on stack overflow there doesn't appear to be a way to do this. Also, what I'd really like to do is create the query params from an application.wadl file (a schema where they are defined). I don't see any way to do this either.
Great video! It's a really good intro, but there is so much good stuff yet to cover! What makes me really like this framework are also the way it handles dependency injection, the docs that let you test your app, the async support!! Really a great framework, since I discovered it I've never created an API with another python framework haha!
@@naiduanuradha6 Unfortunately I don't have any suggestion. But the official documentation of FastAPI is well written and not too long, you might find all you need to know there!
please make a full length tutorial for Typer like this video, working to build a CLI tool that manipulates a yaml / json file for example. You have excellent videos.
Trying to run the api and consume with a mock client process. Problem is I'm using docker containers and can't access the api from my client procces. How do you run both at the same time?
Hello Dr. Arjan, I'm glad I found this FastAPI tutorial, very well explained. I have a quick question: where should I install FastAPI? Globally on my PC or inside a Python Project in a virtual environment?
Agree, SQLModel seems like the obvious choice if using SQLAlchemy, since SQLModel gives you a pydantic model for free. But not always “instead of” Pydantic. Sometimes the database model is not the same as the HTTP request and response models. In those cases, you’d want to use pydantic to model the request/response, and SQLModel to model what’s in the database.
Hi, I have been using javascript for frontend and have a bit of practice of abckend with js. However, i have been thinking of moving to Python for fastapi and use it as my backend solution for any software that i create. I dont have much expreicne in Python. Whay would you suggest? Should i solidify my backend skills in js or move to Python and fast api and use it. I want to have a pleasant experience when bulidng backend and that is very good in security. Your response would be helpful.
Unit tests are not written only to test the validation in your routers. You might want to target some other logic in your routers when writing tests to make sure it works properly as the application grows.
Great video! thanks :) I think it could be a really nice addition if you would demonstrate it with Postman for the http requests, or maybe use the Swagger UI built in for the FastAPI ! you still rocks !
Thanks Arjan for presenting a comprehensive look at FastAPI.Utilizing Pydantic's BaseModel allows you to design a request body schema that can accommodate multiple fields, and the validator decorator can be employed to validate each field individually.
@@ArjanCodes Thank you for the reply. I see that we write the app on our PC in Python, upload it to a web host, and the web host server handles requests from two places: a) the HTML running on the same server as the Python - this will be v fast response b) from myself in any location, eg if I want to download daily stats, or change a page of text
yes: fastapi, then pydantic and starlette and uvicorn and sqlalchemy and then vue.js for the admin and then the api for the communications between all the js and the api backend, then all the crud for all the objects. Or use Django and focus on the actual problem you want to solve.
this is awesome. I'm currenty learning fast api, but I've been building apis with django rest so the database part is alluding me. I love your tutorials. could you possibly do another one of these but so a very simple full setup. like one endpoint, the pydantic model, and the database stuff. youtube is definitly missing out on this specific tutorial. currently all the tutorials I've found stop wtih using a dictionary. no one has done the full tutorial yet.
I used similar to the Gino FastAPI tutorial for my team's implementations. Other than we used SqlAlchemy rather than Gino. The installation instructions are out of date but I like the FastAPI, db, and Alembic setup.
Only issue is that the query had a bug where it checked for item.count != count instead of item.count == count, so the result was wrong. But it is still a good demonstration of how to use FastAPI.
Great tutorial! Btw, will be great to see how fast is FastAPI... Something like side by side load tests with NodeJS-based API frameworks, like Express or Fastify, and maybe PHP-based frameworks (idk is there some similar, or not). I use FastAPI for my personal purposes, and small projects for my freelance clients, but I want to now how usable is FastAPI in highload, kinda what limit of this thing?
I really like pydantic models. It's really convenient to be able to enforce models for data. I've worked with fast API before but mostly worked on Django. I really like how lightweight fast API is and the built in validation. I'm curious. Do you know how it validates under the hood? I have a project I'm working on now in which I'm using pydantic models, but I'm verifying by constructing the model objects. I'm sure there's an easier way.
💡 Get my FREE 7-step guide to help you consistently design great software: arjancodes.com/designguide.
Hello, got the error "can't reach this page" when trying to download the guide from the email. Any suggestion?
Need more of these full length tutorials ❤️
Agreed !
20 minutes is a sweetspot
On it!
@@ArjanCodes Thanks for your work! Really love those!
Can you please make a video on api deployment?
fastapi + pydantic is a ultimate pleasure to work with.
*In the sphere of virgin pleasures
+SQLModel
I'm a big fan of FastAPI. Thanks for doing this.
You’re welcome Tom - glad you liked it!
One of the other major point about fast api is that it is built to support async out of the box.
So if you have blocking IO calls inside your API logic(db calls, file system interaction, other API calls etc), using async will improve your performance even more.
In simple terms usually when 1 thread of python server will handle 1 API request. With async it would be able to serve more requests.
One major thing is that, make sure to use async specific db library, requests module, file io modules etc. Then only we will have this advantage
Just make sure your DB setup is also async, otherwise you're actually making things worse if you use async endpoints with a synchronous DB call.
I have created worker threads to turn blocking calls into non-blocking.
I would also love to see videos about the best ways to deploy such an application, how to scale it, etc.
감사합니다.
Good job Arjan, looking forward to watching this, loving the channel!
Thank you Andrew!
Your persistance in consistent type fixing is marvelous
Every Python programmer should do that. You can start by typing new functions and slowly typing legacy code, gradually increasing coverage in the codebase. Type hints improve everything, from catching trivial bugs to helping your IDE make better suggestions, not to mention living documentation that can't get out of date if you have a type checker in your CI.
It's a really nice and concise tutorial. For those who are struggling in list comprehension, part in the 'query_item_by_parametters()' function. What it does is, It's going through all the items in the global dictionary object items ( 2:17 ) and for each `item` it's calling 'check_item()' with the argument `item` if it returns true then the item added to the selection list object.( 9:29 )
Thanks for clarifying, the whole 'query_item_by_parameters()' part was the hardest to wrap my head around! 🧠
Thanks, there is also a typo for count in the return all(). It has "item.count != count" when it should be "item.count == count". It threw me off for a bit.
...and in 20 minutes you can learn 80% of what is needed to use FastAPI ! Great introduction !
I'm using FastAPI right now, and a lot of things about it are good, but, I've to say, I find the router pretty weak, compared to i.e. Pyramid, and also, something that bothers me are some of decision they made, i.e. HTTPBearer security scheme is returning 403 instead or 401 when not authenticated. Also, I find some things are really difficult with it (i.e. peeking request content before the endpoint, for i.e. logging). That said, the auto doc, async, and all bells and whistles are worth it, for the time being
I've been trying to learn Python. I started programming more than forty years ago, and while I'm not a professional developer, I have experience with a dozen or more programming languages, including C# and Perl (to me, Python seems like an illegitimate love child of those two parents). So... trying to learn Python. So many "intro to Python" videos provide the basics of programming along with the rudimentary structures of the language (formatted strings, getting input, etc.), and they're not useful to someone who can glance at a command, recognize its C roots, and move on without several minutes' discussion about how "print" puts a message on the console.
This is the first video I've seen that outlines enough of the way a serious piece of software is written (data structures, function calls, API development, etc.) that it has been the most useful video on Python development I've watched. So thank you. I subscribed, am looking forward to more videos, and will refer back to this one a lot.
Wow! Thank you for sharing this!
Thanks!
Thank you very much for teaching design patterns and architecture, I think these are critical components to be a good software engineer..
Thank you so much, glad you like the content!
Cool video! Thanks! Would be nice to see video about integration FastApi and Dependency Injector, so interesting
Will be very much helpful if you create a microservice series using fastAPI and django/ flask which can imetate the real life project scenario. So that we(entire ArjanCodes community) get to know better coding techniques as well as other understanding in details about that as well.
The sheer volume of usages of the word 'fast' in the first 20 seconds compelled me to smash that thumbs up button.
Haha, thanks!
Another thanks for such quality content, that's really cool. Keep going, please.
Thank you for the kind comment!
Have been recently playing around with flask and a little Django in the past. The learning curve and setup time is less steep with FastAPI. I like that templates (jinja2) can be added later.
Hey Arjan,
thank you for making this video I'm a big fan of FastAPI!
I noticed some problems:
- at Path and query parameters, I got a JSONDecoder error, more exactly there was a problem at the return type, instead of dict[str, Selection] it should be dict[str, Selection | list[Item]] or other alternatives
- in the Routing and requests, post and put endpoints had some unraised HttpExceptions
I hope you make more videos using this framework in the future, thank you!
Thanks so much, i got the sam error repeatedly, fixed when added list[Item]. Why Arjan got no issue at all, a bit skeptical here
Last year we ported our extensive Tornado based application to FastAPI. It was quite a learning experience. FastAPI really forced us to re-think some of our original customizations, but we ended up having full feature parity. Unfortunately we never managed to get it into production as the company eventually had to fold.
You didn't even get to go into some of the neat tricks like Depends()! Future video? ;)
Oh, and a nice trick with Pydantic models is that you can define separate Create/Update/Retrieve types. Then in your FastAPI route you can define a `response_model` that can help you filter results. Say your endpoint accepts certain data, but you only want to return some other data (instead of the exact same object, sometimes needed for enhanced security).
How robust is FastAPI? could this handle thousands of transactions a second, for example? I'd like to work with something that can handle ~500k individual transactions a day (with max db hits being ~5k a second), and this looks pretty good :)
@@obsidiansiriusblackheart There's no real way to know. It's going to depend on a number of factors including: the speed of the DB, the speed of the systems running the (API, DB) processes, the complexity of the API functions, any potential latency if the DB is remote, the list goes on. Almost anything will work if you throw enough processes at it or tune it correctly, it really depends on how much you want it to work.
You're not going to get C++ or even Go levels of performance out of a Python app, but you can get performance that's on par with NodeJS. If you're curious to see if it suits you, I'd suggest setting up a small test environment and throwing some traffic at it. As you've seen from the video, it doesn't take long to set up a single endpoint for test purposes.
If you don't mind me asking, what sort of thing has such a wild variance that it could have up to 5k requests per second, but only 500k per day?
It would be helpful to have a series of this and include a tutorial about the interaction between machine learning models and FastAPI (maybe you can include saved models using MLFlow).
Totally agree
Thank you for this so much Arjan. I was just about to learn about FastAPI. There are so many of your vids on my watchlist when I'm going to switch jobs soon. Take care.
Glad it was helpful!
Well to be fair the "A Detailed Python Tutorial" seems to be more of a clickbait than real description but thats a really clear and useful intro to FastAPI
Thank you for this video, helped me get up to speed in a couple days and create something useful!
You're very welcome!
This is really great! Pydantic seems easier to use that marshmallow and enforces type-hints as best practice. Really love your videos about best practices/architecture stuff. A similar tutorial about Git best practices would be really nice!
Thanks so much! 😊
Thank you for helping us. learned a lot from you and this tutorial gives me quick knowledge to ace my tech interview today.
Best of luck!
Fastapi is mean to following the ASGI specification, same as Unicorn. It doesn't make sens to use Gunicorn who follow WSGI spec. Hypercorn is more adapted, however unicorn is robust enough to stay in production.
I don't know who needs to hear this but, take an hour to learn curl and you'll become much more efficient at testing servers
More FastAPI please. My main backend framework, it's the future and the creator has a sick mustache. Awesome video liked.
In my current job we are developing a microsservice using fastapi, and everything is flowing nicely, in the next week the microsservice will gonna be deployed and if everything goes well we are gonna using for alot of things. Thanks for video, hope to see more fastapi around here
Nice! I'll definitely touch more on FastAPI in the future.
I have a question about the code in 10:03, you defined the Selection type is a dictionary but why you can return the selection value in the response object with a list :D
Thanks for this Arjan! Great tutorial covering all you need to get started :) I wonder though why at 10:07 FastAPI doesn't crash with a validation error for you. Your return type of the function doesn't cover list[Item] which the "selection" part of your return value / response contains. I'd expect FastAPI to validate the data through Pydantic and failing to do so because of it containing a list of Item in the dict. Locally I do see this expected behaviour. Anyway, thanks again and greetings from Utrecht :)
Hi Arjan, thank for the great tutorial! I remember suggesting it for you some time ago ... Thanks for delivering it!
Hope you liked it!
BEST TEACHER EVER LIVED !
What about dataclass_json library? I find it extremely neat to use. Adds a bit to regular Python dataclasses, like including/excluding additional fields, or providing default ones.
fastapi comes with pydantic, this package already have this features
a video like this one on api best practices would be really nice, like how to add authentication between two services, a authentication with azure directory, etc...
great explanation man, I loved the practical example method.
Glad you liked it!
Thanks! It's very concise. I love the part where it provides an ORM-like validation feature.
Thanks for yet another awesome video @ArjanCodes❤
I tried to code along some parts of your video without knowing your approach and I struggled a lot on the parameter query part.
Even knowing your solution to the problem know, it still feels kinda hard to wrap my head around it.
Any tips how I can improve that and solve such problems faster?
Thinking about it.. is a video about problem solving something you want to do in the future?
@ArjanCodes At time of 13:42, if you change the item.id to a number that exist in items dict, the code not gonna throw an error, it just adds the item to items.
Can you explain why ?
Thanks
Fixed, in the code the key word 'raise' missed. Thanks anyway
Just jam-packed with details and no fluff. Why can't every tutorial be this bandwidth-efficient?!?!
Thanks, glad you liked it!
I love your videos! Thanks a lot for the great work and inspiration! Keep up the amazing content!!
Thank you! Will do!
Hi Arjan, this is incredible about how easy is to use the fast API compared to other frameworks (especially from Java). With few lines of code, I can get a good structure of an API. Thanks for the amazing tutorial and greetings from Brazil!!
Great tips! However, use "Optional" method from "typing" library instead of manually specifying an optional query param with "None=None"👌
typing.Optional does not give you a default value though so you cannot really get around that. The other part is just preference. As of Python 3.10 you can use | instead of Union so specifically importing an additional class to write Optional[int] seems a bit pointless to me if you can simply write int | None.
Were you using Python 3.11 for this? Would love to see a few FastAPI and HTMX tutorials.
at Grupo Sifra (BR company for credit) all the new python APIs are developed with FastAPI rather than Flask, when well developed they become faster!
I already shared your channel with coworks, your videos are amazing
Thanks so much for sharing!
Do you have a full length tutorial for using Pydantic? That's something new to me that's quite common and I could use your extremely clean explanations!
Not yet! But your suggestion is noted! :)
Great content, thanks a lot and have a nice weekend! 🙂
Thanks, you too!
Thank you!! Looking forward more and deep video!!!b
From my experience the "Fast" in FastAPI really shines during development. In practice, when running an optimized (not everything-by-default) application, the speed is comparable to Django or Flask. FastAPI has been my go-to framework for the past 3 years.
as always great video! Your tutorials are alway a pleasure. A tutorial to SQLalchemy would be very much appreciated as well
I've spent several hours today trying to do something that should be simple: use a custom class in the query? parameters with fastapi. The custom class can be instantiated from a string (I realize all parameters in the query are initially string). From searching similar issues on stack overflow there doesn't appear to be a way to do this. Also, what I'd really like to do is create the query params from an application.wadl file (a schema where they are defined). I don't see any way to do this either.
How can we intercept those errors when we miss the params or send the the wrong param type? Thank you for the excellent explanation!
Great video! It's a really good intro, but there is so much good stuff yet to cover! What makes me really like this framework are also the way it handles dependency injection, the docs that let you test your app, the async support!! Really a great framework, since I discovered it I've never created an API with another python framework haha!
is there any good video that covers all ???
@@naiduanuradha6 Unfortunately I don't have any suggestion. But the official documentation of FastAPI is well written and not too long, you might find all you need to know there!
simple and sweet explanation
Thank you so much 🙂
another great advantage is the dependency injection approach
please make a full length tutorial for Typer like this video, working to build a CLI tool that manipulates a yaml / json file for example. You have excellent videos.
Trying to run the api and consume with a mock client process. Problem is I'm using docker containers and can't access the api from my client procces. How do you run both at the same time?
Hello Dr. Arjan, I'm glad I found this FastAPI tutorial, very well explained. I have a quick question: where should I install FastAPI? Globally on my PC or inside a Python Project in a virtual environment?
Its always a good idea to use virtual environments unless you want to pollute the system with several packages.
Very explained!
Your style is fire. Where should I go to learn full-stack? What's your recommendation?
Nice video, as always. However, I need to ask you: do you recommend the use of FastAPI over Flask? Do you use it in your projects?
Hey, did you figure out about the use of FastAPI over Flask?
Is there a reason not to use SQLModel instead of Pydantic and SQLAlchemy?
Agree, SQLModel seems like the obvious choice if using SQLAlchemy, since SQLModel gives you a pydantic model for free.
But not always “instead of” Pydantic. Sometimes the database model is not the same as the HTTP request and response models. In those cases, you’d want to use pydantic to model the request/response, and SQLModel to model what’s in the database.
Bc Pydantic is all you need :3
FastAPI is the bets Python framework for building APIs.
More FastApi with your unique style Arjan
Love your videos! @ArjanCodes. What is the plugin in your terminal that suggests packages etc.? (timestamp: 1.23)
Do you have a video for implementing based AuthN and AuthZ using FastAPI and App registration in Azure?
Can you do a web assembly section with python if at all possible?
Thank's From France very nice share
Hi,
I have been using javascript for frontend and have a bit of practice of abckend with js. However, i have been thinking of moving to Python for fastapi and use it as my backend solution for any software that i create. I dont have much expreicne in Python.
Whay would you suggest? Should i solidify my backend skills in js or move to Python and fast api and use it.
I want to have a pleasant experience when bulidng backend and that is very good in security.
Your response would be helpful.
With Pydantic and all the input validation, do you still need to write unit tests for the API?
Unit tests are not written only to test the validation in your routers. You might want to target some other logic in your routers when writing tests to make sure it works properly as the application grows.
Great video! thanks :) I think it could be a really nice addition if you would demonstrate it with Postman for the http requests, or maybe use the Swagger UI built in for the FastAPI ! you still rocks !
Hi need one clarification on function(query_item_by_parameters) you are using '|' what is can you explain about that? (name: str | None = None,)
Great video! I would love to see a similar Django tutorial
Really nice introduction to fastapi! Will you do (or have you done) an introduction to plotly/dash?
Last summer I made Dash mini series!
Hi may I ask you why in category visual studio show error? Thank you
Thanks Arjan for presenting a comprehensive look at FastAPI.Utilizing Pydantic's BaseModel allows you to design a request body schema that can accommodate multiple fields, and the validator decorator can be employed to validate each field individually.
Can you use pprint when printing?
silly question, but in the final product where is fastAPI/Python sitting - in your office or on the server? eg perl is on server
You would typically host an API like this in the cloud. You can then access it remotely by sending requests to it.
@@ArjanCodes Thank you for the reply. I see that we write the app on our PC in Python, upload it to a web host, and the web host server handles requests from two places: a) the HTML running on the same server as the Python - this will be v fast response b) from myself in any location, eg if I want to download daily stats, or change a page of text
This was great, thank you!
Glad you enjoyed it!
i wanted to know which formatter you are using for your code.
yes: fastapi, then pydantic and starlette and uvicorn and sqlalchemy and then vue.js for the admin and then the api for the communications between all the js and the api backend, then all the crud for all the objects.
Or use Django and focus on the actual problem you want to solve.
hello arjan! can you do a django tutorial series just like this one?
this is awesome. I'm currenty learning fast api, but I've been building apis with django rest so the database part is alluding me. I love your tutorials. could you possibly do another one of these but so a very simple full setup. like one endpoint, the pydantic model, and the database stuff. youtube is definitly missing out on this specific tutorial. currently all the tutorials I've found stop wtih using a dictionary. no one has done the full tutorial yet.
I used similar to the Gino FastAPI tutorial for my team's implementations. Other than we used SqlAlchemy rather than Gino.
The installation instructions are out of date but I like the FastAPI, db, and Alembic setup.
Can fastapi replace django as a wrapper for production code? Is it appropriate?
Which color theme are you using here?
Amazing video!
Thanks Antonio, glad you liked it!
FastAPI is amazing!
postman or similar tool isn't easy to test Apis ? it also saves time
Only issue is that the query had a bug where it checked for item.count != count instead of item.count == count, so the result was wrong. But it is still a good demonstration of how to use FastAPI.
It would be nice to know which Python version we should use or which you used to run those scripts
I would assume “whatever is currently supported”. At the moment this would be 3.7 or later.
@@lawrencedoliveiro9104 I have tested 3.10.6 and still some issues
@@tmseth1 Such as?
I think Arjan has already jumped to 3.11
@@_DRMR_ I’m sure he has, but most of us like to, indeed have to, deploy on stable platforms.
Great tutorial! Btw, will be great to see how fast is FastAPI... Something like side by side load tests with NodeJS-based API frameworks, like Express or Fastify, and maybe PHP-based frameworks (idk is there some similar, or not).
I use FastAPI for my personal purposes, and small projects for my freelance clients, but I want to now how usable is FastAPI in highload, kinda what limit of this thing?
Great suggestion!
FastAPI looks pretty amazing
It is! :)
Would you do a video on fastapi and async / await?
Amazing intro to fastapi
I really like pydantic models. It's really convenient to be able to enforce models for data. I've worked with fast API before but mostly worked on Django. I really like how lightweight fast API is and the built in validation. I'm curious. Do you know how it validates under the hood? I have a project I'm working on now in which I'm using pydantic models, but I'm verifying by constructing the model objects. I'm sure there's an easier way.
Great tutorial
Do you make these codes available anywhere?
Is this validation working only with pydantic, or can FastAPI also get the types form dataclasses?
nice, do the same example using sqlalchemy. Does it only work with sqlite? why use it over sqlite3?