import click from project_name.ext.auth import create_user from project_name.ext.database import db from project_name.models import Product def create_db(): """Creates database""" db.create_all() def drop_db(): """Cleans database""" db.drop_all() def populate_db(): """Populate db with sample data""" data = [ Product( id=1, name="Ciabatta", price="10", description="Italian Bread" ), Product(id=2, name="Baguete", price="15", description="French Bread"), Product(id=3, name="Pretzel", price="20", description="German Bread"), ] db.session.bulk_save_objects(data) db.session.commit() return Product.query.all() def init_app(app): # add multiple commands in a bulk for command in [create_db, drop_db, populate_db]: app.cli.add_command(app.cli.command()(command)) # add a single command @app.cli.command() @click.option("--username", "-u") @click.option("--password", "-p") def add_user(username, password): """Adds a new user to the database""" return create_user(username, password)