Skip to content

Instantly share code, notes, and snippets.

@franklintimoteo
Last active August 25, 2019 17:12
Show Gist options
  • Save franklintimoteo/2f6964d158b20d9d47a0a1a9d70229b1 to your computer and use it in GitHub Desktop.
Save franklintimoteo/2f6964d158b20d9d47a0a1a9d70229b1 to your computer and use it in GitHub Desktop.
import click
from flask.cli import with_appcontext
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Role(db.Model):
__tablename__ = 'roles'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
#atributo users devolverá a lista de usuários associados a essa função 'role'
# db.relationship informa qual modelo está do outro lado
#backref direção inversa do relacionamento, adiciona o ATRIBUTO 'role' ao modelo 'user'
users = db.relationship('User', backref='role')
def __repr__(self):
return f'<Role {self.name!r}>'
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, index=True)
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
def __repr__(self):
return f'<User {self.username!r}>'
def init_db():
db.create_all()
@click.command('init-db')
@with_appcontext
def init_db_command():
"Cria as tabelas do modelo"
init_db()
click.echo("Inicializando database")
def init_app(app):
db.init_app(app)
app.cli.add_command(init_db_command)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment