Get $1 credit for every $25 spent!

Coding with Python: The Ultimate Training for Aspiring Developers Bundle

Ending In:
Add to Cart - $49.99
Add to Cart ($49.99)
$691
92% off
wishlist
Courses
6
Lessons
883
Enrolled
146

What's Included

Product Details

Access
Lifetime
Content
34.0 hours
Lessons
316

Complete Python Course: Learn Python by Doing

Dive Into the Most Loved Programming Language & Start Your Journey as a Job-Ready Developer

By Jose Salvatierra | in Online Courses

Demand for Python is booming in the job market and it is a skill that can help you enter some of the most exciting industries, including data science, web applications, home automation and many more. Python is one of the "most loved” and “most wanted” programming languages according to recent industry surveys. If people are not using Python already, they want to start using Python. With 34 hours of instruction, this course will take you from beginner to expert in Python. It will cover major topics including Object-Oriented Programming, Web Scraping, GUI development, and more. This course will make it easy for you to learn Python and get ahead of your competition.

6,067 positive ratings from 25,596 students enrolled

  • Access 316 lectures & 34 hours of content 24/7
  • Get a broader & deeper experience in Python
  • Start at zero & become an expert whilst learning all about the inner workings of Python
  • Learn how to write professional Python code like a professional Python developer
  • Develop a long-lasting love for Python & programming by creating good programming habits
  • Explore the wider possibilities of what you can do w/ Python, including databases, web development & web scraping
  • Become job-ready by learning about best practices, Selenium, unit testing, & all of the major Python topics

"Jose Salvatierra is wonderful teacher. His command on the subject is awesome and he gives complete effort and shows complete dedication to make his student understand thoroughly. I recommend this course for sure." – Munish Kumar Sharma

Instructors

Jose Salvatierra, Founder of Teclado and Software Engineer
121,402 Total Students
25,425 Reviews
Jose Salvatierra has been teaching computer science and playing and teaching music (grades 1 to 8) for over four years, to students of all ages and all skill levels. He started programming at the age of 10, just a couple years after he started studying music, when his dad, excited that he had shown interest in similar things to himself, taught him the basics of Marin Saric’s METAL. Shortly thereafter they moved on to REALbasic, and from there Jose started learning Java and C.

Rob Percival, Founder of Codestars
1,542,386 Total Students
318,693 Reviews
Rob Percival is a Web Developer and Teacher with a degree in Mathematics from Cambridge University. After building websites for friends and family for fun, he soon learned that web development was a very lucrative career choice. He gave up his successful (and sometimes stressful) job as a teacher to work part time and today, couldn't be happier.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web & mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Updates included
  • Experience level required: all levels

Requirements

  • Any device with basic specifications

