- Understand the principles of Python as a language including principles of object oriented programming
- Understand the characteristics of a relational database
- Perform CRUD actions on a database using SQLAlchemy & Alembic
- Design an API to handle CRUD actions
- Communicate with an API using different HTTP verbs
- Create and present a project with a React frontend and a database-backed API backend
Lecture | Notes | Videos | Starter | Solution |
---|---|---|---|---|
1. (02/21/23) Python Fundamentals | Notes | Video | Starter | Solution |
2. (02/22/23) Python Data Structures | Notes | Video | Starter | Solution |
3. (02/23/23) Object Oriented Programming in Python (Part 1) | Notes | Video | Starter | Solution |
4. (02/24/23) Object Oriented Programming in Python (Part 2) | Notes | Video | Starter | Solution |
5. (02/27/23) SQL Fundamentals & Table Relations | Notes | Video | Starter | Solution |
6. (02/28/23) Object-Relational Mapping (ORM) | Notes | Video | Starter | Solution |
7. (03/03/23) SQLAlchemy & Alembic | Notes | Video | Starter | Solution |
8. (03/06/23) SQLAlchemy Associations | Notes | Video | Starter | Solution |
- Introduce Python and phase trajectory
- Demonstrate Python package management with
pip
- Demonstrate debugging in Python with
shell
,print
, andipdb
- Review Python data types (
str
,int
,float
,bool
,None
) - Demonstrate Python conditionals and control flow
- Demonstrate Python functions
- Review Python variable scope and the
global
keyword - Review Python error messages and exceptions
- Demonstrate handling errors with
try:
andexcept:
- Python and a Short History
- Package Management with
pip
- Debugging
print
ipdb
- Python Shell
- Errors
- Exceptions
try:
except:
- Python Conditionals and Control Flow
if...else
- Comparison Operators
>:
greater than>=:
greater than or equal to<:
less than<=:
less than or equal to==:
equal to!=:
not equal to
- Logical operators
and:
or:
not:
- Conditional Expressions
- Ternary
- Python Functions
- Function Definition
- Params
- Default Params
- Arguments
- Invoking
- Error Handling
- Reading Errors
- Syntax Errors, Logic Errors, and Exceptions
AssertionError
IndexError
andKeyError
NameError
TypeError
try:
except:
- Reading Errors
- Demonstrate Sequence types (
list
,tuple
,range
) - Review the different uses for each Sequence type
- Demonstrate standard methods for accessing, updating and deleting values in Lists
- Review Tuples
- Review Ranges
- Demonstrate Mapping types with Dictionaries
- Demonstrate standard methods for accessing, updating and deleting values in Dictionaries
- Demonstrate Set types with
set()
andfrozenset()
- Demonstrate
for
andwhile
loops - Demonstrate list compressions
- Sequence Types
- List
- Tuple
- Range
- Common Sequence Operators
- List Methods
- Tuples and Immutable vs Mutable
- Mapping Types
- Dict
switch
- Dict
- Set Types
- Set
- Loops
for
while
- List Compression
- Sequence Operators
- Sequence Functions and Methods
- Define Object Oriented Programming
- Explain the benefits of Object Oriented Programming
- Explain the principles of Object-Oriented Design
- Demonstrate classes
- Demonstrate instances
- Demonstrate
__init__
- Demonstrate instance method
- Demonstrate the
self
keyword
- Object Oriented Programming
- Benefits of Object Oriented Programming
- Principles of Object-Oriented Design
- Classes
- Instances
- Initializing with Attributes Using
__init__
- Instance Methods
- Self
- Demonstrate Decorators
@decorator
- Demonstrate class attributes
- Defining class attributes
- Updating class attributes
- Demonstrate class methods
- Defining class methods
@classmethod
cls
keyword
- Object Inheritance
- Decorators
- Class Attributes
- Class Methods
- Object Inheritance
- Explain why we use databases
- Explain what SQL is and why we use it
- Explain the differences between a database, server, and API
- Explain the differences between rows and columns in a table
- Explain the differences between a Foreign Key and a Primary Key
- Explain what a join table is
- Explain what it means to seed a database
- Observe using SQL to communicate with a database
- Explain what an ORM is
- The Use Value of Databases in Applications
- Domain Modeling
- Join Table
- Mapping Columns and Rows to Classes and Instances
- Primary Keys
- Foreign Keys
- SQL
- ORM
- Demonstrate configuring an application to connect with sqlite3
- Demonstrate a create table method
- Review preventative measures for SQL injection
- Demonstrate save and create methods
- Save => Persist created instance to DB
- Create => Instantiate / persist created instance to DB, return new instance
- Demonstrate query methods to find and retrieve resources
- The benefits of ORM
- Connecting ORMs to DBs
- How to Use Data From a Database to Make Python Objects
- Mapping a Database Table to a Python Object
- Turning Database Rows into Python Objects
- Explain what SQLAlchemy is and how it benefits us as an ORM
- Demonstrate creating a database with SQLAlchemy
- Demonstrate creating a schema
- Demonstrate creating columns with SQLAlchemy
- Demonstrate creating column constraints with SQLAlchemy
- Demonstrate creating indexes with SQLAlchemy
- Demonstrate creating default values
- Explain Alembic and what it does for us
- Demonstrate configuring an application to use Alembic
- Demonstrate creating migrations using Alembic
- Demonstrate creating manual migrations using Alembic
- Demonstrate CRUD in SQLAlcehmy
- Adding data with .commit
.all
,.order_by
,desc
,limit
, function filter, and loop compression to grab specific columns
- Querying data with
.query
- Updating data with
.update
and.commit
- Deleting data with
.delete
- Adding data with .commit
- Creating a Database
- Creating a Schema
- Columns
- Constraints
- Index
- Default Values
- Alembic
- Migrations
- Configuring the Migration Environment
- Creating Migrations
- Manual Migrations
- Migrations
- CRUD
- Sessions
- Transactions
__repr__
- Creating Records
- Seeding Data
- Reading Records
- Selecting Specific Columns
- Ordering
- Limits
- Filtering
- Func
- Updating Data
- Deleting Data
- Review relationships, Primary keys, and Foreign keys
- Demonstrate creating a table with a Foreign key and referencing another table using
relationship()
andbackref()
- Demonstrate using Alembic to generate tables with relationships
- Demonstrate querying methods to view table relationships
- Demonstrate a “one to many” association
- Demonstrate a “many to many” association with a join model
- Design Database Tables
- One-to-Many
- Foreign Key Columns
relationship()
andbackref()
- One-to-One
- Alembic Migrations to Generate Table Relationships
- Relation Query Methods
- Many-to-Many