View Code? Open in Web Editor
NEW
This project forked from learn-co-students/seng-live-013023-phase-3
seng-live-013023-phase-3's Introduction
SENG-LIVE-013023 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 comprehensions
- 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 Comprehensions
- 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
seng-live-013023-phase-3's People
Contributors
Watchers