Course Outline

  • Your First Program
  • Intro to Python
    • Overview of the course curriculum - 2:48
    • Our Python coding environment - 2:28
    • Writing our first code! Variables and printing - 4:05
    • Community & Support - 6:00
    • Numbers in Python - 3:10
    • Calculating the remainder of a division - 4:09
    • Python strings - 6:57
    • Python string formatting - 7:08
    • Getting user input in Python - 8:07
    • A note about f-strings in code exercises
    • Booleans and comparisons in Python - 4:26
    • and & or in Python - 8:50
    • Lists in Python - 8:05
    • Tuples in Python - 5:29
    • Sets in Python - 2:45
    • Advanced set operations - 4:51
    • Python dictionaries - 7:46
    • Length and sum - 2:47
    • Joining a list - 2:04
  • Python fundamentals
    • If statements in Python - 12:21
    • While loops in Python - 6:14
    • For loops in Python - 7:27
    • Destructuring syntax - 3:19
    • Iterating over dictionaries - 2:29
    • Break and continue - 4:11
    • A couple more loop examples
    • The else keyword with loops - 3:48
    • Finding prime numbers with for loops - 5:35
    • List slicing in Python - 4:02
    • List comprehension in Python - 9:02
    • Comprehensions with conditionals - 6:16
    • Set and dictionary comprehensions - 5:07
    • The zip function - 2:42
    • Functions in Python - 4:10
    • Arguments and parameters - 10:15
    • Functions and return values in Python - 9:25
    • Default parameter values - 7:26
    • Lambda functions in Python - 6:08
    • First class and higher order functions - 8:31
  • Milestone Project 1
    • Code for this section
    • Installing Python in your computer - 2:18
    • Installing PyCharm in your computer - 2:56
    • Creating our first PyCharm project - 5:45
    • Setting up PyCharm font and display settings - 2:43
    • Milestone Project brief
    • Coding our application's menu in Python - 13:19
    • Adding new movies to our application - 9:37
    • Showing the user their movies - 6:58
    • Finding movies and retrieving their details - 12:48
  • Object-Oriented Programming with Python
    • Intro to Object-Oriented Programming with Python - 17:02
    • More about classes and objects - 9:17
    • Parameter naming in Python - 3:54
    • Magic methods in Python - 12:57
    • Inheritance in Python - 8:45
    • The @property decorator - 4:19
    • @classmethod and @staticmethod in Python - 7:27
    • More @classmethod and @staticmethod examples - 12:06
  • Errors in Python
    • Code samples for this section
    • Intro to errors in Python - 13:13
    • Built in errors in Python - 17:58
    • Raising errors in Python - 10:58
    • Creating our own errors in Python - 13:42
    • Dealing with Python errors - 9:00
    • The on success block and re-raising exceptions - 11:21
    • Handling those pesky user errors! - 14:55
    • Debugging with Pycharm - 16:37
    • Further reading
  • Files in Python
    • Code for this section
    • Files in Python - 10:55
    • Python Exercise: copying files - 20:38
    • CSV files with Python - 9:35
    • How to use the csv module to read and write CSV files more easily
    • JSON files with Python - 17:33
    • Using the with syntax in Python - 5:01
    • Importing our own files - 10:28
    • Python relative imports: children - 15:18
    • Python relative imports: parents - 5:44
    • Import errors and running as a Python script - 5:26
    • Further reading
  • Databases in Python & Milestone Project 2
    • Code for this section
    • Intro to Milestone Project 2 - 5:53
    • Milestone Project 2 Brief
    • Milestone Project with lists - 17:52
    • Storing books in files - 19:30
    • Using JSON instead of CSV - 9:58
    • Intro to databases with Python - 7:03
    • Using SQLite in Python - 2:37
    • Some database jargon - 4:08
    • Creating our books table using Python - 5:49
    • Inserting books using Python - 6:19
    • SELECT examples - 3:12
    • Getting all our books - 6:30
    • UPDATE and DELETE - 2:14
    • Filtering with WHERE - 4:59
    • Finishing the Milestone Project - 7:46
    • Ordering and limiting - 2:37
    • Developing our context manager in Python - 10:11
    • Errors in context managers - 6:55
    • Further reading
  • Type hinting in Python
    • Further reading - 1:44
    • Typing in Python - 12:10
  • Advanced built-in functions in Python
    • Generators in Python - 12:39
    • Python generator classes and iterators - 8:15
    • The filter() function in Python - 8:43
    • Iterables in Python - 7:48
    • The map() function in Python - 5:39
    • any() and all() in Python - 4:59
    • The enumerate() function - 4:19
    • So what other things evaluate to True or False?
    • Further reading
  • Advanced Python Development
    • Mutability in Python - 11:49
    • Argument mutability in Python - 12:16
    • Default values for parameters - 5:03
    • Mutable default arguments (bad idea) - 6:38
    • Argument unpacking in Python - 11:16
    • Queues in Python - 3:20
    • Some interesting Python collections - 25:55
    • Timezones - 8:46
    • Dates and time in Python - 12:46
    • Timing your code with Python - 12:32
    • Regular expressions - 8:28
    • Regex examples - 13:36
    • Regex in Python - 13:07
    • Introduction to logging in Python - 10:35
    • Logging to a file and other features - 4:16
    • The built-in itertools module
    • Further reading
  • Web Scraping with Python
    • Code for this session
    • Understanding HTML with BeautifulSoup - 18:44
    • More complex HTML parsing - 22:18
    • Structuring our parsing program better - 5:40
    • Splitting HTML locators out of our Python class - 4:03
    • Understanding HTML with the browser - 6:35
    • Scraping our first website with Python - 6:42
    • Milestone Project 3: A Quote Scraper - 4:13
    • Quotes Project 2: Structuring a scraping app in Python - 2:41
    • Quotes Project 3: Getting our locators - 5:09
    • Quotes Project 4: Crafting our quote parser - 4:51
    • Quotes Project 5: The quotes page - 4:30
    • Quotes Project 6: Recap of the project - 3:54
    • Milestone Project 4: A Book Scraper + application - 5:01
    • Books Project 2: Recap of HTML locators - 4:53
    • Books Project 3: Creating locators in Python - 4:26
    • Books Project 4: Creating our page - 3:27
    • Books Project 5: Creating our book parser - 11:01
    • Books Project 6: Writing our app file - 3:55
    • Books Project 7: Sorting the books - 8:50
    • Books Project 8: Constructing our menu - 6:02
    • ASIDE: The best way to write user menus - 1:28
    • Books Project 9: Getting multiple pages - 2:37
    • Books Project 10: Multiple pages in Python - 5:26
    • Books Project 11: Getting the page count in Python - 6:33
    • Books Project 12: Adding logging to our Python project - 20:28
    • A word on scraping pages with JavaScript - 3:14
    • A note on scraping and robots.txt
  • Browser automation with Selenium
    • Introduction to this section - 1:38
    • Code for this section
    • Review of our quotes scraping code - 5:01
    • Downloading chromedriver - 2:00
    • Using Chrome in our scraping code - 6:26
    • Our new page locators - 3:44
    • Interacting with dropdowns - 4:07
    • Selecting tags - 5:17
    • Searching for quotes - 2:17
    • Encapsulating logic more simply - 5:03
    • Adding some error handling - 1:39
    • Implicit and explicit waits in Selenium - 6:49
    • Adding waits to our program code - 7:04
  • Asynchronous Python Development
    • Code samples for this section
    • A glossary of terms used in concurrency
    • The Dining Philosophers Problem - 7:38
    • Processes and threads - 9:24
    • The Python GIL - 10:30
    • Example: threads in Python - 12:40
    • Using Python concurrent.futures: the ThreadPoolExecutor - 3:08
    • Don't kill threads! - 1:48
    • Multiprocessing in Python - 7:24
    • Using Python concurrent.futures: the ProcessPoolExecutor - 2:15
    • Dealing with shared state in threads - 8:31
    • Queuing in threads with shared state - 12:25
    • Using Python generators instead of threads - 4:50
    • Our first single-threaded task scheduler in Python - 6:04
    • Yielding from another iterator in Python - 5:36
    • Receiving data through yield - 9:34
    • The async and await keywords - 6:10
    • Watch these talks for more explanations and examples! - 1:52
    • Our asynchronous scraper - 4:42
    • Making our first async request in Python - 14:49
    • Getting multiple pages efficiently - 10:23
    • Using async_timeout for security - 1:46
    • Turning our book scraping project async - 10:16
    • A note on HTTPS with Python and Mac OS X - 3:12
  • Python on the console and managing project dependencies
    • Running Python in the console - 8:49
    • Terminal video: running Python - 5:50
    • Terminal video: what is a virtualenv? - 10:43
    • Terminal video: navigating the terminal and using virtualenv - 9:49
    • Terminal video: using Pipenv - 9:38
    • Terminal video: Pipenv and virtualenv - 4:05
    • Summary e-book of using Pipenv
  • Web development with Flask
    • Setting up our project with Pipenv - 5:42
    • Code samples for this section
    • Our first Flask endpoint - 7:37
    • Returning information with Flask and Python - 4:55
    • Rendering HTML with Flask and Python - 6:24
    • Error pages and Jinja2 inheritance - 11:39
    • Rendering forms with Flask and Python - 14:21
    • Accessing POST form data with Flask - 4:48
    • Putting our form in a single endpoint - 3:02
    • Using Jinja2 for loops to create a nicer homepage - 7:57
    • Adding navigation to our website - 4:54
  • Interacting with APIs with Python
    • Code for this section
    • Signing up to OpenExchangeRates - 1:41
    • Getting all exchange rates from the API - 5:30
    • Creating a currency exchange library - 7:25
    • Caching functions with functools - 4:49
    • TTL caches with cachetools - 2:04
  • Decorators in Python
    • A simple decorator in Python - 6:07
    • Using a @syntax - 3:23
    • Functools wraps in Python - 1:55
    • Decorating functions with parameters - 4:56
    • Decorators with parameters - 9:50
    • Functions that accept multiple arguments - 5:29
    • Generic decorators for any function - 3:54
    • Multiple decorators for one function?
  • Advanced Object-Oriented Programming
    • Intro to multiple inheritance with Python - 13:23
    • Intro to ABCs in Python - 8:06
    • The usefulness of ABCs - 3:20
    • The relationship between ABCs and interfaces - 6:49
    • The property setter in Python - 11:08
    • Pythonic vs. Non-Pythonic
  • GUI Development with Tkinter
    • Code for this section
    • Setting up Tkinter - 2:47
    • Hello world in Tkinter - 7:37
    • Labels and fields - 5:22
    • Packing components - 11:57
    • Using frames for different layouts - 3:41
    • Starting our text editor project - 0:56
    • Tkinter notebooks and creating files - 3:32
    • Adding a menu to our application - 4:11
    • Saving files to disk - 7:59
    • Opening files - 4:19
    • Binding shortcuts in Tkinter - 4:42
    • Checking our tabs for unsaved changes - 8:17
    • Confirming exit with unsaved changes - 4:24
    • Closing individual tabs - 5:21
    • Adding another menu - 1:55
    • Adding a permanent scrollbar to our text area - 4:22
  • Unit testing with Python
    • Introduction to this section - 2:53
    • Code for this section
    • Testing functions - 7:26
    • Testing for errors - 2:37
    • Testing our multiplication function - 9:08
    • Writing a printer class for testing - 1:59
    • Testing classes - 4:44
    • More Printer tests - 9:26
    • Testing external libraries - 9:53
    • Conclusion of this section - 0:58
  • Algorithms and Data Structures
    • Presentation: queues, stacks, and complexity - 9:40
    • A conference talk about Big-O
    • Presentation: binary search - 6:47
    • Presentation: binary trees - 5:53
    • Presentation: traversal of binary trees - 7:12
    • Presentation: adding elements to a binary tree - 7:00
    • Adding elements to a binary tree in Python - 10:58
    • Recursion and inorder traversal in Python - 14:35
    • Finding nodes in a tree with Python - 3:21
    • How do you delete nodes from a binary tree? - 9:29
    • Deleting nodes in code with Python - 14:10
    • Deleting nodes with two children in code - 18:44
    • Testing our binary tree! - 2:37
  • Python libraries
    • Python libraries overview - 16:35
    • Using pylint - 12:40
    • Using yapf - 7:42
    • Sending e-mails with smtplib - 7:35
    • Sending e-mails with Mailgun - 9:53
    • Creating a re-usable Mailgun library - 7:11
    • Sneak peek: my IDE setup! - 9:30
  • Python Reference / Refresher
    • Introduction to this section - 1:01
    • Variables in Python - 8:26
    • String formatting in Python - 6:26
    • Getting user input - 5:16
    • Lists, tuples, and sets - 6:31
    • Advanced set operations - 4:39
    • Booleans in Python - 4:59
    • If statements in Python - 8:17
    • The in keyword - 2:02
    • If statements with the 'in' keyword - 8:18
    • Loops in Python - 11:07
    • List comprehensions - 7:24
    • Dictionaries - 8:31
    • Destructuring variables - 8:28
    • Functions in Python - 10:41
    • Function arguments and parameters - 7:40
    • Default parameter values - 3:54
    • Functions returning values - 7:19
    • Lambda functions in Python - 7:52
    • Dictionary comprehensions - 4:01
    • Unpacking arguments - 10:24
    • Unpacking keyword arguments - 8:44
    • Object-Oriented Programming in Python - 15:52
    • Magic methods: str and repr - 6:25
    • Class methods and static methods - 14:03
    • Class inheritance - 8:32
    • Class composition - 6:08
    • Type hinting - 5:08
    • How imports work in Python - 9:33
    • Relative imports in Python - 8:52
    • Errors in Python - 12:47
    • Custom error classes - 5:04
    • First-class functions - 7:52
    • Simple decorators in Python - 7:12
    • The 'at' syntax for decorators - 3:32
    • Decorating functions with parameters - 2:24
    • Decorators with parameters - 4:50
    • Mutability in Python - 6:03
    • Mutable default parameters (and why they're a bad idea) - 4:27

View Full Curriculum


Access
Lifetime
Content
16.0 hours
Lessons
148

REST APIs with Flask & Python

Build Professional REST APIs with Python, Flask, Flask-RESTful & Flask-SQLAlchemy

By Jose Salvatierra | in Online Courses

Say no more to copy-pasting code that you don’t understand. This course will guide you in creating simple, intermediate, and advanced REST APIs including authentication, deployments, caching, and much more. Put simply, a REST API is an application that accepts data from clients and returns data back. With the data, it can do many things. For example, a REST API we build in this course accepts text data from the client, processes it and stores it in a database, and then returns some data back so the client can show something to the user. Using Flask and popular extensions Flask-RESTful, Flask-JWT, and Flask-SQLAlchemy you'll dive right into developing complete, solid, production-ready REST APIs.

8,513 positive ratings from 48,857 students enrolled

  • Access 148 lectures & 16 hours of content 24/7
  • Create resource-based, production-ready REST APIs using Python, Flask, & popular Flask extensions
  • Handle secure user registration & authentication w/ Flask
  • Using SQLAlchemy & Flask-SQLAlchemy to easily & efficiently store resources to a database
  • Understand the complex intricacies of deployments & the performance of Flask REST APIs

"Jose is an excellent instructor, explaining the course material concisely. The course has some cool projects as well. If in need of assistance, he's also there to answer without delay. For people learning about REST APIs, this course is definitely a must-take. – Dimitris Tsaknakis

Instructors

Jose Salvatierra, Founder of Teclado and Software Engineer
121,402 Total Students
25,425 Reviews
Jose Salvatierra has been teaching computer science and playing and teaching music (grades 1 to 8) for over four years, to students of all ages and all skill levels. He started programming at the age of 10, just a couple years after he started studying music, when his dad, excited that he had shown interest in similar things to himself, taught him the basics of Marin Saric’s METAL. Shortly thereafter they moved on to REALbasic, and from there Jose started learning Java and C.

Rob Percival, Founder of Codestars
1,542,386 Total Students
318,693 Reviews
Rob Percival is a Web Developer and Teacher with a degree in Mathematics from Cambridge University. After building websites for friends and family for fun, he soon learned that web development was a very lucrative career choice. He gave up his successful (and sometimes stressful) job as a teacher to work part time and today, couldn't be happier.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web & mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Updates included
  • Experience level required: intermediate

Requirements

  • Any device with basic specifications
  • Some prior programming experience in any programming language will be helpful

Course Outline

  • Your First Program
  • Welcome
    • How to take this course
    • Before we get started: a self assessment
    • Python on Windows
    • Python on Mac
  • A Full Python Refresher
    • Introduction to this section - 1:01
    • Access the code for this section here
    • Variables in Python - 8:26
    • String formatting in Python - 6:26
    • Getting user input - 5:16
    • Writing our first Python app - 3:19
    • Lists, tuples, and sets - 6:31
    • Advanced set operations - 4:39
    • Booleans in Python - 4:59
    • If statements - 8:17
    • The 'in' keyword in Python - 2:02
    • If statements with the 'in' keyword - 8:18
    • Loops in Python - 11:07
    • List comprehensions in Python - 7:24
    • Dictionaries - 8:31
    • Destructuring variables - 8:28
    • Functions in Python - 10:41
    • Function arguments and parameters - 7:40
    • Default parameter values - 3:54
    • Functions returning values - 7:19
    • Lambda functions in Python - 7:52
    • Dictionary comprehensions - 4:01
    • Unpacking arguments - 10:24
    • Unpacking keyword arguments - 8:44
    • Object-Oriented Programming in Python - 15:52
    • Magic methods: str and repr - 6:25
    • @classmethod and @staticmethod - 14:03
    • Class inheritance - 8:32
    • Class composition - 6:08
    • Type hinting in Python 3.5+ - 5:08
    • Imports in Python - 9:33
    • Relative imports in Python - 8:52
    • Errors in Python - 12:47
    • Custom error classes - 5:04
    • First-class functions - 7:52
    • Simple decorators in Python - 7:12
    • The 'at' syntax for decorators - 3:32
    • Decorating functions with parameters - 2:24
    • Decorators with parameters - 4:50
    • Mutability in Python - 6:03
    • Mutable default parameters (and why they're a bad idea) - 4:27
  • Your first REST API
    • What is an API?
    • Installing Flask - 1:58
    • Access the code for this section here
    • Your first Flask application - 9:54
    • HTTP Verbs - 10:03
    • REST Principles - 7:42
    • Creating our application endpoints - 8:25
    • Returning a list of stores - 7:00
    • Implementing other endpoints - 8:48
    • Calling the API from JavaScript - 6:39
    • Using Postman for API testing - 12:08
    • Conclusion of this section - 0:50
  • Flask-RESTful for more efficient development
    • Virtualenvs and setting up Flask-RESTful - 8:05
    • Access the code for this section here
    • Your first Flask-RESTful app - 10:39
    • Test-first API design—what is that? - 10:48
    • Creating our Item Resource - 10:33
    • The ItemList and creating Items - 7:16
    • Improving code and error control - 7:16
    • Authentication and logging in—part 1 - 12:17
    • Authentication and logging in—part 2 - 7:18
    • DELETE to delete Items - 4:33
    • PUT to create or update Items - 4:26
    • Advanced request parsing with Flask-RESTful - 6:16
    • Optimising our final code and request parsing - 3:53
  • Storing resources in a SQL database
    • Setting up our project - 3:36
    • Access the code for this section here
    • Running a SQLite database and interacting with it from Python - 13:15
    • Logging in and retrieving Users from a database - 16:42
    • Signing up and writing Users to a database - 13:31
    • Preventing duplicate usernames when signing users up - 2:57
    • Retrieving our Item resources from a database - 8:59
    • Writing our Item resources to a database - 13:18
    • Deleting our Item resources from the database - 4:01
    • Refactoring insertion of items - 5:00
    • The PUT method with database interaction - 4:59
    • Retrieving many items from the database - 6:42
    • Advanced Flask-JWT Configuration
  • Simplifying storage with Flask-SQLAlchemy
    • Access the code for this section here
    • Setting up this section's project - 6:08
    • Improving the project structure and maintainability - 4:59
    • Creating User and Item models - 23:05
    • Verifying the app works after our changes - 5:19
    • Advanced Postman: environments and tests - 11:20
    • Errata: small mistake in code in the next video
    • Telling SQLAlchemy about our tables and columns - 10:45
    • Implementing the ItemModel using SQLAlchemy - 15:16
    • Implementing the UserModel using SQLAlchemy - 9:42
    • Easily displaying the ItemList resource with SQLAlchemy - 5:07
    • No more creating tables manually—telling SQLAlchemy to create tables - 2:39
    • Creating a new model: StoreModel - 12:33
    • Creating the Store Resource - 9:46
    • Final testing of this section's API - 5:59
  • Git—version control
    • Installing Git on Mac and Windows - 4:12
    • What is a Git repository? - 5:27
    • The Git workflow—part 1 - 4:31
    • The Git workflow—part 2, including GitHub - 5:17
    • Using SSH keys for security - 6:53
    • The README file - 5:25
  • Deploying Flask apps to Heroku
    • Access the code for this section here
    • What is Heroku? - 6:33
    • Getting our code into GitHub - 7:47
    • Setting up Heroku for Flask - 4:28
    • Adding the required files to the project - 10:49
    • Logs in Heroku and troubleshooting errors - 9:01
    • Testing the deployed API with Postman - 3:56
    • Adding PostgreSQL to our Heroku app - 9:20
    • Working with Git and automatic deploys - 6:30
  • Deploying Flask apps to our own server
    • Setting up a DigitalOcean server - 11:57
    • Want to deploy to AWS?
    • Installing PostgreSQL in Ubuntu 16.04 - 8:09
    • Creating a UNIX user in Ubuntu 16.04 - 7:45
    • Setting up our new user with PostgreSQL permissions - 9:06
    • Setting up nginx and our REST API - 19:34
    • Setting up uWSGI to run our REST API - 24:04
    • Testing our API to make sure everything works - 7:20
  • Security in your REST APIs
    • Welcome to this section
    • Security in REST APIs e-book
    • Getting our domain name - 6:14
    • Setting up Cloudflare - 8:26
    • What is DNS? - 5:03
    • Setting our DNS records - 7:37
    • Verifying everything works—this is important! - 1:26
    • Creating our SSL certificate in Cloudflare - 2:42
    • Configuring nginx for SSL - 12:00
    • Extra technical SSL resources
    • Conclusion of this section
  • Token refreshing and Flask-JWT-Extended
    • Welcome to this section
    • A recap of the code + a few changes! - 11:25
    • Creating a User Resource for testing - 7:02
    • Testing our new Resource with Postman - 5:38
    • Logging in with Flask-JWT-Extended - 17:20
    • Testing the login with Postman - 2:59
    • Adding JWT Claims - 8:35
    • Getting the JWT identity in and endpoint and @jwt_optional - 5:31
    • What is a fresh token? - 6:49
    • Performing token refresh in our REST API - 8:24
    • Requiring a fresh token in an endpoint - 2:43
    • Customizing Flask-JWT-Extended callbacks and responses - 7:19
    • Blacklisting with Flask-JWT-Extended - 5:55
    • Logging users out in our REST API - 6:32
    • E-book: complete review of the API so far
    • Flask-JWT-Extended further reading

View Full Curriculum


Access
Lifetime
Content
12.0 hours
Lessons
110

Advanced REST APIs with Flask & Python

Bring Your REST API Development to a Whole New Level by Getting Familiar with More of the Flask Ecosystem

By Jose Salvatierra | in Online Courses

This course starts with a simple REST API and teaches you everything you need to know about it—you can follow along with absolutely no issues. With 110 lectures, this course covers MArshmallow, Stripe, OAuth, Python 3.7, and more. There's even an e-book to get you up to speed quickly with this starter REST API! This course introduces new features and technologies by baking them into this application so you can see how a professional REST API is developed. Every new feature is added to a fully working application and tested! You'll also understand more about how to build features incrementally to get them to your users quickly and minimize risk!

305 positive reviews from 4,932 students enrolled

  • Access 110 lectures & 12 hours of content 24/7
  • Integrate advanced functionality in your API such as image upload, payments, or user confirmation e-mails
  • Improve operations of existing REST APIs w/ database migrations & extensive refactoring knowledge
  • Bring your REST API development to a whole new level by getting familiar w/ more of the Flask ecosystem
  • Easily deploy documentation pages & test your API w/ Postman's collection runner

"Truly an advanced course for REST API's and it covered a great deal more. I took Jose's Complete Python course as well as the basic REST API course and they were excellent preparations for this course." – David Pinhasik

Instructors

Jose Salvatierra, Founder of Teclado and Software Engineer
121,402 Total Students
25,425 Reviews
Jose Salvatierra has been teaching computer science and playing and teaching music (grades 1 to 8) for over four years, to students of all ages and all skill levels. He started programming at the age of 10, just a couple years after he started studying music, when his dad, excited that he had shown interest in similar things to himself, taught him the basics of Marin Saric’s METAL. Shortly thereafter they moved on to REALbasic, and from there Jose started learning Java and C.

Rob Percival, Founder of Codestars
1,542,386 Total Students
318,693 Reviews
Rob Percival is a Web Developer and Teacher with a degree in Mathematics from Cambridge University. After building websites for friends and family for fun, he soon learned that web development was a very lucrative career choice. He gave up his successful (and sometimes stressful) job as a teacher to work part time and today, couldn't be happier.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web & mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Updates included
  • Experience level required: advanced

Requirements

  • Any device with basic specifications
  • Programming experience with Python (preferable) or another Object-Oriented Programming language
  • Some knowledge of how the web works (requests and responses) will be helpful
  • PyCharm (free) or another code editor

Course Outline

  • Your First Program
  • Introduction
    • Access the e-book for Section 1 here!
    • Our project and endpoints - 5:44
    • Reviewing the beginner course code - 9:53
    • Simplifying our error handling - 1:48
    • Refactoring our resources - 4:12
    • Should we have unique names? - 4:21
    • Adding basic type hinting - 8:33
    • Adding custom JSON type - 6:45
    • Using the current class as a type hint - 3:13
    • Using Black for code formatting - 10:09
    • Improving errors with constants - 8:02
    • @classmethods across the board - 6:56
    • Testing our API with Postman - 9:20
  • Serialization with Marshmallow
    • Serialization with marshmallow - 8:45
    • Deserialization with marshmallow - 6:16
    • Migrating from virtualenv to Pipenv - 16:23
    • Postman collection for this section
    • Using vanilla Marshmallow with the API - 14:23
    • Introduction to Flask-Marshmallow - 13:29
    • Adding items to our REST API - 12:38
    • Adding stores to our REST API - 9:27
    • Deduplicating error handling - 4:19
  • E-mail confirmations
    • Introduction to e-mail confirmation - 5:36
    • Postman collection for this section
    • Adding an activated property - 3:28
    • Activating users manually - 6:00
    • Telling users they are active - 15:27
    • Setting up Mailgun - 3:12
    • Sending e-mails with Mailgun (Part 1) - 13:50
    • Sending emails with Mailgun (Part 2) - 3:43
    • Creating our Mailgun library file - 7:56
    • Using .env files in Flask - 5:48
    • Adding more configuration to .env - 1:52
    • Error handling in Mailgun - 9:10
  • Advanced e-mail confirmation
    • Postman collection for this section
    • Creating the ConfirmationModel - 15:30
    • Changes in our UserModel - 8:11
    • Creating our ConfirmationResource - 17:24
    • Updating our UserResource - 5:03
    • Adding the last confirmation to the user schema - 3:27
    • Fixing our app.py - 6:27
    • Cross-resource dependencies are (generally) bad - 5:02
    • What are localisation and internationalisation? - 11:40
    • Storing strings in config files - 4:12
    • Creating a simple translation library - 9:44
    • Updating our resources to use translations - 10:55
    • Adding a new language to our API - 5:23
    • What is Flask-Babel? - 6:11
    • Common pitfalls and advice - 3:56
  • Postman documentation and tests
    • Postman collection for this section
    • Collection and request descriptions - 4:07
    • Recap of Postman environments - 4:36
    • JavaScript tests in Postman - 14:07
    • Running entire collections in Postman - 15:34
    • Adding example requests and responses - 8:48
    • Previewing our Postman documentation - 0:35
    • Publishing our documentation page - 3:47
    • More options for publishing documentation - 6:27
  • Image uploads
    • Postman collection for this section
    • Errata and code changes required
    • Installing Flask-Uploads - 1:34
    • Config files in Flask - 16:41
    • What are wsgi and Werkzeug? - 12:06
    • Creating our image helper library - 16:56
    • Creating our image schema - 6:36
    • Creating our image upload resource - 9:10
    • Trying out our image upload - 8:22
    • Retrieving and deleting images - 9:59
    • Another example: user avatars - 10:58
    • Adding the avatar resource - 5:46
  • Database migrations
    • Getting a PostgreSQL database - 1:50
    • What's in our starter code? - 1:27
    • Postman collection for this section
    • Connecting to our remote database - 3:10
    • Initialising Flask-Migrate and Alembic - 6:32
    • Creating our initial table structure - 8:06
    • Our first database migration - 3:04
    • Checking the Alembic script (important!) - 6:21
    • Adding a new column with migrations - 2:01
    • Problems that can happen while migrating - 5:34
    • A word of caution! - 1:46
    • Defining a SQLAlchemy naming convention - 6:22
    • When should you read documentation? - 5:06
  • Third party login with OAuth
    • Introduction to OAuth 2.0 - 9:57
    • What's in our starter code? - 3:34
    • Postman collection for this section
    • Creating a GitHub OAuth App - 3:56
    • Flask-OAuthlib - 4:13
    • Setting up our GitHub client - 7:49
    • Our GithubLogin resource - 5:30
    • What is Flask's g? - 5:45
    • What is a tokengetter? - 10:45
    • Finishing our GithubAuthorize resource - 5:42
    • Adding some error handling - 2:14
    • Setting user passwords - 8:42
    • Using url_for with Flask-RESTful - 2:59
  • Payments with Stripe
    • Setting up our Stripe account - 6:00
    • What's in our starter code? - 4:29
    • Postman collection for this section
    • Where do users pay? - 6:43
    • After payment: receiving order data - 12:24
    • Creating our OrderModel - 11:12
    • Many-to-many relationships with SQLAlchemy - 10:26
    • Using the Association Object in our Resourcee - 16:36
    • Charging orders with Stripe - 10:29
    • Calculating the amount and description - 6:45
    • Testing our OrderResource - 4:12
    • Creating a way to view existing orders - 2:41
    • When things go wrong: error handling in Stripe - 4:26
    • Security considerations in payments - 3:11

View Full Curriculum


Access
Lifetime
Content
12.0 hours
Lessons
116

Automated Software Testing with Python

Test Web Applications Using Python, BDD, Selenium WebDriver, & Postman

By Jose Salvatierra | in Online Courses

Testing automation doesn't have to be painful. Software testing is an essential skill for any developer, and this course will surely help you understand all types of test automation with Python. This course is jam-packed with all the latest technologies for you to use professionally and in personal projects including unittest, mocking and patching, Postman, Selenium, Git, and more. With 116 lectures, this class will cover every fundamental software testing skill that you need to know in order to get a job testing or to apply these skills in your existing projects.

2,178 positive reviews from 15,104 students enrolled

  • Access 118 lectures & 12 hours of content 24/7
  • Learn everything you need to know about automated software testing w/ Python
  • Know how to write complete system tests using Python & tools like Postman
  • Do browser-based acceptance testing using Behave & Selenium WebDriver
  • Know & avoid the common pitfalls and best practices when writing automated tests
  • Automate your application testing by setting up a continuous integration pipeline using Travis CI

" think this is a great course on learning Python-based automated testing for an intermediate coder. Python Refresher is helpful and appropriate, the explanations are clear and comprehensive, the pace is good, and I've learned a lot of very useful skills." – Kaelyn Lindquist

Instructors

Jose Salvatierra, Founder of Teclado and Software Engineer
121,402 Total Students
25,425 Reviews
Jose Salvatierra has been teaching computer science and playing and teaching music (grades 1 to 8) for over four years, to students of all ages and all skill levels. He started programming at the age of 10, just a couple years after he started studying music, when his dad, excited that he had shown interest in similar things to himself, taught him the basics of Marin Saric’s METAL. Shortly thereafter they moved on to REALbasic, and from there Jose started learning Java and C.

Rob Percival, Founder of Codestars
1,542,386 Total Students
318,693 Reviews
Rob Percival is a Web Developer and Teacher with a degree in Mathematics from Cambridge University. After building websites for friends and family for fun, he soon learned that web development was a very lucrative career choice. He gave up his successful (and sometimes stressful) job as a teacher to work part time and today, couldn't be happier.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web & mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Updates included
  • Experience level required: intermediate

Requirements

  • Any device with basic specifications
  • Some knowledge of how web applications work
  • Understanding of REST APIs will be helpful, but not required

Course Outline

  • Your First Program
  • Welcome!
    • How to take this course
    • A self-assessment
    • Installing Python and PyCharm on Windows
    • Installing Python and PyCharm on OS X
  • A Full Python Refresher
    • Introduction to this section - 1:01
    • Access the code for this section here
    • Variables in Python - 8:26
    • String formatting in Python - 6:26
    • Getting user input - 5:16
    • Writing our first Python app - 3:19
    • Lists, tuples, and sets - 6:31
    • Advanced set operations - 4:39
    • Booleans in Python - 4:59
    • If statements - 8:17
    • The 'in' keyword in Python - 2:02
    • If statements with the 'in' keyword - 8:18
    • Loops in Python - 11:07
    • List comprehensions in Python - 7:24
    • Dictionaries - 8:31
    • Destructuring variables - 8:28
    • Functions in Python - 10:41
    • Function arguments and parameters - 7:40
    • Default parameter values - 3:54
    • Functions returning values - 7:19
    • Lambda functions in Python - 7:52
    • Dictionary comprehensions - 4:01
    • Unpacking arguments - 10:24
    • Unpacking keyword arguments - 8:44
    • Unpacking keyword arguments - 15:52
    • Magic methods: str and repr - 6:25
    • @classmethod and @staticmethod - 14:03
    • Class inheritance - 8:32
    • Class composition - 6:08
    • Type hinting in Python 3.5+ - 5:08
    • Imports in Python - 9:33
    • Relative imports in Python - 8:52
    • Errors in Python - 12:47
    • Custom error classes - 5:04
    • First-class functions - 7:52
    • Simple decorators in Python - 7:12
    • The 'at' syntax for decorators - 3:32
    • Decorating functions with parameters - 2:24
    • Decorators with parameters - 4:50
    • Mutability in Python - 6:03
    • Mutable default parameters (and why they're a bad idea) - 4:27
  • Your first automated software test
    • Access the code for this section here
    • Setting up our project - 6:42
    • Writing our first test - 11:09
    • Testing dictionary equivalence - 5:25
    • Writing blog tests and PyCharm run configurations - 6:43
    • The repr method, and intro to TDD - 8:48
    • Integration tests and finishing the blog - 11:57
    • Mocking, patching, and system tests - 16:37
    • Patching the input method and returning values - 7:29
    • Taking our patching further - 16:03
    • The last few patches! - 7:07
    • The TestCase setUp method - 4:36
  • Testing a Flask Endpoint
    • Access the code for this section here
    • Setting our project up - 4:38
    • Creating our Flask app - 6:50
    • Our first System test - 9:56
    • Refactoring our System Tests - 6:32
  • REST API Testing, Part I
    • Access the code for this section here
    • A look at a REST API with Flask - 18:18
    • Unit testing a REST API - 8:15
    • Setting up our generic BaseTest - 9:36
    • Integration testing a REST API - 6:47
  • REST API Testing, Part II
    • Access the code for this section here
    • Setting up our project - 8:45
    • Testing foreign key constraints with Python - 5:25
    • Unit testing models and SQLAlchemy mappers - 11:03
    • Finishing our Store tests - 11:38
  • System testing a REST API
    • Access the code for this section here
    • Setting project up and creating User model - 3:58
    • Allowing users to log in - 4:10
    • Writing our User tests - 4:14
    • The setUpClass method in the BaseTest - 4:59
    • Testing user registration - 6:41
    • Finalising user System tests - 7:31
    • Writing Store System tests - 13:35
    • Writing our Item System tests and testing authentication - 22:35
  • System testing with Postman and Newman
    • Access the code and Postman files here
    • Introduction to Postman - 9:01
    • Our first Posman tests - 5:50
    • Setting and clearing environment variables in Postman - 7:04
    • Running a test folder in Postman - 7:53
    • Advanced PyCharm run configurations - 6:08
    • Installing Node and Newman - 4:43
    • Multirun in PyCharm—Running app and tests together - 3:01
  • Continuous Integration with Travis CI
    • The code for this section
    • Installing Git - 4:12
    • What is a Git repository? - 5:27
    • A local Git workflow - 4:31
    • GitHub and remote repositories - 5:17
    • Adding our project to GitHub - 4:51
    • What is Travis CI? - 2:29
    • Adding our repository to Travis - 1:38
    • The Travis config file and running tests - 10:33
    • Adding our test badge to the Readme - 2:47
  • Acceptance testing and browser automation with Selenium
    • What is acceptance testing? - 5:08
    • Introduction to our project - 3:10
    • Our first acceptance test step - 10:46
    • Getting the Chrome webdriver - 3:38
    • Verifying everything works - 5:44
    • Finishing our first test - 14:51
    • Re-using steps with the regular expression matcher - 4:00
    • Our first content test - 9:18
    • Page locators and models - 18:36
    • The blog page - 7:30
    • Using pages in navigation - 6:45
    • Don't over-generalise tests! - 2:25
    • Waits and timeouts with Selenium - 7:33
    • Debugging acceptance tests in PyCharm - 3:32
    • Our final complex scenario - 2:46
    • Filling in forms with Selenium - 13:01
    • Access the final code of this section here

View Full Curriculum


Access
Lifetime
Content
2.0 hours
Lessons
39

Git by Example

Learn Git in the Terminal/Visual Interface & Help Your Team Deliver Working Software

By Jose Salvatierra | in Online Courses

Git is an essential skill for all team members of a technology company. In order to survive, technology companies are increasingly dependent on continuous delivery to give customers a better experience. Git or other methods of Version Control are necessary in order to do this. This course will make sure you get familiar, understand, and then master this extremely popular Version Control system. By the end of this class, you'll acquire a vital and in-demand skill to boost your CV and development abilities, help your team deliver working software, and make companies love you.

"105 positive ratings from 1,380 students enrolled

  • Access 39 lectures & 2 hours of content 24/7
  • Understand what Version Control is
  • Write commit message using VIM
  • Know the basic structure of a repository
  • Organize branches via Gitflow workflow

"I found this course very helpful. I have been using Git for a while. The GitFlow workflow and use of SourceTree were new to me. Jose explained it clearly and provided an example of using SourceTree, which I found very helpful." – David Welsh

Instructors

Jose Salvatierra, Founder of Teclado and Software Engineer
121,402 Total Students
25,425 Reviews
Jose Salvatierra has been teaching computer science and playing and teaching music (grades 1 to 8) for over four years, to students of all ages and all skill levels. He started programming at the age of 10, just a couple years after he started studying music, when his dad, excited that he had shown interest in similar things to himself, taught him the basics of Marin Saric’s METAL. Shortly thereafter they moved on to REALbasic, and from there Jose started learning Java and C.

Rob Percival, Founder of Codestars
1,542,386 Total Students
318,693 Reviews
Rob Percival is a Web Developer and Teacher with a degree in Mathematics from Cambridge University. After building websites for friends and family for fun, he soon learned that web development was a very lucrative career choice. He gave up his successful (and sometimes stressful) job as a teacher to work part time and today, couldn't be happier.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web & mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Updates included
  • Experience level required: beginnen

Requirements

  • A computer running Windows, Mac OS, or basically any LINUX distribution
  • Git (which can be downloaded from http://git-scm.com)

Course Outline

  • Your First Program
  • What is version control?
    • What is version control? - 3:43
    • We will be learning Git - 2:53
    • Markdown and the README.md file - 4:32
    • What is the .gitignore file? - 4:21
    • The structure of a repository - 4:20
  • Basics of the terminal
    • What is the terminal? - 3:15
    • Moving around the file system using the terminal - 5:32
    • Moving and copying files with the terminal - 4:05
    • Displaying and replacing file contents - 3:05
    • Basics of VIM - a very powerful text editor! - 2:02
    • Inserting text in VIM - 2:55
  • Basics of Git
    • Configuring Git - 1:40
    • Initialising a Git repository: git init - 1:33
    • Initialising a Git repository (terminal video) - 1:59
    • Adding files to the staging area: git add - 4:31
    • Adding files to the staging area (terminal video) - 3:18
    • Committing files to the local repository: git commit - 4:02
    • Committing files to the local repository (terminal video) - 7:13
    • Writing appropriate commit messages: this is vital if working in teams! - 5:33
    • Adding a remote to your repository - 4:25
    • Pushing and pulling to and from the remote repository - 3:48
    • Pushing and pulling (terminal video) - 7:10
  • Branches and workflows
    • What is a branch? - 4:47
    • Creating branches in Git - 4:39
    • Creating branches (terminal video) - 5:07
    • Pushing branches to origin - 1:53
    • Bringing in branches from origin - 6:09
    • Deleting local and remote branches - 5:13
    • Merging branches: presentation - 5:32
    • Merging branches (terminal video) - 4:01
    • Reverting changes: git revert and git reset - 6:47
    • Reverting changes (terminal video) - 8:44
    • What is the "Gitflow" workflow? - 8:44
  • Gitflow and SourceTree
    • Using SourceTree to initialise a git-flow repository - 3:56
    • Creating our first Gitflow feature - 6:43
    • Finishing (and publishing) our first feature - 4:33
    • Stashing changes with SourceTree - 6:33
    • Adding remotes in SourceTree - 2:39
    • Cloning a remote repository in SourceTree - 4:23

View Full Curriculum


Access
Lifetime
Content
15.0 hours
Lessons
154

Complete Python Web Course: Build 8 Python Web Apps

Go from Beginner to Expert Using Python & Flask and Build Your Own Web Apps

By Jose Salvatierra | in Online Courses

This course will lead you down a path of understanding that may well result in an income boost or positive career change. It’s a one-stop shop covering everything you need to start creating Python web applications that engage visitors and provide them with value. Starting with the basics of Python, you’ll move onto how the internet works, before creating your first complete web apps in Python.

3,534 positive reviews from 24,521 students enrolled

  • Access 154 lectures & 15 hours of content 24/7
  • Cover Python fundamentals, programming, & user interaction
  • Discuss how the internet works, making web requests & parsing web pages to get data from them using Python
  • Explore MongoDB
  • Create a blog where users can register & publish posts
  • Build a web app that will notify you when prices of items in online stores go down

"It was a good match for me. I was already quite experienced with Python and MongoDB, but not with any web development, HTML and Flask. I really learned a lot from this course and I would definitively recommend this to my friends." – Job Almekinders

Instructors

Jose Salvatierra, Founder of Teclado and Software Engineer
121,402 Total Students
25,425 Reviews
Jose Salvatierra has been teaching computer science and playing and teaching music (grades 1 to 8) for over four years, to students of all ages and all skill levels. He started programming at the age of 10, just a couple years after he started studying music, when his dad, excited that he had shown interest in similar things to himself, taught him the basics of Marin Saric’s METAL. Shortly thereafter they moved on to REALbasic, and from there Jose started learning Java and C.

Rob Percival, Founder of Codestars
1,542,386 Total Students
318,693 Reviews
Rob Percival is a Web Developer and Teacher with a degree in Mathematics from Cambridge University. After building websites for friends and family for fun, he soon learned that web development was a very lucrative career choice. He gave up his successful (and sometimes stressful) job as a teacher to work part time and today, couldn't be happier.

Important Details

  • Length of time users can access this course: lifetime
  • Access options: web & mobile streaming
  • Certification of completion included
  • Redemption deadline: redeem your code within 30 days of purchase
  • Updates included
  • Experience level required: all levels

Requirements

  • Any device with basic specifications
  • Install Python 2.7 or Python 3.5

Course Outline

  • Your First Program
  • Your Age in Seconds
    • Get the course e-book!
    • Introduction to this section - 2:01
    • Join the live chat for discussions and Q&A
    • Installing Python - 0:53
    • Integers and Strings - 2:29
    • Variables in Python - 2:10
    • Methods—print, str, and int - 5:17
    • The format method - 4:50
    • The .format() cheatsheet
    • Getting user input with the input() method - 4:22
    • Creating our own methods in Python - 3:57
    • If statements in Python - 9:20
    • Section assignment - 2:09
    • The Age Program Python Code
  • The Price of a Chair
    • Our Development Environment - 1:31
    • Creating virtual environments fro Python development - 5:27
    • Our Age application in PyCharm - 3:32
    • (aside) Tweaking PyCharm - 5:12
    • Understanding JSON and XML - 7:36
    • Making our first HTTP GET request - 4:45
    • Finding our chair price parsing HTML - 3:59
    • Parsing HTML data using BeautifulSoup - 6:59
    • Why scraping sometimes fails
    • Using the price as a number - 6:45
    • What's a Browser program Python Code
  • A Simple Terminal Blog
    • Out MongoDB e-book
    • Installing MongoDB - 7:55
    • MongoDB FAQ
    • Introduction to MongoDB - 7:19
    • Creating a PyCharm project that uses MongoDB and pymongo - 6:35
    • Simplifying lists on Python with list comprehension - 6:19
    • Introduction to object-oriented programming - 14:01
    • Creating our first class, the Post - 6:19
    • Creating a Database class for database interactions - 14:40
    • The last few Post methods - 3:24
    • Having default parameter values in Python Methods - 5:03
    • Understanding dates in Python: the datetime module - 2:34
    • Verifying that the post methods all work - 4:53
    • The Blog class and @classmethods - 13:45
    • Verifying the Blog methods all work - 5:36
    • Starting the menu and user interactions - 9:45
    • Finalising the Menu class - 6:32
    • Finally, running the application - 3:36
    • Terminal Blog program Python Code
  • Our First Web Application
    • Introduction to REST APIs - 7:53
    • How can we make our own API? What is Flask? - 7:24
    • Python cls() and argument unpacking - 9:32
    • Creating the User model for our application - 5:22
    • Starting developing the User model - 10:19
    • Creating the login and register - 7:40
    • Finding blogs by a specific author - 6:31
    • Allowing creation of blogs and posts - 7:09
    • Creating the static resources and templates - 4:05
    • Our first template in Jinja2 - 8:35
    • Beginning CSS styling of pages - 8:01
    • The user login page - 14:32
    • The user registration page - 6:11
    • Using Bootstrap for the first time for great styling - 14:52
    • How can we display a list of blogs? - 9:44
    • Displaying a list of posts - 8:13
    • The Jinja2 if statement for structure control - 2:03
    • Creating new blogs (front-end) - 9:14
    • Finalising the application by allowing to create posts! - 9:00
    • The Web Blog program Python Code
  • Price alerts for online web-stores
    • [2019] Creating new Python projects in PyCharm 2019 - 5:27
    • Get the price alert code here!
    • What are Flask Blueprints? - 6:22
    • Creating our new app structure - 5:30
    • Getting page content with requests - 3:32
    • How to find the price on a website - 4:28
    • Getting an element's content with BeautifulSoup - 3:29
    • Using RegEx to get specific information from a string - 10:14
    • Creating our Item model - 10:38
    • Adding type hinting to our application so far - 4:05
    • Starting up MongoDB and making sure it's working - 1:03
    • Preparing our Item model for saving in MongoDB - 6:23
    • Inserting Items into MongoDB - 7:42
    • Retrieving Items from MongoDB - 6:28
    • Notifying users in a simple way when the price is reached - 16:36
    • What is an abstract class in Python? - 8:05
    • Making more methods generic - 10:47
    • Finishing up the Model superclass - 9:01
    • How to force a subclass to have properties of a parent class - 3:58
    • Type hinting the current object type in a method return - 8:23
    • Creating items through the web interface - 23:02
    • Styling our site using Bootstrap 4 - 9:37
    • Creating the Items blueprint - 6:32
    • Creating a page to show all items - 13:01
    • Creating alerts through the web interface - 9:51
    • A couple problems and solutions with our app... and our way moving forward - 4:26
  • [2019] Developing a complete front-end with Bootstrap 4
    • Introducing stores to our application - 14:55
    • Getting rid of items - 4:43
    • Testing our app with stores - 5:40
    • Dataclasses in Python 3.7 - 13:59
    • Turning our models into dataclasses - 9:27
    • Giving names to alerts in our application - 4:12
    • Saving the last item price - 3:58
    • Creating stores through the web interface - 8:57
    • Editing alert properties - 10:43
    • Linking the alert index to the edit page - 3:46
    • Editing stores - 7:18
    • Deleting alerts - 3:38
    • Deleting stores - 1:20
    • Registering users - 34:05
    • Encrypting passwords in Python with passlib - 6:41
    • Logging in - 7:26
    • Viewing only your own alerts - 7:10
    • What are Python decorators? - 9:47
    • Limiting some pages only to logged in users - 14:30
    • Adding a navigation bar using Bootstrap - 8:37
    • Limiting actions to admins only - 10:24
    • Logging out
    • Signing up with Mailgun - 4:07
    • Sending e-mail with Mailgun - 16:53
    • Creating the landing page - 6:00
  • Simple development-stage deployments to Heroku
    • Signing up for GitHub - 1:48
    • Forking the GitHub repository from the last section - 2:54
    • How to install Git in Windows - 3:02
    • How to use the Windows Git Shell - 2:07
    • How to install Git on Mac - 2:27
    • How to install Git on Linux - 1:06
    • Cloning the Git repository from GitHub onto your computer - 3:38
    • File statuses and stages in Git - 7:48
    • How to generate an SSH Key for GitHub - 5:26
    • Git commands: git commit and git push - 8:26
    • Git command: git log to check previous commits - 1:17
    • Signing up to Heroku - 3:04
    • Installing the Heroku toolbelt (Command-Line Interface) - 1:00
    • Creating the Heroku app - 3:47
    • [New 2019] Changes to Heroku deployments
    • Getting values from environment variables in Python - 5:08
    • Setting environment variables in Heroku - 1:22
    • Setting up Heroku required files in our project so Heroku knows what to run - 5:56
    • Committing and pushing the new files to GitHub - 2:21
    • Adding servers on Heroku (called 'scaling dynos') - 1:57
    • Deploying our app to Heroku - 2:25
    • Adding Mongolab to our Heroku app as an add-on - 2:49
    • How to create a new Mongolab user - 2:06
    • Changing our program's database URI to match MongoLab's - 2:26
    • Using the Heroku logs to fix an Internal Service Error - 3:22
    • Running our deployed app in Heroku - 2:16
    • Another error: using the URI for the default database - 3:18
    • Verifying the app works, and next steps in the course - 4:03
  • Deploying your apps manually to a server
    • DigitalOcean Droplets
    • Creating a DigitalOcean Droplet - 5:40
    • Creating a non-root user - 6:06
    • Configuring our new user - 8:02
    • Installing Python in Ubuntu
    • Installing MongoDB in Ubuntu - 3:33
    • Getting our application code - 3:59
    • Configuring uWSGI and the system service - 11:41
    • Configuring nginx - 7:24
    • Creating a cron job in Ubuntu - 3:34
    • Course conclusion. Thank you! - 0:27

View Full Curriculum



Terms

  • Unredeemed licenses can be returned for store credit within 15 days of purchase. Once your license is redeemed, all sales are final.