- Видео 353
- Просмотров 1 052 420
Ssali Jonathan
Уганда
Добавлен 16 мар 2021
I am a software engineer hailing from Uganda 🇺🇬, actively producing instructional programming videos. My aspiration is to educate millions on coding principles through the content I create. I kindly seek assistance in realizing this goal.
FastAPI Beyond CRUD Full Course - A FastAPI Course
In the "FastAPI Beyond CRUD" course, you'll move beyond the basics and dive into advanced API development with FastAPI. This course is perfect for developers who are already comfortable with CRUD operations and are eager to explore the powerful features that FastAPI has to offer. You'll start by learning how to set up a FastAPI project and run a simple web server, before quickly progressing to more advanced topics like building REST APIs, managing path and query parameters, and working with databases using SQLModel. Additionally, you'll learn how to manage settings with Pydantic, organize your API with routers, and implement asynchronous SQLModel connections.
As the course progresses, you'...
As the course progresses, you'...
Просмотров: 23 340
Видео
Deploying FastAPI, PostgreSQL, Celery & Redis on Render - FastAPI Beyond CRUD (Part 23)
Просмотров 655Месяц назад
In this video, we’ll walk through deploying a FastAPI application on Render: This application comprises FastAPI, PostgreSQL, Celery, and Redis. You’ll learn how to set up FastAPI , PostgreSQL for reliable database management, and Redis to enhance Celery as an efficient task queue for background processing. We’ll cover configuration tips, deployment steps, and best practices to ensure a smooth a...
Get Ready For Pycon Uganda 2024 feat @pyconuganda
Просмотров 783Месяц назад
PyCon Uganda is an annual tech conference that celebrates and promotes the use of the Python programming Language within Uganda and Beyond! #pyconuganda2024 Pycon website: ug.pycon.org/2024 Follow Pycon Uganda On X: x.com/pyconuganda Subscribe To Pycon Uganda RUclips www.youtube.com/@pyconuganda
API Testing With Unittest Mock, Pytest & Schemathesis - FastAPI Beyond CRUD (Part 22)
Просмотров 547Месяц назад
In this video, we'll cover how to test your API using Unittest Mock, Pytest, and Schemathesis. We'll start with Unittest Mock, which helps you create fake API responses for testing. Next, we’ll use Pytest, a user-friendly framework for writing and running tests. Finally, we’ll explore Schemathesis, which automatically generates and runs tests based on your API's specification to ensure everythi...
API Documentation With Swagger And Redoc - FastAPI Beyond CRUD (Part 21)
Просмотров 5032 месяца назад
In this video, we explore API documentation with FastAPI, we look at how it automatically generates detailed API docs using Swagger UI and ReDoc. FastAPI leverages Python type hints and Pydantic models to produce an OpenAPI specification, which forms the backbone of the documentation. We’ll explore how Swagger UI offers an interactive interface for your API endpoints directly in the browser, wh...
Background Tasks with FastAPI Background Tasks and Celery + Redis - FastAPI Beyond CRUD (Part 20)
Просмотров 1,5 тыс.2 месяца назад
In this video, we dive deep into boosting your FastAPI application by offloading time-consuming tasks to the background. We'll start by exploring FastAPI's built-in background tasks, demonstrating how to execute functions asynchronously without blocking the main thread. Next, we'll introduce Celery, a powerful task queue system, to handle more complex background jobs. You'll learn how to integr...
Handling Password Resets - FastAPI Beyond CRUD (Part 19)
Просмотров 3132 месяца назад
In this video, we configure password resets for our FastAPI application using email verification. Additionally, we enforce access restrictions to ensure only users with verified accounts can log in. #python #fastapi #apidevelopment SOURCE CODE: github.com/jod35/fastapi-beyond-CRUD COURSE WEBSITE: jod35.github.io/fastapi-beyond-crud-docs/site/chapter14/ PLEASE DONATE TO THE CHANNEL THROUGH: BUY ...
User Account Verification Via Email - FastAPI Beyond CRUD (Part 18)
Просмотров 7472 месяца назад
In this video, we explore integrating email support into our application using FastAPI-Mail. We start by implementing email-sending capabilities and proceed to verify user accounts. We also look at how we can securely pass data in URLs using the itsdangerous Python library. #python #fastapi #apidevelopment SOURCE CODE: github.com/jod35/fastapi-beyond-CRUD COURSE WEBSITE: jod35.github.io/fastapi...
Middleware, Setting Up Custom Logging And CORS - FastAPI Beyond CRUD (Part 17)
Просмотров 1 тыс.2 месяца назад
In this video, we explore the important concept of middleware in FastAPI. Middleware acts as a bridge between incoming requests and application logic, allowing for custom processing at various stages of request handling. Throughout the tutorial, we not only establish a custom logger for our application but also implement middleware to enhance functionality. Additionally, we configure CORS (Cros...
Error Handling (How to create Custom Error Handlers and Exceptions) - FastAPI Beyond CRUD (Part 16)
Просмотров 7502 месяца назад
Error Handling (How to create Custom Error Handlers and Exceptions) - FastAPI Beyond CRUD (Part 16)
More Database And Schema Relationships - FastAPI Beyond CRUD (Part 15)
Просмотров 4603 месяца назад
More Database And Schema Relationships - FastAPI Beyond CRUD (Part 15)
Model And Schema Relationships (One To Many SQLModel) - FastAPI Beyond CRUD (Part 14)
Просмотров 7263 месяца назад
Model And Schema Relationships (One To Many SQLModel) - FastAPI Beyond CRUD (Part 14)
Role-Based Access Control Using Dependency Injection (User Roles) - FastAPI Beyond CRUD (Part 13)
Просмотров 1,2 тыс.3 месяца назад
Role-Based Access Control Using Dependency Injection (User Roles) - FastAPI Beyond CRUD (Part 13)
JWT Authentication (Revoke Access Tokens Using Redis) - FastAPI Beyond CRUD (Part 12)
Просмотров 7693 месяца назад
JWT Authentication (Revoke Access Tokens Using Redis) - FastAPI Beyond CRUD (Part 12)
JWT Authentication (Renew User Access Using Refresh Tokens) - FastAPI Beyond CRUD (Part 11)
Просмотров 7403 месяца назад
JWT Authentication (Renew User Access Using Refresh Tokens) - FastAPI Beyond CRUD (Part 11)
JWT Authentication (Protect Endpoints with HTTP Bearer Auth) - FastAPI Beyond CRUD (Part 10)
Просмотров 9343 месяца назад
JWT Authentication (Protect Endpoints with HTTP Bearer Auth) - FastAPI Beyond CRUD (Part 10)
JWT Authentication (Create Access And Refresh Tokens) - FastAPI Beyond CRUD (Part 9)
Просмотров 1,2 тыс.3 месяца назад
JWT Authentication (Create Access And Refresh Tokens) - FastAPI Beyond CRUD (Part 9)
User Account Creation (Email & Password) - FastAPI Beyond CRUD (Part 8)
Просмотров 5993 месяца назад
User Account Creation (Email & Password) - FastAPI Beyond CRUD (Part 8)
Create a User Authentication Model (Database Migrations With Alembic) - FastAPI Beyond CRUD (Part 7)
Просмотров 7903 месяца назад
Create a User Authentication Model (Database Migrations With Alembic) - FastAPI Beyond CRUD (Part 7)
CRUD With Async SQLModel (An Introduction to Dependency Injection) - FastAPI Beyond CRUD (Part 6)
Просмотров 1,1 тыс.3 месяца назад
CRUD With Async SQLModel (An Introduction to Dependency Injection) - FastAPI Beyond CRUD (Part 6)
Databases With SQLModel (Connection, Lifespan Events, And Models) - FastAPI Beyond CRUD (Part 5)
Просмотров 1,5 тыс.3 месяца назад
Databases With SQLModel (Connection, Lifespan Events, And Models) - FastAPI Beyond CRUD (Part 5)
Modular Project Structure With FastAPI Routers - FastAPI Beyond CRUD (Part 4)
Просмотров 1,2 тыс.3 месяца назад
Modular Project Structure With FastAPI Routers - FastAPI Beyond CRUD (Part 4)
Build a CRUD REST API (Response Models, Validation, And Exceptions) - FastAPI Beyond CRUD (Part 3)
Просмотров 1 тыс.3 месяца назад
Build a CRUD REST API (Response Models, Validation, And Exceptions) - FastAPI Beyond CRUD (Part 3)
Web Server Basics (Path & Query Params, Request Body, Headers) - FastAPI Beyond CRUD (Part 2)
Просмотров 1,6 тыс.3 месяца назад
Web Server Basics (Path & Query Params, Request Body, Headers) - FastAPI Beyond CRUD (Part 2)
Introduction And Project Set Up - FastAPI Beyond CRUD (Part 1)
Просмотров 2,7 тыс.3 месяца назад
Introduction And Project Set Up - FastAPI Beyond CRUD (Part 1)
Communication About FastAPI Course And Channel Donations
Просмотров 2924 месяца назад
Communication About FastAPI Course And Channel Donations
Advanced Django ORM Features (Q-Objects, F-Expressions, Aggregations and Annotations)
Просмотров 5494 месяца назад
Advanced Django ORM Features (Q-Objects, F-Expressions, Aggregations and Annotations)
Easily Turn Your Markdown Into Static Sites Using MKDocs
Просмотров 5354 месяца назад
Easily Turn Your Markdown Into Static Sites Using MKDocs
Be Careful when Listening to To Youtube Software Engineers @SidTheITGuy
Просмотров 3 тыс.5 месяцев назад
Be Careful when Listening to To RUclips Software Engineers @SidTheITGuy
I want to get started with python but need someone to teach me or give a guidance
I’m here. I can help
@@SsaliJonathan how do I get started sir. Am a complete beginner. Anyway I can connect with you
Best one
Thanks, the comments also helped Y'all should not forget to install redis on ur machine and enable the service, the default port is 6739 so after enabling the service u are good to go.
where will i get the front end code for this? anyways a great series completed the whole 15 videos today
I did not build a frontend for this
When I sign up as two of the same users, I get {username: null} and samw with all the other things. Pls help
Kindly reach out via Discord. In the #help channel, show all details about your error and I will help. Thanks discord.gg/t48Y6ReF
I was getting error as Object of type datetime is not JSON serializable in refresh route. I fixed it by changing the expiry in create_access_token like this: expiry_datetime = datetime.now() + (expiry if expiry is not None else timedelta(minutes=60)) In the payload I used 'expiry': expiry_datetime.isoformat(),
I have also change my route a little: @user_router.get("/refresh_token") async def get_new_access_token(token_details: dict = Depends(RefreshTokenBearer())): expiry_timestamp = token_details["expiry"] expiry_datetime = datetime.strptime(expiry_timestamp, "%Y-%m-%d %H:%M:%S.%f") if expiry_datetime > datetime.now(): access_token = create_access_token(user_data=token_details['user']) print(access_token) return JSONResponse(content={"access_token": access_token}) raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail="Invalid or Expired Token")
Hope its helps for those who might be facing issues.👍
Linux?
Used windows at the time I recorded this
This is awesome, thank you! Again SqlAlchemy 2 Pydantic 2 and Fastapi. Better that paid udemy courses. So you create crud.db to use as a shortcut? I didn't really understand that part. What if there was one more model, like User? Can you please share how would we connect the object to a logged in user? And now i guess the next video to watch would be the one with the SQLModel, correct?
Thanks for all you do! 🙌
Welcome
this is really good Course on the FAST API
Ssali, after watching your SQLAlchemy 2.0 ORM Crash Course, i am a bit lost as to the difference between this video and "Building a REST API with FastAPI, Async SQLAlchemy, and PostgreSQL". Can you please advice? Thank you
Sqlmodel is just an Orm that builds on top of sqlalchemy. You will find it to use since all there’s is to use in sqlalchemy can be added
@@SsaliJonathan thank you, okay let's watch them in order and ask questions later if need be 👍🙂
Fresh, new content for basics on setting up V2, thank you!
Thanks for watching
I realised that these guys only give the basics if you are looking for the whole thing you cant find that , thats why i never pay for any course. but thanks .
Thanks for watching
Great, thank you.
You are welcome!
Does this code still work today? I'd love to follow along!
Greetings. This code will run the same way. This is because React and Flask have gone through a lot of changes. Thanks so much.
@@SsaliJonathan So it will work?
Hi great videos! if I folowed this step by step would it still run ?
muito bom o tutorial, já aprendo ingles junto :D
Me alegro que te guste
Awsome tutorial. Plz can you make on tutorial on microser vices.
Rest assured. I will make one.
Can you help me with Uber full app clone with reflex?
I honestly can’t promise that given my busy schedule. But I’ll leave it as a challenge to you.
Hi Jonathan, thanks for creating such an awesome playlist. I can't express enough how great your course is.
Glad you enjoy it! Thanks so much for watching
is pynecone is modified into reflex??
It is Reflex. They renamed it
@@SsaliJonathan I have a dout that if I don't know radix ui or chakra ui ,will it be difficult to learn reflex
Ty!
Thanks Mr Jonathan
Welcome Prashant. Thanks for watching
Kindly add timestamps please.
Thanks so much. I’ll add them
Waiting for fastapi microservice😢
Will have to build that course in the future.
wow thanks for this man !
Glad you liked it. Thanks for watching
got stuck at 2 hours as usual ... cant get any answers as this wasnt on windows and he used different database ...
What could be the problem? Do you mind if you can reach out on Discord? I’ll be able to help you from there
discord.com/invite/yqpwkwjRbx
Best one 🤗🤗
I am glad it helped. Thanks for watching
Great job. We will appreciate you making something like this but on Django with databases like Postgres, Mongo or MySQL.
I am glad you found value in my work.Will consider doing that in the future
It's a very useful playlist that explained the best practices, implementations. Thank you for creating this playlist❤
Thanks for watching
According to you, is SqlModel more relevant for production environnement than SqlAlchemy ? Is FastAPI resilient on large project on production or we must go for Django Rest Framework for that... Since SQLModel/FastAPI doesn't have version 1.0 yet and there are a lot to do
hi jonathan I've a problem, I can't connect my db with fastapi the CLI rerurn me this msg : "home/b2pic/Desktop/bookly/src/__init__.py:10: RuntimeWarning: coroutine 'initdb' was never awaited initdb()/" can you or anyone help me to fix it please
Please call initdb with await. like await initdb
@@SsaliJonathan ok I try it, so thanks 👍
Why am I getting the error : from err sqlalchemy.orm.exc.UnmappedInstanceError: Class 'src.books.schemas.Book' is not mapped
kindly show me the way you are constructing your models.
No worries, found the issue!
Thanks for uploading
Welcome
There is a bug somewhere with validating the integrity of the token. When I tamper with the token like delete some characters, it logs an error, but the request still goes through.
That issue can be handled in the verify_jwt function. Kindly reach out via discord and we’ll see how to go about this
Salute is all I can say because your work has been of great help to me. Thank you and kindly create video on the different app contents.
I’m glad this video helped
I usually don't comment but this Tuto is just amazing! You covered pretty much all the topics from basic to advance. Thanks for your work. I was able to build an API for my front-end app! You definitely earned one sub
Thanks so much for the kind comment. I’m glad my video has been valuable to you. I promise to make more valuable content
Hi, could you fix the timestamp? Great work, btw. Thank you.
The timestamps have given me a hard time. But I have now fixed them.
Hey guys, Thanks for watching. This was requested to be part of the FastAPI Beyond CRUD series. I unfortunately did not add it. So I wanted to get live and do this explaining web sockets
I liked the video and subscribed. Watched content till 3 hr timestamp, really good stuff. Will implement till this part now.
Glad it was helpful! Thanks for watching. Kindly ask if you have any concerns.
On the vs code status bar there is "File 0% Documented". What tool is it?
Autodoc. I think that’s what it is
This is the simplest fastapi video I have seen. Very detailed and straight to the point.
I’m glad you like it. Thanks for watching
Good work. I really like that you show example of structure as this becomes important in real world projects. lol, I was afraid of the length of 12hrs, but you have held my attention. Thanks.
I am glad you have really held on to the video. Kindly tell me how you will feel about it at the end.
@@SsaliJonathan Finally finished the whole tutorial. Riveting, and useful. Thanks for all your work. I have one error left "in _load_backend_mixin version = _bcrypt.__about__.__version__"... but so far the error doesn't make any difference, but if you know what this is, please let me know.
Never mind, I rewrote the hash password defs to avoid using the passlib.
Great Sir, Very clear explanation of concepts and implementation. You have made FastAPI really easy to grab and learn for freshers.
Thanks and welcome
Thanks Jonathan 😁
Welcome
bro this course is the best fastapi course l have ever seen and you cover all l need l don't know how l appreciate this
Thanks Mustafe! I appreciate the comment. Thanks for watching and I hope you get more value in the next chapters.
Yeah that looks good but what to do if Program and Course models are in different files? (as they should be) let's assume I have different folders for Course files(crud, models, schemas etc.) and Program files (same). If I simply import them into each other, I get circular import error, but at the same time I can't just "not import" course into program or vice versa, because those models depend on each other. What should I do then? (to both not have all models in the same file and still have relationship between them)
There few ideas I want to share: 1. create model_relations file in main directory, import every model there and add relationship fields using inheritance (sort of "central file" for models) 2. simply use Mapped[list[uuid.UUID]] (I use uuid for id) instead of Mapped[list[Program]] and need for importing different models disappears, but this one feels kinda wrong
Try using the format “<model_module.model_name>” if your course models are located in course/models.py then I think “course.models.Course” will work
@@SsaliJonathan didn't understand how the answer is related sorry problem here is that when I import course.models.Course to program.models.Program (and vice versa) I get circular import error. I want to get rid of this error, even tho I still need to use them. I decided to just write relationships without Mapped[] class because it's just for typechecking during compilation and doesn't really affect the program. for example: parent_program = relationship('CourseModel', back_populates='child_courses')