mirror of
https://github.com/StefBuwalda/cal_counter.git
synced 2025-10-29 19:00:00 +00:00
Initial commit: Flask calorie counter app setup
Add base Flask application with user authentication, SQLAlchemy models for users, units, and food items, admin blueprint, and basic templates. Includes database migration setup, login form, and seed script for initial user creation.
This commit is contained in:
45
models.py
Normal file
45
models.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from flask_login import UserMixin # type: ignore
|
||||
from werkzeug.security import generate_password_hash, check_password_hash
|
||||
from application import db
|
||||
|
||||
|
||||
class User(UserMixin, db.Model):
|
||||
__tablename__ = "user"
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
username = db.Column(db.String(150), unique=True, nullable=False)
|
||||
password = db.Column(db.String, nullable=False)
|
||||
|
||||
def __init__(self, username: str, password: str):
|
||||
super().__init__()
|
||||
self.username = username
|
||||
self.password = generate_password_hash(password=password)
|
||||
|
||||
def check_password(self, password: str) -> bool:
|
||||
return check_password_hash(pwhash=self.password, password=password)
|
||||
|
||||
def change_password(self, password: str) -> None:
|
||||
self.password = generate_password_hash(password=password)
|
||||
|
||||
|
||||
class Units(db.Model):
|
||||
__tablename__ = "unit"
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
symbol = db.Column(db.String(10), unique=True, nullable=False)
|
||||
name = db.Column(db.String(50), unique=True, nullable=False)
|
||||
|
||||
|
||||
class FoodItems(db.Model):
|
||||
__tablename__ = "food_item"
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
name = db.Column(db.String(150), unique=True, nullable=False)
|
||||
amount = db.Column(db.Integer, nullable=False)
|
||||
|
||||
unit_id = db.Column(db.Integer, db.ForeignKey("unit.id"), nullable=False)
|
||||
unit = db.relationship("Units")
|
||||
|
||||
energy = db.Column(db.Float)
|
||||
protein = db.Column(db.Float)
|
||||
carbs = db.Column(db.Float)
|
||||
sugar = db.Column(db.Float)
|
||||
fats = db.Column(db.Float)
|
||||
saturated_fats = db.Column(db.Float)
|
||||
Reference in New Issue
Block a user