# Week 18 Roadmap --- ### Technologies - Today: pipenv, unittest, pytest - Tuesday: Flask, Jinja, psycopg2, WTForms & Flask-WTF - Wednesday: SQlAlchemy & Flask-SQLAlchemy - Thursday: Alembic & Flask-Migrate - Friday: Review --- ### Flask (Tuesday) - Flask is a server (like Express, but for Python) - https://flask.palletsprojects.com/ --- ### Jinja (Tuesday) - Templating language (like Pug) - https://jinja.palletsprojects.com/en/2.11.x/ --- ### psycopg2 (Tuesday) - Allows our Flask app to communicate with a Postgres database - Can be used to interact with database directly, but more convenient to use with an ORM. - The ORM still needs psycopg2 to connect to the database - https://www.psycopg.org/docs/index.html# --- ### WTForms & Flask-WTF (Tuesday) - WTForms is a form validation library—it's not necessary to render forms or validate data, it just makes things easier - https://wtforms.readthedocs.io - Flask-WTF integrates WTForms with a Flask application - https://flask-wtf.readthedocs.io --- ### SQLAlchemy & Flask-SQLAlchemy (Wednesday) - SQLAlchemy is an object-relational mapping tool (ORM) to make it easier to interact with our database. (like Sequelize) - https://docs.sqlalchemy.org/en/14/index.html - Flask-SQLAlchemy allows Flask applications to work with SQLAlchemy in a more streamlined way. - https://flask-sqlalchemy.palletsprojects.com --- ### Alembic & Flask-Migrate (Thursday) - Alembic is a database migration tool that works with SQLAlchemy - https://alembic.sqlalchemy.org - Flask-Migrate integrates alembic with a Flask application - https://flask-migrate.readthedocs.io --- ### Today - Job search prep: behavioral interview questions - Presentation Skills reading (20min) - Interview Practice activity (~45min) - Python environment management and Python unit testing - Lecture videos + follow-up and QA - NOTE: do not install pipenv using the steps on App Academy Open. You should have installed pipenv last week [(instructions here)](https://github.com/appacademy/unified-setup/blob/main/python-setup.md#pipenv). (You can check by running `pipenv --version`. If it comes back with a version, you're all set). - Python Unit Testing project