In [1]: i1 = Ingredient(name='Orange Juice')
In [2]: i2 = Ingredient(name='Tequila')
In [3]: di1 = DrinkIngredient(ingredient=i1, units=2)
In [4]: di1
Out[4]: <DrinkIngredient 2.000000 units of Orange Juice>
In [5]: di2 = DrinkIngredient(ingredient=i2, units=1)
In [6]: di2
Out[6]: <DrinkIngredient 1.000000 units of Tequila>
In [7]: d = Drink(name='Tequila Sunrise')
In [8]: d.Ingredients.append([di1, di2])
In [9]: d.Ingredients.append(di1)
In [10]: d.Ingredients.append(di2)
In [11]: d
Out[11]: <Drink 'Tequila Sunrise'>
In [12]: d.Ingredients
Out[12]:
[<DrinkIngredient 2.000000 units of Orange Juice>,
<DrinkIngredient 1.000000 units of Tequila>]
-
-
Save GhalyDoaa/22285d36c16c8c49fe57dcb9efd5602c to your computer and use it in GitHub Desktop.
Drinks Sqla
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask_sqlalchemy import SQLAlchemy | |
from flask import Flask | |
app = Flask(__name__) | |
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///drinks.db' | |
db = SQLAlchemy(app) | |
class DrinkIngredient(db.Model): | |
id = db.Column(db.Integer, primary_key=True) | |
ingredient_id = db.Column(db.Integer, db.ForeignKey('ingredient.id')) | |
drink_id = db.Column(db.Integer, db.ForeignKey('drink.id')) | |
ingredient = db.relationship("Ingredient", uselist=False) | |
drink = db.relationship("Drink", uselist=False) | |
units = db.Column(db.Float) | |
def __repr__(self): | |
return '<DrinkIngredient %f units of %s>' % (self.units, self.drink.name) | |
class Drink(db.Model): | |
__tablename__ = 'drink' | |
id = db.Column(db.Integer, primary_key=True) | |
name = db.Column(db.String(64), index=True, unique=True) | |
Ingredients = db.relationship('DrinkIngredient') | |
def __init__(self, name): | |
self.name = name | |
def __repr__(self): | |
return '<Drink %r>' % (self.name) | |
class Ingredient(db.Model): | |
__tablename__ = 'ingredient' | |
id = db.Column(db.Integer, primary_key=True) | |
name = db.Column(db.String(140)) | |
def __init__(self, name): | |
self.name = name | |
def __repr__(self): | |
return '<Ingredient %r>' % (self.name) | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask_script import Manager, Shell | |
from app import db, app, Drink, Ingredient, DrinkIngredient | |
manager = Manager(app) | |
def make_shell_context(): | |
return dict(db=db, Drink=Drink, Ingredient=Ingredient, DrinkIngredient=DrinkIngredient) | |
manager.add_command('shell', Shell(make_context=make_shell_context)) | |
if __name__ == '__main__': | |
manager.run() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment