- Define constraints and validations in data processing.
- Ensure that only acceptable input is sent to the database using validations.
- Constraint: a rule enforced on the data columns of a table. Ensures that only appropriate data is saved to the database.
- Validation: an automatic check to ensure that data entered is sensible and feasible.
- Forms: A web form (or HTML form) is a place where users enter data or personal information that's then sent to a server for processing.
This project has starter code for a couple of models, Author
and Post
. To
get set up, run:
This is a test-driven lab. Run pipenv install
to create your virtual
environment and pipenv shell
to enter the virtual environment.
To generate a database create the migration and from server/
run:
$ flask db revision --autogenerate -m "<your comment>"
$ flask db upgrade
Add validations to these models such that...
- All authors have a name.
- No two authors have the same name.
- Author phone numbers are exactly ten digits.
- All posts have a title.
- Post content is at least 250 characters long.
- Post summary is a maximum of 250 characters.
- Post category is either
Fiction
orNon-Fiction
.
Then run pytest -x
to run your tests. Use these instructions and pytest
's
error messages to complete your work in the server/
folder.
Finally, add a custom validator to the Post
model that ensures the title is
sufficiently clickbait-y. The validator should add a validation error if the
title does not contain:
- "Won't Believe"
- "Secret"
- "Top"
- "Guess"