Python API Development - Comprehensive Course for Beginners

preview_player
Показать описание
Learn Python API development in one of the most comprehensive courses ever on the topic. You will build a full-fledged API in Python using FastAPI. You will learn the fundamentals of API design including routes, serialization/deserialization, schema validation, and models. You will also learn about SQL, testing with pytest, and how to build out a CI/CD pipeline using GitHub actions.

⭐️ Course Contents
00:00 Intro
06:33 Project Overview
11:22 Mac Python Installation
13:15 Mac VS Code install and setup
16:37 Windows Python Installation
18:30 Windows VS Code install and setup
22:11 Python virtual Env Basics
24:35 Virtual Env on windows
28:56 Virtual Env on Mac
34:17 Install dependencies w/ pip
36:21 Starting FastAPI
39:23 Path Operations
53:22 Intro toman
57:34 HTTP Requests
1:07:29 Schema Validation with Pydantic
1:22:45 CRUD Operations
1:29:44 Storing in Array
1:34:06 Creating
1:38:15 Postman Collections & saving requests
1:39:47 Retrieve One
1:48:10 Path order Matters
1:52:46 Changing response Status Codes
2:01:49 Deleting
2:10:31 Updating
2:18:02 Automatic Documentation
2:21:34 Python packages
2:24:11 Database Intro
2:28:54 Postgres Windows Install
2:31:28 Postgres Mac Install
2:34:26 Database Schema & Tables
2:44:35 Managing Postgres with PgAdmin GUI
3:12:10 Your first SQL Query
3:19:43 Filter results with "where"
3:22:55 SQL Operators
3:26:38 IN
3:28:07 Pattern matching with LIKE
3:31:59 Ordering Results
3:36:27 LIMIT & OFFSET
3:39:21 Modifying Data
3:53:48 Setup App Database
3:58:21 Connecting to database w/ Python
4:08:00 Database CRUD
4:31:18 ORM intro
4:35:33 SQLALCHEMY setup
4:55:25 Adding CreatedAt Column
5:00:59 Get All
5:07:55 Create
5:15:50 Get by ID
5:19:50 Delete
5:22:31 Update
5:28:21 Pydantic vs ORM Models
5:32:21 Pydantic Models Deep Dive
5:38:57 Response Model
5:50:08 Creating Users Table
5:54:50 User Registration Path Operation
6:03:27 Hashing Passwords
6:08:49 Refractor Hashing Logic
6:10:32 Get User by ID
6:17:13 FastAPI Routers
6:27:34 Router Prefix
6:30:31 Router Tags
6:32:49 JWT Token Basics
6:47:03 Login Process
7:00:44 Creating Token
7:09:58 OAuth2 PasswordRequestForm
7:13:23 Verify user is Logged In
7:25:21 Fixing Bugs
7:27:59 Protecting Routes
7:36:17 Test Expired Token
7:38:13 Fetching User in Protected Routes
7:42:44 Postman advanced Features
7:50:33 SQL Relationship Basics
7:54:59 Postgres Foreign Keys
8:07:20 SQLAlchemy Foreign Keys
8:13:40 Update Schema to include User
8:17:59 Assigning Owner id when creating new
8:21:01 Delete and Update only your own
8:27:48 Only Retrieving Logged in User's
8:33:37 Sqlalchemy Relationships
8:38:32 Query Parameters
8:53:53 Env Variables
9:21:20 Vote/Like Theory
9:26:36 Votes Table
9:31:33 Votes Sqlalchemy
9:34:11 Votes Route
9:52:31 SQL Joins
10:15:26 Joins in SqlAlchemy
10:28:21 Get One with Joins
10:30:18 What is a database migration tool
10:33:45 Alembic Setup
11:13:50 Disable SqlAlchemy create Engine
11:14:28 What is CORS?
11:23:38 Git PreReqs
11:27:40 Git Install
11:29:23 Github
11:34:39 Heroku intro
11:35:40 Create Heroku App
11:40:21 Heroku procfile
11:44:59 Adding a Postgres database
11:48:42 Env Variables in Heroku
11:58:59 Alembic migrations on Heroku Postgres instance
12:02:52 Pushing changed to production
12:05:04 Create an Ubuntu VM
12:08:04 Update packages
12:10:47 Install Python
12:12:21 Install Postgres & setup password
12:17:28 Postgres Config
12:24:50 Create new user and setup python evironment
12:34:06 Env Variables
12:42:24 Alembic migrations on production database
12:45:57 Gunicorn
12:54:12 Creating a Systemd service
13:04:45 NGINX
13:10:45 Setting up Domain name
13:15:19 SSL/HTTPS
13:19:31 NGINX enable
13:20:06 Firewall
13:23:47 Pushing code changes to Production
13:26:09 Dockerfile
13:38:39 Docker Compose
13:48:34 Postgres Container
13:56:22 Bind Mounts
14:03:39 Dockerhub
14:08:08 Production vs Development
14:14:51 Testing Intro
14:17:19 Writing your first test
14:30:22 The -s & -v flags
14:31:44 Testing more functions
14:35:29 Parametrize
14:40:21 Testing Classes
14:48:37 Fixtures
14:55:40 Combining Fixtures + Parametrize
14:59:13 Testing Exceptions
15:06:07 FastAPI TestClient
15:14:26 Pytest flags
15:17:31 Test create user
15:25:23 Setup testing database
15:36:47 Create & destroy database after each test
15:44:18 More Fixtures to handle database interaction
15:50:35 Trailing slashes in path
15:53:12 Fixture scope
16:07:50 Test user fixture
16:14:40 Test/validate token
16:22:09 Testing
17:34:15 CI/CD intro
17:43:29 Github Actions
17:49:32 Creating Jobs
17:57:38 setup python/dependencies/pytest
18:06:14 Env variables
18:11:19 Github Secrets
18:18:14 Testing database
18:23:42 Building Docker images
18:34:33 Deploy to heroku
18:49:10 Failing tests in pipeline
18:52:18 Deploy to Ubuntu
Рекомендации по теме
Комментарии
Автор

