Repository files navigation se-west-042224 Phase 3 - Python
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
Review an introduction to Python and phase trajectory
Demonstrate Python package management with pip
Demonstrate debugging in Python with shell, print, and ipdb
Review Python data types (str, int, float, complex, bol, bytes, bytearry, memoryview, 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: and except:
Stretch Goals
Review pytest
Review the Python Style Guide
Python and a Short History
Package Management with pip
Debugging
print
ipdb
Python Shell
Errors
Exceptions
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
Conditional Expressions
Python Functions
Function Definition
Params
Default Params
Arguments
Invoking
Error Handling
Reading Errors
Syntax Errors, Logic Errors, and Exceptions
AssertionError
IndexError and KeyError
NameError
TypeError
try: except:
Stretch Topics
pytest
How to Read Tests
Note: Create tests is not covered in the labs
Python Style Guide
2: Python Data Structures
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() and frozenset()
Demonstrate for and while loops
Demonstrate list compressions
Stretch Goals
Demonstrate Generator expressions
Demonstrate how to create a switch using a Dictionary
Sequence Types
List
Tuple
Range
Common Sequence Operators
List Methods
Tuples and Immutable vs Mutable
Mapping Types
Set Types
Loops
for
while
List Compression
Sequence Operators
Sequence Functions and Methods
Stretch Topics
3: Object Oriented Programming in Python
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
Stretch Goals
Demonstrate object properties
Demonstrate mass assignment during Class instantiation
Object Oriented Programming
Benefits of Object Oriented Programming
Principles of Object-Oriented Design
Classes
Instances
Initializing with Attributes Using __init__
Instance Methods
Self
Stretch Topics
4: OOP 2: Class Methods & Class Variables
Demonstrate Decorators
Demonstrate class variables
Defining class variables
Updating class variables
Demonstrate class methods
Defining class methods
@classmethod
cls keyword
Object Inheritance
Stretch Goals
Decorators
Class Variables
Class Methods
Object Inheritance
Stretch Topic
5: SQL Fundamentals & Table Relations
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
6: Object-Relational Mapping
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
Stretch Goal
Make a create_and_find_by member
Make update and delete members
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
Creating a Database
Creating a Schema
Columns
Constraints
Index
Default Values
Alembic
Migrations
Configuring the Migration Environment
Creating Migrations
Manual Migrations
CRUD
Sessions
Transactions
__repr__
Creating Records
Reading Records
Selecting Specific Columns
Ordering
Limits
Filtering
Func
Updating Data
Deleting Data
8: SQLAlchemy Associations
Review relationships, Primary keys, and Foreign keys
Demonstrate creating a table with a Foreign key and referencing another table using relationship() and backref()
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
Stretch Goal
Demonstrate using a CLI to access a backend application
Design Database Tables
One-to-Many
Foreign Key Columns
relationship() and backref()
One-to-One
Alembic Migrations to Generate Table Relationships
Relation Query Methods
Many-to-Many
Stretch Topic
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.