gitextract_l2o0gskj/ ├── .flake8 ├── .github/ │ └── workflows/ │ └── algolia-scraper.yml ├── .gitignore ├── .gitmodules ├── .python-version ├── .templates/ │ ├── lecture.md │ └── section.md ├── CONTRIBUTING.md ├── README.md ├── dependabot.yml ├── docs/ │ ├── .gitignore │ ├── README.md │ ├── algolia.config.json │ ├── babel.config.js │ ├── docs/ │ │ ├── 01_course_intro/ │ │ │ ├── 02_how_to_install_python/ │ │ │ │ └── README.md │ │ │ ├── 03_how_to_install_ide/ │ │ │ │ └── README.md │ │ │ ├── 04_what_is_rest_api/ │ │ │ │ └── README.md │ │ │ ├── _category_.json │ │ │ └── index.md │ │ ├── 02_python_refresher/ │ │ │ ├── _category_.json │ │ │ └── index.md │ │ ├── 03_first_rest_api/ │ │ │ ├── 01_project_overview/ │ │ │ │ └── README.md │ │ │ ├── 02_getting_set_up/ │ │ │ │ └── README.md │ │ │ ├── 03_first_rest_api_endpoint/ │ │ │ │ └── README.md │ │ │ ├── 04_what_is_json/ │ │ │ │ └── README.md │ │ │ ├── 05_make_request_to_rest_api/ │ │ │ │ └── README.md │ │ │ ├── 06_creating_stores/ │ │ │ │ └── README.md │ │ │ ├── 07_creating_items/ │ │ │ │ └── README.md │ │ │ ├── 08_return_data_from_rest_api/ │ │ │ │ └── README.md │ │ │ ├── 09_final_code/ │ │ │ │ ├── README.md │ │ │ │ └── end/ │ │ │ │ └── app.py │ │ │ ├── Insomnia_section3.json │ │ │ └── _category_.json │ │ ├── 04_docker_intro/ │ │ │ ├── 01_what_is_docker_container/ │ │ │ │ ├── README.md │ │ │ │ └── docker-presentation.key │ │ │ ├── 02_run_docker_container/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── Dockerfile │ │ │ │ │ └── app.py │ │ │ │ └── start/ │ │ │ │ └── app.py │ │ │ ├── 03_in_depth_docker_tutorial/ │ │ │ │ └── README.md │ │ │ ├── 04_run_with_docker_compose/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ └── docker-compose.yml │ │ │ │ └── start/ │ │ │ │ ├── Dockerfile │ │ │ │ └── app.py │ │ │ ├── 05_run_commands_in_docker_containers/ │ │ │ │ └── README.md │ │ │ ├── README.md │ │ │ └── _category_.json │ │ ├── 05_flask_smorest/ │ │ │ ├── 01_why_flask_smorest/ │ │ │ │ └── README.md │ │ │ ├── 02_data_model_improvements/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ └── requirements.txt │ │ │ │ └── start/ │ │ │ │ ├── Dockerfile │ │ │ │ └── app.py │ │ │ ├── 03_improvements_on_first_rest_api/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ └── requirements.txt │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ └── requirements.txt │ │ │ ├── 04_new_endpoints_for_api/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ └── requirements.txt │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ └── requirements.txt │ │ │ ├── 05_reload_api_docker_container/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ └── requirements.txt │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ └── requirements.txt │ │ │ ├── 06_api_with_method_views/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ └── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ └── requirements.txt │ │ │ ├── 07_marshmallow_schemas/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── requirements.txt │ │ │ │ └── resources/ │ │ │ │ ├── __init__.py │ │ │ │ ├── item.py │ │ │ │ └── store.py │ │ │ ├── 08_validation_with_marshmallow/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 09_decorating_responses/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── Insomnia_section5_Docker.json │ │ │ ├── Insomnia_section5_before_Docker.json │ │ │ └── _category_.json │ │ ├── 06_sql_storage_sqlalchemy/ │ │ │ ├── 01_project_overview_sqlalchemy/ │ │ │ │ └── README.md │ │ │ ├── 02_create_simple_sqlalchemy_model/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 03_one_to_many_relationships_sqlalchemy/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 04_configure_flask_sqlalchemy/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 05_insert_models_sqlalchemy/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 06_get_models_or_404/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 07_updating_models_sqlalchemy/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 08_retrieve_list_all_models/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 09_delete_models_sqlalchemy/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 10_delete_related_models_sqlalchemy/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ └── store.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 11_conclusion/ │ │ │ │ └── README.md │ │ │ ├── Insomnia_section6.json │ │ │ └── _category_.json │ │ ├── 07_sqlalchemy_many_to_many/ │ │ │ ├── 01_section_changes/ │ │ │ │ └── README.md │ │ │ ├── 02_one_to_many_review/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ └── tag.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ └── tag.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ └── store.py │ │ │ │ └── schemas.py │ │ │ ├── 03_many_to_many_relationships/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── conftest.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ └── tag.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ └── tag.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ └── tag.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ └── tag.py │ │ │ │ └── schemas.py │ │ │ ├── Insomnia_section7.json │ │ │ └── _category_.json │ │ ├── 08_flask_jwt_extended/ │ │ │ ├── 01_section_changes/ │ │ │ │ └── README.md │ │ │ ├── 02_what_is_a_jwt/ │ │ │ │ └── README.md │ │ │ ├── 03_how_is_jwt_used/ │ │ │ │ ├── README.md │ │ │ │ └── how-are-jwts-used.key │ │ │ ├── 04_flask_jwt_extended_setup/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flake8 │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── conftest.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ └── tag.py │ │ │ │ │ ├── requirements-dev.txt │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ │ └── test_tag.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ └── tag.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flake8 │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── conftest.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ └── tag.py │ │ │ │ ├── requirements-dev.txt │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ └── test_tag.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ └── tag.py │ │ │ │ └── schemas.py │ │ │ ├── 05_user_model_and_schema/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flake8 │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── conftest.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements-dev.txt │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ │ └── test_tag.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ └── tag.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flake8 │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── conftest.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ └── tag.py │ │ │ │ ├── requirements-dev.txt │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ └── test_tag.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ └── tag.py │ │ │ │ └── schemas.py │ │ │ ├── 06_registering_users_rest_api/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flake8 │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── conftest.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements-dev.txt │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ │ └── test_user.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flake8 │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── conftest.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements-dev.txt │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ └── test_tag.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ └── tag.py │ │ │ │ └── schemas.py │ │ │ ├── 07_login_users_rest_api/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flake8 │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── conftest.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements-dev.txt │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ │ └── test_user.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flake8 │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── conftest.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements-dev.txt │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ └── test_user.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 08_protect_resources_with_jwt_required/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flake8 │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── conftest.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements-dev.txt │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ │ └── test_user.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flake8 │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── conftest.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements-dev.txt │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ └── test_user.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 09_jwt_claims_and_authorization/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flake8 │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── conftest.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements-dev.txt │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ │ └── test_user.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flake8 │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── conftest.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements-dev.txt │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ └── test_user.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 10_logout_users_rest_api/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flake8 │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── conftest.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements-dev.txt │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ │ └── test_user.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flake8 │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── conftest.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements-dev.txt │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ └── test_user.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 11_insomnia_request_chaining/ │ │ │ │ └── README.md │ │ │ ├── 12_token_refreshing_flask_jwt_extended/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flake8 │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── conftest.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements-dev.txt │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ │ └── test_user.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ ├── end_video/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flake8 │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── conftest.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements-dev.txt │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── __tests__/ │ │ │ │ │ │ ├── conftest.py │ │ │ │ │ │ ├── test_item.py │ │ │ │ │ │ ├── test_store.py │ │ │ │ │ │ ├── test_tag.py │ │ │ │ │ │ └── test_user.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── Insomnia_section8_before_chaining.json │ │ │ ├── Insomnia_section8_chaining.json │ │ │ └── _category_.json │ │ ├── 09_flask_migrate/ │ │ │ ├── 01_why_use_database_migrations/ │ │ │ │ └── README.md │ │ │ ├── 02_add_flask_migrate_to_app/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 03_initialize_database_flask_db_init/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── .python-version │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── migrations/ │ │ │ │ │ │ ├── README │ │ │ │ │ │ ├── alembic.ini │ │ │ │ │ │ ├── env.py │ │ │ │ │ │ ├── script.py.mako │ │ │ │ │ │ └── versions/ │ │ │ │ │ │ └── c575166f6192_.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flaskenv │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 04_change_models_generate_alembic_migration/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .dockerignore │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── .python-version │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── migrations/ │ │ │ │ │ │ ├── README │ │ │ │ │ │ ├── alembic.ini │ │ │ │ │ │ ├── env.py │ │ │ │ │ │ ├── script.py.mako │ │ │ │ │ │ └── versions/ │ │ │ │ │ │ ├── bcc005bc255c_.py │ │ │ │ │ │ └── c575166f6192_.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .dockerignore │ │ │ │ ├── .flaskenv │ │ │ │ ├── .python-version │ │ │ │ ├── Dockerfile │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── migrations/ │ │ │ │ │ ├── README │ │ │ │ │ ├── alembic.ini │ │ │ │ │ ├── env.py │ │ │ │ │ ├── script.py.mako │ │ │ │ │ └── versions/ │ │ │ │ │ └── c575166f6192_.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 05_manually_review_modify_migrations/ │ │ │ │ └── README.md │ │ │ └── _category_.json │ │ ├── 10_git_crash_course/ │ │ │ ├── README.md │ │ │ └── _category_.json │ │ ├── 11_deploy_to_render/ │ │ │ ├── 01_section_overview/ │ │ │ │ └── README.md │ │ │ ├── 02_create_render_web_service/ │ │ │ │ └── README.md │ │ │ ├── 03_docker_with_gunicorn/ │ │ │ │ └── README.md │ │ │ ├── 04_deploy_postgresql_database/ │ │ │ │ └── README.md │ │ │ ├── 05_environment_variables_and_migrations/ │ │ │ │ └── README.md │ │ │ ├── 06_run_everything_docker_compose/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── docker-compose.yml │ │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ │ ├── migrations/ │ │ │ │ │ │ ├── README │ │ │ │ │ │ ├── alembic.ini │ │ │ │ │ │ ├── env.py │ │ │ │ │ │ ├── script.py.mako │ │ │ │ │ │ └── versions/ │ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ │ └── bb5da1e68550_.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── .gitignore │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ ├── migrations/ │ │ │ │ │ ├── README │ │ │ │ │ ├── alembic.ini │ │ │ │ │ ├── env.py │ │ │ │ │ ├── script.py.mako │ │ │ │ │ └── versions/ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ └── bb5da1e68550_.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── Insomnia_section11.json │ │ │ └── _category_.json │ │ ├── 12_task_queues_emails/ │ │ │ ├── 01_send_emails_python_mailgun/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ │ ├── migrations/ │ │ │ │ │ │ ├── README │ │ │ │ │ │ ├── alembic.ini │ │ │ │ │ │ ├── env.py │ │ │ │ │ │ ├── script.py.mako │ │ │ │ │ │ └── versions/ │ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ │ └── bb5da1e68550_.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── .gitignore │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ ├── migrations/ │ │ │ │ │ ├── README │ │ │ │ │ ├── alembic.ini │ │ │ │ │ ├── env.py │ │ │ │ │ ├── script.py.mako │ │ │ │ │ └── versions/ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ └── bb5da1e68550_.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 02_send_email_user_registration/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .python-version │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ │ ├── migrations/ │ │ │ │ │ │ ├── README │ │ │ │ │ │ ├── alembic.ini │ │ │ │ │ │ ├── env.py │ │ │ │ │ │ ├── script.py.mako │ │ │ │ │ │ └── versions/ │ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ │ ├── bb5da1e68550_.py │ │ │ │ │ │ └── d8e0f80631fb_.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ └── schemas.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── .gitignore │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ ├── migrations/ │ │ │ │ │ ├── README │ │ │ │ │ ├── alembic.ini │ │ │ │ │ ├── env.py │ │ │ │ │ ├── script.py.mako │ │ │ │ │ └── versions/ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ └── bb5da1e68550_.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 03_what_is_task_queue/ │ │ │ │ └── README.md │ │ │ ├── 04_populate_rq_task_queue/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ │ ├── migrations/ │ │ │ │ │ │ ├── README │ │ │ │ │ │ ├── alembic.ini │ │ │ │ │ │ ├── env.py │ │ │ │ │ │ ├── script.py.mako │ │ │ │ │ │ └── versions/ │ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ │ ├── bb5da1e68550_.py │ │ │ │ │ │ └── d8e0f80631fb_.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── schemas.py │ │ │ │ │ └── tasks.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── .gitignore │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ ├── migrations/ │ │ │ │ │ ├── README │ │ │ │ │ ├── alembic.ini │ │ │ │ │ ├── env.py │ │ │ │ │ ├── script.py.mako │ │ │ │ │ └── versions/ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ ├── bb5da1e68550_.py │ │ │ │ │ └── d8e0f80631fb_.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ └── schemas.py │ │ │ ├── 05_rq_background_worker/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ │ ├── migrations/ │ │ │ │ │ │ ├── README │ │ │ │ │ │ ├── alembic.ini │ │ │ │ │ │ ├── env.py │ │ │ │ │ │ ├── script.py.mako │ │ │ │ │ │ └── versions/ │ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ │ ├── bb5da1e68550_.py │ │ │ │ │ │ └── d8e0f80631fb_.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── schemas.py │ │ │ │ │ └── tasks.py │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── .gitignore │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ ├── migrations/ │ │ │ │ │ ├── README │ │ │ │ │ ├── alembic.ini │ │ │ │ │ ├── env.py │ │ │ │ │ ├── script.py.mako │ │ │ │ │ └── versions/ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ ├── bb5da1e68550_.py │ │ │ │ │ └── d8e0f80631fb_.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── schemas.py │ │ │ │ └── tasks.py │ │ │ ├── 06_sending_html_emails/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .python-version │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ │ ├── migrations/ │ │ │ │ │ │ ├── README │ │ │ │ │ │ ├── alembic.ini │ │ │ │ │ │ ├── env.py │ │ │ │ │ │ ├── script.py.mako │ │ │ │ │ │ └── versions/ │ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ │ ├── bb5da1e68550_.py │ │ │ │ │ │ └── d8e0f80631fb_.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── schemas.py │ │ │ │ │ ├── tasks.py │ │ │ │ │ └── templates/ │ │ │ │ │ └── email/ │ │ │ │ │ ├── action.html │ │ │ │ │ └── action.original.html │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── .gitignore │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ ├── migrations/ │ │ │ │ │ ├── README │ │ │ │ │ ├── alembic.ini │ │ │ │ │ ├── env.py │ │ │ │ │ ├── script.py.mako │ │ │ │ │ └── versions/ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ ├── bb5da1e68550_.py │ │ │ │ │ └── d8e0f80631fb_.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── schemas.py │ │ │ │ └── tasks.py │ │ │ ├── 07_deploy_background_worker_render/ │ │ │ │ ├── README.md │ │ │ │ ├── end/ │ │ │ │ │ ├── .flaskenv │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .python-version │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app.py │ │ │ │ │ ├── blocklist.py │ │ │ │ │ ├── db.py │ │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ │ ├── migrations/ │ │ │ │ │ │ ├── README │ │ │ │ │ │ ├── alembic.ini │ │ │ │ │ │ ├── env.py │ │ │ │ │ │ ├── script.py.mako │ │ │ │ │ │ └── versions/ │ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ │ ├── bb5da1e68550_.py │ │ │ │ │ │ └── d8e0f80631fb_.py │ │ │ │ │ ├── models/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── item_tags.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── requirements.txt │ │ │ │ │ ├── resources/ │ │ │ │ │ │ ├── item.py │ │ │ │ │ │ ├── store.py │ │ │ │ │ │ ├── tag.py │ │ │ │ │ │ └── user.py │ │ │ │ │ ├── schemas.py │ │ │ │ │ ├── settings.py │ │ │ │ │ ├── tasks.py │ │ │ │ │ └── templates/ │ │ │ │ │ └── email/ │ │ │ │ │ ├── action.html │ │ │ │ │ └── action.original.html │ │ │ │ └── start/ │ │ │ │ ├── .flaskenv │ │ │ │ ├── .gitignore │ │ │ │ ├── .python-version │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── app.py │ │ │ │ ├── blocklist.py │ │ │ │ ├── db.py │ │ │ │ ├── docker-entrypoint.sh │ │ │ │ ├── migrations/ │ │ │ │ │ ├── README │ │ │ │ │ ├── alembic.ini │ │ │ │ │ ├── env.py │ │ │ │ │ ├── script.py.mako │ │ │ │ │ └── versions/ │ │ │ │ │ ├── 07006e31e788_.py │ │ │ │ │ ├── 8ca023a4a4b0_.py │ │ │ │ │ ├── bb5da1e68550_.py │ │ │ │ │ └── d8e0f80631fb_.py │ │ │ │ ├── models/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── item.py │ │ │ │ │ ├── item_tags.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── resources/ │ │ │ │ │ ├── item.py │ │ │ │ │ ├── store.py │ │ │ │ │ ├── tag.py │ │ │ │ │ └── user.py │ │ │ │ ├── schemas.py │ │ │ │ ├── tasks.py │ │ │ │ └── templates/ │ │ │ │ └── email/ │ │ │ │ ├── action.html │ │ │ │ └── action.original.html │ │ │ ├── Insomnia_section12.json │ │ │ └── _category_.json │ │ └── Insomnia_all_sections.json │ ├── docusaurus.config.js │ ├── package.json │ ├── sidebars.js │ └── src/ │ ├── components/ │ │ ├── HomepageFeatures/ │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── LockedVideoEmbed/ │ │ │ └── index.js │ │ └── VideoEmbed/ │ │ └── index.js │ ├── css/ │ │ └── custom.css │ └── pages/ │ ├── index.js │ ├── index.module.css │ └── insomnia-files.md └── project/ ├── 01-first-rest-api/ │ └── app.py ├── 02-first-rest-api-docker/ │ ├── Dockerfile │ └── app.py ├── 03-items-stores-smorest/ │ ├── .flaskenv │ ├── Dockerfile │ ├── app.py │ ├── db.py │ ├── requirements.txt │ ├── resources/ │ │ ├── __init__.py │ │ ├── item.py │ │ └── store.py │ └── schemas.py ├── 04-items-stores-smorest-sqlalchemy/ │ ├── .flaskenv │ ├── Dockerfile │ ├── app.py │ ├── db.py │ ├── models/ │ │ ├── __init__.py │ │ ├── item.py │ │ └── store.py │ ├── requirements.txt │ ├── resources/ │ │ ├── __init__.py │ │ ├── item.py │ │ └── store.py │ └── schemas.py ├── 05-add-many-to-many/ │ ├── .flaskenv │ ├── Dockerfile │ ├── app.py │ ├── conftest.py │ ├── db.py │ ├── models/ │ │ ├── __init__.py │ │ ├── item.py │ │ ├── item_tags.py │ │ ├── store.py │ │ └── tag.py │ ├── requirements.txt │ ├── resources/ │ │ ├── __init__.py │ │ ├── __tests__/ │ │ │ ├── conftest.py │ │ │ ├── test_item.py │ │ │ ├── test_store.py │ │ │ └── test_tag.py │ │ ├── item.py │ │ ├── store.py │ │ └── tag.py │ └── schemas.py ├── 06-add-db-migrations/ │ ├── .flaskenv │ ├── .python-version │ ├── Dockerfile │ ├── app.py │ ├── conftest.py │ ├── db.py │ ├── migrations/ │ │ ├── README │ │ ├── alembic.ini │ │ ├── env.py │ │ ├── script.py.mako │ │ └── versions/ │ │ ├── 5acd69659946_.py │ │ └── a40bdfbd7a9d_.py │ ├── models/ │ │ ├── __init__.py │ │ ├── item.py │ │ ├── item_tags.py │ │ ├── store.py │ │ └── tag.py │ ├── requirements.txt │ ├── resources/ │ │ ├── __init__.py │ │ ├── __tests__/ │ │ │ ├── conftest.py │ │ │ ├── test_item.py │ │ │ ├── test_store.py │ │ │ └── test_tag.py │ │ ├── item.py │ │ ├── store.py │ │ └── tag.py │ └── schemas.py ├── using-flask-restful/ │ ├── .flaskenv │ ├── Flask-JWT-Extended.postman_collection.json │ ├── Stores_REST_API_2022-01-14.json │ ├── app.py │ ├── blocklist.py │ ├── db.py │ ├── models/ │ │ ├── __init__.py │ │ ├── item.py │ │ ├── item_tags.py │ │ ├── store.py │ │ ├── tag.py │ │ └── user.py │ ├── requirements.txt │ └── resources/ │ ├── __init__.py │ ├── item.py │ ├── store.py │ ├── tag.py │ └── user.py ├── using-flask-restx/ │ ├── .flaskenv │ ├── Flask-JWT-Extended.postman_collection.json │ ├── Stores_REST_API_2022-01-14.json │ ├── app.py │ ├── blocklist.py │ ├── db.py │ ├── models/ │ │ ├── __init__.py │ │ ├── item.py │ │ ├── item_tags.py │ │ ├── store.py │ │ ├── tag.py │ │ └── user.py │ ├── requirements.txt │ └── resources/ │ ├── __init__.py │ ├── item.py │ ├── store.py │ ├── tag.py │ └── user.py └── using-flask-smorest/ ├── .flaskenv ├── Flask-JWT-Extended.postman_collection.json ├── Stores_REST_API_2022-01-14.json ├── app.py ├── blocklist.py ├── db.py ├── models/ │ ├── __init__.py │ ├── item.py │ ├── item_tags.py │ ├── store.py │ ├── tag.py │ └── user.py ├── requirements.txt ├── resources/ │ ├── __init__.py │ ├── item.py │ ├── store.py │ ├── tag.py │ └── user.py └── schemas.py