I can't believe they've put this one youtube for free, you guys are legends

soulofangel
Автор

### Section 1: Introduction
1. Course Project
2. Course Intro
3. Course Project Overview 06:33

### Section 2: Setup & installation
4. Mac Python Installation 11:22
5. Mac VS Code install and setup 13:15
6. Windows Python Installation 16:37
7. Windows VS Code install and setup 18:30
8. Python virtual environment Basics 22:11
9. Virtual environment on windows 24:35
10. Virtual environment on Mac 28:56

### Section 3: FastAPI
11. Install dependencies w/ pip 34:17
12. Starting Fast API 36:21
13. Path operations 39:23
14. Path Operation Order(yes it matters) 51:08
15. Intro to Postman 53:22
16. HTTP Post Requests 57:34
17. Schema Validation with Pydantic 1:07:29
18. CRUD Operations 1:22:45
19. storing posts in Array 1:29:44
20. creating posts 1:34:06
21. Postman Collections & saving requests 1:38:15
22. Retrieve One Post 1:39:47
23. Path order Matters 1:48:10
24. Changing response Status Codes 1:52:46
25. Deleting Posts 2:01:49
26. Updating Posts 2:10:31
27. Automatic Documentation 2:18:02
28. Python packages 2:21:34

### Section 4: Databases
29. Database Intro 2:24:11
30. Postgres Windows Install 2:28:54
31. Postgres Mac Install 2:31:28
32. Database Schema & Tables 2:34:26
33. Managing Postgres with PgAdmin GUI 2:44:35
34. Your first SQL Query 3:12:10
35. Filter results with "where" keyword 3:19:43
36. SQL Operators 3:22:55
37. IN Keyword 3:26:38
38. Pattern matching with LIKE keyword 3:28:07
39. Ordering Results 3:31:59
40. LIMIT & OFFSET 3:36:27
41. Inserting Data 3:39:21
42. Deleting Data 3:47:16
43. Updating Data 3:50:11

### Section 5: Python + Raw SQL
44. Setup App Database 3:53:48
45. Connecting to database w/ Python 3:58:21
46. Retrieving Posts 4:08:00
47. Creating Post 4:11:53
48. Get One Post 4:19:18
49. Delete Post 4:24:12
50. Update Post 4:26:31

### Section 6: ORMs
51. ORM intro 4:31:18
52. SQLALCHEMY setup 4:35:33
53. Adding CreatedAt Column 4:55:25
54. Get All Posts 5:00:59
55. Create Posts 5:07:55
56. Get Post by ID 5:15:50
57. Delete Post 5:19:50
58. Update Post 5:22:31

### Section 7: Pydantic Models
59. Pydantic vs ORM Models 5:28:21
60. Pydantic Models Deep Dive 5:32:21
61. Response Model 5:38:57

