Web Developer Bootcamp with Flask and Python in 2022
Welcome to the Web Developer Bootcamp with Flask and Python! In this course, you'll learn how to build and deploy dynamic websites using Python, Flask, MongoDB, HTML, and CSS! If you want to share your projects online and become a full stack web developer, you're in the right place! I will teach you the latest and most popular technologies, including Python 3.10, Flask, HTML 5, and CSS 3. I won't teach you jQuery or Bootstrap since those are old technologies!
More
Instead, I focus on giving you a solid HTML and CSS foundation, so that you can be truly independent, and build anything you want.
I'll help you write many real-world projects that test your skills and build your understanding. By the end of the course, you'll be able to design and code any feature on any website!
This course beats attending any live bootcamp or workshop because I've put hundreds of hours into planning, recording, and editing. Plus you get lifetime access, and I provide outstanding support—I answer dozens of questions every day!
Why learn Flask?
Flask is a microframework for web development, written in Python.
It's lightweight and simple, so you can start using it straight away. As you go through the course and learn more about it, you'll realize it's also really powerful!
Flask provides everything we need for building websites: a good way to organize our apps, helpers for user authentication, a large selection of plugins and extensions to do dozens of other things, and much more!
What you'll learn!
Here's an overview of what you'll learn in this course:
A super-strong HTML 5 and CSS 3 foundation
How to plan your software projects and make them successful
Design websites using design software like Figma
Semantic HTML, and how to code in HTML like a professional
Build backend applications with Flask and Python
Make your HTML websites dynamic with Flask and Jinja2
Become a CSS professional: learn about flex, grid, CSS animations, and much more
Store and retrieve data with MongoDB on the Cloud
Deploy your web applications (using both free and paid solutions)
Implement user authentication on your Python and Flask websites
Much, much more!
But most importantly, learn to code from a professional software developer, and like a professional software developer
I won't cover JavaScript in detail, but that's because you just don't need it! With HTML, CSS, and a backend (written with Flask and Python) you can do almost anything your users want. Later on, you can always learn JavaScript for extra functionality. Trying to learn JavaScript and Python together leads to problems, and everything becomes a bit more difficult than it has to be.
If you already know a little bit about programming (with Python or any other language), you're ready to start this course! Also, I've included a complete Python Refresher section to help you get up to speed with Python if you don't know it well already.
Watch Online Web Developer Bootcamp with Flask and Python in 2022
# | Title | Duration |
---|---|---|
1 | Welcome to the course! | 03:27 |
2 | Curriculum overview | 02:05 |
3 | Introduction to this section | 01:02 |
4 | Variables in Python | 08:27 |
5 | String formatting in Python | 06:27 |
6 | Getting user input | 05:17 |
7 | Writing our first Python app | 03:20 |
8 | Lists, tuples and sets | 06:32 |
9 | Advanced set operations | 04:40 |
10 | Booleans in Python | 05:01 |
11 | If statements | 08:18 |
12 | The "in" keyword in Python | 02:03 |
13 | If statements with the "in" keyword | 08:19 |
14 | Loops in Python | 11:08 |
15 | List comprehensions in Python | 07:25 |
16 | Dictionaries | 08:32 |
17 | Destructuring variables | 08:29 |
18 | Functions in Python | 10:42 |
19 | Function arguments and parameters | 07:41 |
20 | Default parameter values | 03:55 |
21 | Functions returning values | 07:20 |
22 | Lambda functions in Python | 07:53 |
23 | Dictionary comprehensions | 04:02 |
24 | Unpacking arguments | 10:25 |
25 | Unpacking keyword arguments | 08:45 |
26 | Object-Oriented Programming in Python | 15:53 |
27 | Magic methods: __str__ and __repr__ | 06:26 |
28 | @classmethod and @staticmethod | 14:04 |
29 | Class inheritance | 08:33 |
30 | Class composition | 06:09 |
31 | Type hinting in Python 3.5+ | 05:09 |
32 | Imports in Python | 09:34 |
33 | Relative imports in Python | 08:54 |
34 | Errors in Python | 12:48 |
35 | Custom error classes | 05:05 |
36 | First-class functions | 07:53 |
37 | Simple decorators in Python | 07:13 |
38 | The 'at' syntax for decorators | 03:34 |
39 | Decorating functions with parameters | 02:25 |
40 | Decorators with parameters | 04:51 |
41 | Mutability in Python | 06:04 |
42 | Mutable default parameters (and why they're a bad idea) | 04:28 |
43 | How do websites and the internet work? | 04:51 |
44 | Front end vs. Back end development | 02:16 |
45 | Key web technologies: HTML, CSS, and JavaScript | 02:59 |
46 | The Browser Inspector: using the developer tools | 06:27 |
47 | Elements: the basic components of HTML | 03:08 |
48 | A full example: HTML and CSS | 10:53 |
49 | Some of the most common HTML elements | 05:20 |
50 | What are HTML content categories? | 05:29 |
51 | Nesting elements in HTML | 05:50 |
52 | Starting our first HTML project | 03:57 |
53 | Which HTML elements can't be nested? | 02:14 |
54 | An overview of HTML container elements | 06:15 |
55 | A detailed look at HTML attributes | 06:09 |
56 | Adding images to our project | 04:47 |
57 | What is semantic HTML? | 05:40 |
58 | Document-level annotations in HTML | 05:51 |
59 | Completing our HTML project with document-level annotations | 03:06 |
60 | The best HTML resource: MDN | 02:05 |
61 | How to link a CSS file | 04:45 |
62 | Basic CSS selectors: targeting specific elements | 08:13 |
63 | How colours work: RGB, Hexadecimal, and HSL | 05:54 |
64 | Colours in CSS: text and background | 06:40 |
65 | Starting to write our project's CSS file | 06:13 |
66 | Inheritance in CSS | 05:44 |
67 | What properties can't be inherited? | 06:40 |
68 | The CSS Box Model | 05:27 |
69 | Overview of CSS units | 03:46 |
70 | Working with spacing in our project | 04:55 |
71 | Descendent selectors in CSS | 07:11 |
72 | What is specificity in CSS? | 07:37 |
73 | BEM: a simpler approach to CSS targeting | 14:43 |
74 | Overview of this section's project | 03:30 |
75 | From our YouTube channel: How to start a new software project | 11:56 |
76 | Step 1: becoming a user | 05:51 |
77 | Step 2: populating the backlog | 05:56 |
78 | Step 3: wireframing or rough design | 02:07 |
79 | Step 4: pixel perfect design | 18:00 |
80 | Step 5: creating the page structure | 05:03 |
81 | Step 6: coding the page structure with HTML | 04:44 |
82 | What are SVGs? | 03:01 |
83 | How to include images in our HTML site | 03:07 |
84 | Finishing the header and navigation | 03:42 |
85 | HTML forms: sending data | 05:41 |
86 | HTML forms: working with textareas | 03:12 |
87 | Creating the footer with multiple columns | 03:34 |
88 | How to style the header and menu bar | 10:54 |
89 | Setting the font family in our project | 00:40 |
90 | How to style HTML forms and inputs | 07:55 |
91 | How to style the micro blog entries | 03:33 |
92 | How to style the page footer | 06:38 |
93 | "Hello, world" with Flask | 08:01 |
94 | Using render_template to send longer HTML strings | 04:36 |
95 | What is Jinja2? | 05:37 |
96 | Jinja2 Expressions | 08:21 |
97 | Working with data structures in Jinja2 | 06:38 |
98 | Conditional statements in Jinja2 | 05:24 |
99 | Using loops in Jinja2 | 06:09 |
100 | Setting up our Microblog project with Flask | 06:41 |
101 | Receiving form data using Flask | 06:27 |
102 | Displaying past entries in the Microblog project | 04:36 |
103 | Formatting dates correctly in our entries | 03:08 |
104 | Introduction to MongoDB | 06:49 |
105 | Accessing MongoDB with Compass and Atlas | 09:14 |
106 | Storing Microblog entries in MongoDB | 06:35 |
107 | Retrieving the Microblog entries from MongoDB | 03:08 |
108 | How to use Flask's app factory pattern | 02:49 |
109 | What is the requirements.txt file? | 03:52 |
110 | What is Heroku? | 09:56 |
111 | The end result of this section: a fully deployed app | 01:27 |
112 | Getting our app ready for Heroku | 04:59 |
113 | Deploying our app to Heroku | 09:37 |
114 | Hiding the MongoDB connection details from our code | 09:37 |
115 | Defining Jinja variables using the 'set' keyword | 04:13 |
116 | Jinja filters to call inline functions using the pipe operator | 02:53 |
117 | Jinja macros to improve reusability and remove duplication | 07:32 |
118 | Jinja inheritance using 'extends' and 'block' | 07:05 |
119 | How to use CSS style tags with inheritance | 05:49 |
120 | Handling CSS in larger apps with inheritance | 05:26 |
121 | Jinja tests using the 'is' keyword | 06:45 |
122 | The Jinja Environment and Rendering Context | 05:52 |
123 | Routing with Jinja using url_for in your templates | 07:40 |
124 | Habit tracker project overview | 01:53 |
125 | Displaying and saving habits | 14:00 |
126 | Styling the habit tracker | 11:24 |
127 | Adding date navigation | 14:05 |
128 | Styling the date navigation | 07:20 |
129 | Completing habits | 15:30 |
130 | Adding Flask blueprints | 07:25 |
131 | Using MongoDB in the habit tracker | 16:19 |
132 | Deploying our app to Heroku | 08:07 |
133 | Jinja Includes with the include keyword | 13:37 |
134 | Whitespace control in Jinja | 04:30 |
135 | Jinja escaping and unescaping | 03:00 |
136 | The call block for Jinja macros | 05:16 |
137 | Portfolio Project Overview | 02:00 |
138 | Making our Flask app for this project | 05:14 |
139 | The base template and nav bar | 08:01 |
140 | Adding an about page to our Flask app | 03:17 |
141 | Adding a contact page to our Flask app | 07:19 |
142 | Introduction to CSS Grid | 12:44 |
143 | Media queries with CSS for responsive development | 04:34 |
144 | Displaying projects in the homepage using CSS Grid | 22:10 |
145 | Creating the individual project pages | 19:39 |
146 | Error handling with Flask using app.errorhandler | 04:14 |
147 | What are cookies? What are sessions? | 08:39 |
148 | Registering users in your Flask apps | 11:28 |
149 | Logging users in with Flask | 07:42 |
150 | Password hashing (or encryption) with passlib | 09:18 |
151 | Creating a 'login required' decorator | 07:05 |
152 | Project overview and CSS variables | 15:18 |
153 | Adding a nav bar | 15:22 |
154 | Adding a footer | 01:05 |
155 | Putting the page layout together | 02:57 |
156 | How to toggle dark mode in a Flask app | 09:54 |
157 | Create a form with WTForms | 07:04 |
158 | Render a WTForm in our template | 18:29 |
159 | Receive and validate data using WTForms | 14:00 |
160 | Displaying a table of all movies | 11:17 |
161 | Creating the movie details page | 10:07 |
162 | Setting movie ratings | 12:34 |
163 | Set the last watched date | 03:23 |
164 | Create a custom WTForm Widget | 07:05 |
165 | Editing movies and pre-populating a form | 07:24 |
166 | Add user signups to a Flask app | 09:47 |
167 | Add user logins to a Flask app | 09:43 |
168 | Personalize pages based on the logged in user | 08:12 |
169 | Add user logouts to a Flask app | 02:24 |
170 | Deploy our Flask app to Heroku | 08:54 |
171 | Concurrency in Heroku with gunicorn | 05:31 |