-
Notifications
You must be signed in to change notification settings - Fork 17
6. Define the SQLite Database Schema
Katie House edited this page Sep 15, 2020
·
1 revision
In this example, our database will have one table. The database will store the user-inputted predictions, by saving the inputted features features, the classifier prediction, an auto generated ID, and the current date/time in the database.
Here is an example of the database Predictions
table:
id | predict_datetime | sepal_length | sepal_width | petal_length | petal_width | prediction |
---|---|---|---|---|---|---|
1 | 09-11-2020 9:00am | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
2 | 09-11-2020 9:01am | 4.9 | 3 | 1.4 | 0.2 | setosa |
3 | 09-11-2020 9:02am | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
4 | 09-11-2020 9:03am | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
5 | 09-11-2020 9:04am | 5 | 3.6 | 1.4 | 0.2 | setosa |
Update iris/models.py
to create the Predictions
table:
from django.db import models
from django.utils import timezone
# Create your models here.
class Predictions(models.Model):
# The possible predictions the model can make in the 'predictions' field
# defined by: (<database name>, <human readible name>)
PREDICT_OPTIONS = [
('setosa', 'Setosa'),
('versicolor', 'Versicolor'),
('virginica', 'Virginica')
]
# Prediction table fields (or columns) are defined by creating attributes
# and assigning them to field instances such as models.CharField()
predict_datetime = models.DateTimeField(default=timezone.now)
sepal_length = models.DecimalField(decimal_places=2, max_digits=3)
sepal_width = models.DecimalField(decimal_places=2, max_digits=3)
petal_length = models.DecimalField(decimal_places=2, max_digits=3)
petal_width = models.DecimalField(decimal_places=2, max_digits=3)
prediction = models.CharField(choices=PREDICT_OPTIONS, max_length=10)
Notice that id
was not included. This is because by default, Django gives each model an id = models.AutoField(primary_key=True)
auto incrementing primary key.
Check here: https://www.webforefront.com/django/modeldatatypesandvalidation.html or here: https://docs.djangoproject.com/en/3.1/topics/db/models/ for more built-in field options.
- Install Django
- Create Django Project
- Run your project for the first time
- Create a Django App
- Add app to INSTALLED_APPS
- Add the landing page to the app
- Make the landing page fancy with Bootstrap
- Create a machine learning model with the Iris dataset
- Create Django form to take in user input and send back model prediction
- Update model prediction with text and an image
- Define the SQLite Database Schema
- Use admin mode to see edit database
- Save Prediction data to SQLite database