### Section 8: Authentication & Users
62. Creating Users Table 5:50:08
63. User Registration Path Operation 5:54:50
64. Hashing User Passwords 6:03:27
65. Refractor Hashing Logic 6:08:49
66. Get User by ID 6:10:32
67. FastAPI Routers 6:17:13
68. Router Prefix 6:27:34
69. Router Tags 6:30:31
70. JWT Token Basics 6:32:49
71. Login Process 6:47:03
72. Creating a Token 7:00:44
73. OAuth2 PasswordRequestForm 7:09:58
74. Verify user is Logged In 7:13:23
75. Fixing Bugs 7:25:21
76. Protecting Routes 7:27:59
77. Test Expired Token 7:36:17
78. Fetching User in Protected Routes 7:38:13
79. Postman advanced Features 7:42:44

### Section 9: Relationships
80. SQL Relationship Basics 7:50:33
81. Postgres Foreign Keys 7:54:59
82. SQLAlchemy Foreign Keys 8:07:20
83. Update Post Schema to include User 8:13:40
84. Assigning Owner id when creating new post 8:17:59
85. Delete and Update only your own posts 8:21:01
86. Only Retrieving Logged in User's posts 8:27:48
87. Sqlalchemy Relationships 8:33:37
88. Query Parameters 8:38:32
89. Cleanup our main.py file 8:50:46
90. Environment Variables 8:53:53

### Section 10: Vote/Like System
91. Vote/Like Theory 9:21:20
92. Votes Table 9:26:36
93. Votes Sqlalchemy 9:31:33
94. Votes Route 9:34:11
95. SQL Joins 9:52:31
96. Joins in SqlAlchemy 10:15:26
97. Get One Post with Joins 10:28:21

### Section 11: Database Migration w/ Alembic
98. What is a database migration tool 10:30:18
99. Alembic Setup 10:33:45
100. Alembic First Revision
101. Alembic Rollback database Schema
102. Alembic finishing up the rest of the schema
103. Disable SqlAlchemy create Engine 11:13:50

### Section 12: Pre Deployment Checklist
104. What is 11:14:28
105. Git PreReqs 11:23:38
106. Git Install 11:27:40
107. Github 11:29:23

### Section 13: Deployment Heroku
108. Heroku intro 11:34:39
109. Create Heroku App 11:35:40
110. Heroku procfile 11:40:21
111. Adding a Postgres database 11:44:59
112. Environment Variables in Heroku 11:48:42
113. Alembic migrations on Heroku Postgres instance 11:58:59
114. Pushing changed to production 12:02:52

### Section 14: Deployment Ubuntu
115. Create an Ubuntu VM 12:05:04
116. Update packages 12:08:04
117. Install Python 12:10:47
118. Install Postgres & setup password 12:12:21
119. Postgres Config 12:17:28
120. Create new user and setup python environment 12:24:50
121. Environment Variables 12:34:06
122. Alembic migrations on production database 12:42:24
123. Gunicorn 12:45:57
124. Creating a Systemd service 12:54:12
125. NGINX 13:04:45
126. Setting up Domain name 13:10:45
127. SSL/HTTPS 13:15:19
128. NGINX enable 13:19:31
129. Firewall 13:20:06
130. Pushing code changes to Production 13:23:47

### Section 15: Docker
131. Dockerfile 13:26:09
132. Docker Compose 13:38:39
133. Postgres Container 13:48:34
134. Bind Mounts 13:56:22
135. Dockerhub 14:03:39
136. Production vs Development 14:08:08

### Section 16: Testing
137. Testing Intro 14:14:51
138. Writing your first test 14:17:19
139. The -s & -v flags 14:30:22
140. Testing more functions 14:31:44
141. Parametrize 14:35:29
142. Testing Classes 14:40:21
143. Fixtures 14:48:37
144. Combining Fixtures + Parametrize 14:55:40
145. Testing Exceptions 14:59:13
146. FastAPI TestClient 15:06:07
147. Pytest flags 15:14:26
148. Test create user 15:17:31
149. Setup testing database 15:25:23
150. Create & destroy database after each test 15:36:47
151. More Fixtures to handle database interaction 15:44:18
152. Trailing slashes in path 15:50:35
153. Fixture scope 15:53:12
154. Test user fixture 16:07:50
155. Test/validate token 16:14:40
156. Conftest.py 16:18:59
157. Failed login test 16:22:09
158. Get all posts test 16:28:28
159. Posts fixture to create test posts 16:29:34
160. Unauthorized Get Posts test 16:51:33
161. Get one post test 16:55:16
162. Create post test 16:59:19
163. Delete post test 17:08:05
164. Update post 17:15:17
165. Voting tests 17:22:09

### Section 17: CI/CD pipeline
166. CI/CD intro 17:34:15
167. Github Actions 17:43:29
168. Creating Jobs 17:49:32
169. Setup python/dependencies/pytest 17:57:38
170. Environment variables 18:06:14
171. Github Secrets 18:11:19
172. Testing database 18:18:14
173. Building Docker images 18:23:42
174. Deploy to Heroku 18:34:33
175. Failing tests in pipeline 18:49:10
176. Deploy to Ubuntu 18:52:18

Jufinyan
Автор

The humongous amount of information with such lucidity and patience that has been conveyed is really unbelievable!
Kudos to Sanjeev!

manjultripathi
Автор

I don't usually comment on YouTube material I've watched, whether it was useful for otherwise, however I do feel compelled to say just how AWESOME this series is! Very thorough, at a good pace for beginner or intermediate level, and comprehensive. From references to relevant resources, to deep dives into the how and why of processes and implementation, I really got a lot out of this. So much so that I did the walkthrough once as it, and now I'm using it as reference and guide a second time (at 1.25 speed) for reiteration/repetition and in order to develop a new portfolio project based around a Music Library implementation. 5 out of 5 stars, would recommend.

nickshore
Автор

People pay more than $2000 for Python lectures and they don’t come close to quality content like this. YOU ARE ABSOLUTE LEGENDS!

Mantorp
Автор

This is what I've been searching all day, and these GIGA CHADS blessed me again. Thank you so much!

syllight
Автор

@Sanjeev Thiyagarajan, Thank you for making this class available to the open source community. This course is the best FastAPI course I have taken. For others, I took three weeks of regular evening study to complete all 19 hours, but my VSCode remote development environment was a major challenge - all fixed now. As stated previously by other people, your teaching is on the next level. I am still looking to find a place to send you a monetary token of appreciation.

rnwtenor
Автор

This course had everything that i needed in my first project as a developer. Thank you for everything Sanjeev Thiyagarajan. I hope I can become a developer like you someday and give back to the community.

naxanj
Автор

I just wanna say that this channel is a pure gold on YouTube and i want to thank the whole team of free code camp for these content. !!!!

amarnathojha
Автор

Great course, lots of valuable info. Also appreciate keeping things like 3:31:49 in, the random things that happen to everyone we don't always get. Here, for those wondering, he highlighted some text before running the query, that's why he got the syntax error, as it was only running the highlighted part.

SkirgeZA
Автор

This is a truly wonderful course. I actually completed this course a few months back and learnt so much! I am back again to revise everything I learned and to brush up on some difficult concepts. I have even recommended this course to my colleagues who were making a transition from front-end development to full stack. Great work, keep it going, and thank you so much for the hard work :)

anishpal
Автор

I like that when you look at the date at the bottom right of Sanjeev's computer when he started filming it was the 10th of June and by the time he finished it was the 18th of September! Thanks for the epic course...it's taken me 3 days to go through it!

BitcoinTheo
Автор

That’s insane course I’m really supporting your efforts in this, I wish one day i can support your community as you

EvaXdelo
Автор

I'm going to watch this whole course 2 hours a day. So many concepts i've wanted to learn in one package, amazing!

TheRonpe
Автор

Outstanding. What a wonderful framework to bootstrap my projects - going back and rewriting all my tinker projects as APIs. I learned a ton. Thank you so much.

EricHowell
Автор

What a clear, concise and comprehensive course! Huge respect to you Sanjeev!

maysoemoe
Автор

This course is incredible. I respect what you've done. Thank you so much.

VuongNguyen-wrhp
Автор

About 5 hours in your course and I just wanted to make a genuine comment on the quality of the teaching, concepts that I've struggled with for a long time are now easy to work with. Very much qualified to teach ANYTHING.

fredericobrink
Автор

Bro, ya'll make me have faith in humanity. So much knowledge given for free. so much hard work on your side. Thank you :)

alonpoudel
Автор

SERIOUSLY AMAZING VIDEO!!! You can literally become a senior developer just by watching and implementing it.

bluzter