示例#1
0
    def has_bills(self):
        """return if the user do have bills or not"""
        bills_as_ower_number = db.session.query(billowers)\
            .filter(billowers.columns.get("person_id") == self.id)\
            .count()
        return bills_as_ower_number != 0 or len(self.bills) != 0

    def __str__(self):
        return self.name

    def __repr__(self):
        return "<Person %s for project %s>" % (self.name, self.project.name)

# We need to manually define a join table for m2m relations
billowers = db.Table('billowers',
    db.Column('bill_id', db.Integer, db.ForeignKey('bill.id')),
    db.Column('person_id', db.Integer, db.ForeignKey('person.id')),
)


class Bill(db.Model):

    class BillQuery(BaseQuery):

        def get(self, project, id):
            try:
                return self.join(Person, Project)\
                    .filter(Bill.payer_id == Person.id)\
                    .filter(Person.project_id == Project.id)\
                    .filter(Project.id == project.id)\
                    .filter(Bill.id == id).one()
示例#2
0
app.config.update({
    'OIDC_CLIENT_SECRETS': './client_secrets.json',
    'OIDC_RESOURCE_SERVER_ONLY': True
})
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + \
    os.path.join(basedir, 'db.sqlite')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)
ma = Marshmallow(app)
oidc = OpenIDConnect(app)
CORS(app)

# Models
favorites = db.Table('favorites',
                     db.Column('user_id', db.Integer, db.ForeignKey(
                         'user.id'), primary_key=True),
                     db.Column('house_id', db.Integer, db.ForeignKey(
                         'house.id'), primary_key=True)
                     )


class User(db.Model):
    __tablename__ = 'user'

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(200), unique=True, nullable=False)
    favorites = db.relationship(
        'House', secondary=favorites, lazy='subquery', backref=db.backref('followers', lazy=True)
    )

    def __init__(self, email):
示例#3
0
    username = db.Column(db.String(16), unique=True)
    password = db.Column(db.String(250))
    u_create_time = db.Column(db.DateTime, default=datetime.now())
    role_id = db.Column(db.Integer, db.ForeignKey('role.r_id'))


class Role(db.Model):
    r_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    r_name = db.Column(db.String(10), unique=True)
    users = db.relationship('User', backref='role')


r_p = db.Table(
    'r_p',
    db.Column('role_id',
              db.Integer,
              db.ForeignKey('role.r_id'),
              primary_key=True),
    db.Column('permission_id',
              db.Integer,
              db.ForeignKey('permission.p_id'),
              primary_key=True))


class Permission(db.Model):
    p_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    p_name = db.Column(db.String(16), unique=True)
    p_er = db.Column(db.String(16), unique=True)
    roles = db.relationship('Role',
                            secondary=r_p,
                            backref=db.backref('permission'))
示例#4
0
                        db.ForeignKey("posts.id"),
                        nullable=False,
                        primary_key=True)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.id'),
                        nullable=False,
                        primary_key=True)
    order = db.Column(db.Integer)

    post = db.relationship('Post', lazy='joined')
    author = db.relationship('User', lazy='joined')


assoc_post_tag = db.Table(
    'assoc_post_tag', db.Model.metadata,
    db.Column('post_id', db.Integer, db.ForeignKey('posts.id')),
    db.Column('tag_id', db.Integer, db.ForeignKey('tags.id')))

assoc_post_group = db.Table(
    'assoc_post_group', db.Model.metadata,
    db.Column('post_id', db.Integer, db.ForeignKey('posts.id')),
    db.Column('group_id', db.Integer, db.ForeignKey('groups.id')))

assoc_group_user = db.Table(
    'assoc_group_user', db.Model.metadata,
    db.Column('group_id', db.Integer, db.ForeignKey('groups.id')),
    db.Column('user_id', db.Integer, db.ForeignKey('users.id')))


class Comment(db.Model):
    __tablename__ = 'comments'
示例#5
0
文件: hw5.py 项目: dgijsbers/HW_5
    )  # using the async email to make sure the email sending doesn't take up all the "app energy" -- the main thread -- at once
    thr.start()
    return thr


#########
######### Everything above this line is important/useful setup, not problem-solving.
#########
#########

##### Set up Models #####

# Association table - Tweets and Hashtags
tweet_hashtags = db.Table(
    'tweet_hashtags',
    db.Column('tweet_id', db.Integer, db.ForeignKey('tweets.id')),
    db.Column('hashtag_id', db.Integer, db.ForeignKey('hashtags.id')))


# Tweet model
class Tweet(db.Model):
    __tablename__ = "tweets"
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(285))
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    hashtags = db.relationship('Hashtag',
                               secondary=tweet_hashtags,
                               backref=db.backref('tweets', lazy='dynamic'),
                               lazy='dynamic')

    def __repr__(self):
from sqlalchemy import func

from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
from marshmallow import fields
from sqlalchemy import create_engine

from werkzeug.security import generate_password_hash, check_password_hash
import uuid

db = SQLAlchemy()
ma = Marshmallow()

TrackCatalogTable = db.Table(
    'track_catalog_table',
    db.Column('track_id', db.Integer, db.ForeignKey('track.id')),
    db.Column('catalog_id', db.Integer, db.ForeignKey('catalog.id')))

BundleVersionTable = db.Table(
    'bundle_version_table',
    db.Column('bundle_id', db.Integer, db.ForeignKey('bundle.id')),
    db.Column('version_id', db.Integer, db.ForeignKey('version.id')))


class Bundle(db.Model):
    """Bundle, containing multiple versions."""

    __tablename__ = 'bundle'
    id = db.Column(db.Integer, primary_key=True)
    bundle_number = db.Column(db.String(50), unique=True)
    bundle_name = db.Column(db.String(30))
示例#7
0
from flask_sqlalchemy import SQLAlchemy
from flask import Flask

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///many.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

association = db.Table(
    'association', db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
    db.Column('channel_id', db.Integer, db.ForeignKey('channels.channel_id')))


class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    subscriptions = db.relationship('Channel',
                                    secondary=association,
                                    backref=db.backref('subscribers',
                                                       lazy='dynamic'))


class Channel(db.Model):
    __tablename__ = 'channels'
    channel_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))


db.create_all()
示例#8
0
                                                  actor_fee=500.00)

    new_actor.insert()
    new_movie.insert()
    db.session.execute(new_performance)
    db.session.commit()


#----------------------------------------------------------------------------#
# Performance Junction Object N:N
#----------------------------------------------------------------------------#

# Instead of creating a new Table, the documentation recommends to create a association table
Performance = db.Table(
    'Performance', db.Model.metadata,
    db.Column('Movie_id', db.Integer, db.ForeignKey('movies.id')),
    db.Column('Actor_id', db.Integer, db.ForeignKey('actors.id')),
    db.Column('actor_fee', db.Float))

#----------------------------------------------------------------------------#
# Actors Model
#----------------------------------------------------------------------------#


class Actor(db.Model):
    __tablename__ = 'actors'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    gender = Column(String)
    age = Column(Integer)
示例#9
0
文件: grouper.py 项目: bgrant/grouper
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = (os.environ.get('DATABASE_URL')
                                         or FALLBACK_DB)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

db = SQLAlchemy(app)
manager = Manager(app)

SQL_MAXINT = int(2**63 - 1)

# Database Models

user_groups = db.Table(
    'user_groups',
    db.Column('user_id', db.Integer, db.ForeignKey('users.id')),
    db.Column('group_id', db.Integer, db.ForeignKey('groups.id')),
)


class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    email = db.Column(db.String, nullable=False)
    groups = db.relationship('Group',
                             secondary=user_groups,
                             backref=db.backref('users', lazy='dynamic'),
                             lazy='dynamic')

    def __repr__(self):
示例#10
0
app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///forum.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'mysecret'
app.config['SECURITY_REGISTERABLE'] = True
app.config['SECURITY_PASSWORD_SALT'] = 'somesaltfortheforum'
app.config['SECURITY_SEND_REGISTER_EMAIL'] = False

db = SQLAlchemy(app)
migrate = Migrate(app, db)

roles_users = db.Table('roles_users',
    db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
    db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))

class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(250))

class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    name = db.Column(db.String(255))
    username = db.Column(db.String(255), unique=True)
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
示例#11
0

class Author(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    names = db.Column(db.String(100), unique=True)

    def __init__(self, names):
        self.names = names

    def __repr__(self):
        return "<Author %r>" % (self.names)


roles_users = db.Table(
    "roles_users",
    db.Column("user_id", db.Integer(), db.ForeignKey("user.id")),
    db.Column("role_id", db.Integer(), db.ForeignKey("role.id")),
)


class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return "<Role %r>" % (self.name)
示例#12
0
@login_manager.user_loader
def load_user(user_id):
    return User.query.get(int(user_id))

########################
## Association tables ##
########################

# Set up association Table between list and articles
#on_list = db.Table('on_list',db.Column('item_id',db.Integer, db.ForeignKey('items.id')),db.Column('list_id',db.Integer, db.ForeignKey('lists.id')))


#########################
## Searches + Articles ##
#########################
searches = db.Table('searches', db.Column('term', db.Integer, db.ForeignKey('searchterms.id')), db.Column('results', db.Integer, db.ForeignKey('items.id')))

#########################
## Users   +  Articles ##
#########################

user_collection = db.Table('user_collection', db.Column('user_id', db.Integer, db.ForeignKey('personallists.id')), db.Column('article_id', db.Integer, db.ForeignKey('items.id')))

class ArticleOnList(db.Model):
    __tablename__ = "items"
    id = db.Column(db.Integer, primary_key=True)
    headline = db.Column(db.String(225))
    author = db.Column(db.String(225))
    summary = db.Column(db.String())
    date = db.Column(db.String())
示例#13
0
    app.config["SQLALCHEMY_DATABASE_URI"] = database_path
    app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
    db.app = app
    db.init_app(app)
    migrate.init_app(app, db)
    # db.create_all()


'''
Movies Actors M2M table

'''
movies_actors = db.Table(
    'movies_actors',
    db.Column('movie_id',
              db.Integer,
              db.ForeignKey('Movie.id'),
              primary_key=True),
    db.Column('actor_id',
              db.Integer,
              db.ForeignKey('Actor.id'),
              primary_key=True))
'''
Movie

'''


class Movie(db.Model):
    __tablename__ = 'Movie'

    id = db.Column(db.Integer, primary_key=True)
示例#14
0
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()


class AppModel(db.Model):

    __abstract__ = 1

    id = db.Column(db.Integer, primary_key=1)

    create_datetime = db.Column(db.DateTime, default=func.now())

    update_datetime = db.Column(db.DateTime, default=func.now())

    def save(self):
        db.session.add(self)
        db.session.commit()

    def to_dict(self):
        pass


roles_users = db.Table(
    "roles_users", db.Column("role_id", db.Integer, db.ForeignKey("role.id")),
    db.Column("user_id", db.Integer, db.ForeignKey("user.id")))

from .role import Role
from .user import User
示例#15
0
from flask_sqlalchemy import SQLAlchemy
from flask_login import AnonymousUserMixin
from .extensions import bcrypt

db = SQLAlchemy()

roles = db.Table('role_users',
                 db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
                 db.Column('role_id', db.Integer, db.ForeignKey('role.id')))


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(255))
    password = db.Column(db.String(255))
    posts = db.relationship('Post', backref='user', lazy='dynamic')

    roles = db.relationship('Role',
                            secondary=roles,
                            backref=db.backref('users', lazy='dynamic'))

    def __init__(self, username):
        self.username = username

    def __repr__(self):
        return "<User '{}'>".format(self.username)

    def set_password(self, password):
        self.password = bcrypt.generate_password_hash(password)

    def check_password(self, password):
示例#16
0
from flask_sqlalchemy import SQLAlchemy
from flask import Flask, request, jsonify, url_for

db = SQLAlchemy()

fav_char = db.Table(
    'fav_chars', db.metadata,
    db.Column("user_id", db.Integer, db.ForeignKey("users.id")),
    db.Column("char_id", db.Integer, db.ForeignKey("characters.id")))

fav_planet = db.Table(
    'fav_planets', db.metadata,
    db.Column("user_id", db.Integer, db.ForeignKey("users.id")),
    db.Column("plan_id", db.Integer, db.ForeignKey("planets.id")))


class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(250), nullable=False)
    lastname = db.Column(db.String(250), nullable=False)
    username = db.Column(db.String(250), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(80), unique=False, nullable=False)
    is_active = db.Column(db.Boolean(),
                          unique=False,
                          nullable=False,
                          default=True)
    characters = db.relationship("Character",
                                 secondary=fav_char,
                                 back_populates="users")
示例#17
0
    msg.html = render_template(template + '.html', **kwargs)
    thr = Thread(target=send_email, args=[app, msg]) # using the async email to make sure the email sending doesn't take up all the "app energy" -- the main thread -- at once
    thr.start()
    return thr # The thread being returned
    # However, if your app sends a LOT of email, it'll be better to set up some additional "queuing" software libraries to handle it. But we don't need to do that yet. Not quite enough users!


#########
######### Everything above this line is important/useful setup, not problem-solving.
#########
#########

##### Set up Models #####

# Association table - Tweets and Hashtags
tweet_hashtags = db.Table('tweet_hashtags', db.Column('tweet_id', db.Integer, db.ForeignKey('tweets.id')), db.Column('hashtag_id', db.Integer, db.ForeignKey('hashtags.id')))

# Tweet model
class Tweet(db.Model):
    __tablename__ = "tweets"
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(285))
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    hashtags = db.relationship('Hashtag', secondary=tweet_hashtags, backref=db.backref('tweets', lazy='dynamic'),lazy='dynamic')

    def __repr__(self):
        return "{}, (ID: {})".format(self.text,self.id)

# TODO: Add and run a  migration so that each twitter username also saves an associated email.
# User model
class User(db.Model):
示例#18
0
# class User(db.Model):
#     id = db.Column(db.Integer, primary_key=True)
#     username = db.Column(db.String(255))
#     email = db.Column(db.String(255), unique=True)

#     def __init__(self, username, email):
#         self.username = username
#         self.email = email

#     def __repr__(self):
#         return '<User %r>' % self.username

# Define models
roles_users = db.Table(
    'roles_users', db.Column('user_id', db.Integer(),
                             db.ForeignKey('user.id')),
    db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))


class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))


class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
示例#19
0
文件: __init__.py 项目: mtander/meep
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

db = SQLAlchemy()
migrate = Migrate(db)

project_owner_assoc = db.Table(
    'project_owner',
    db.Column('project_id',
              db.Integer,
              db.ForeignKey('project.id'),
              primary_key=True),
    db.Column('owner_id',
              db.Integer,
              db.ForeignKey('owner.id'),
              primary_key=True))


class Address(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    address = db.Column(db.String(100))
    city = db.Column(db.String(50))
    state = db.Column(db.String(50))
    zip = db.Column(db.Integer)
    owner_id = db.Column(db.Integer, db.ForeignKey('owner.id'))
    coordinate = db.relationship("Coordinate",
                                 uselist=False,
                                 backref="address")

    def __repr__(self):
        return f'Address(address={self.address}, zip={self.zip})'
示例#20
0
            'category_id': self.category_id,
            'post_num': self.post_num,
            'board_image': self.board_image
        }


# ----------------------------------------------------------------------------------------------------------------
# 유저와 게시글을 한 쌍으로 갖는 post_like 테이블 객체를 생성하였다.
# 유저와 게시글이 모두 프라이머리키이므로 ManyToMany 관계가 성립되는 테이블
# 중복을 막을수 있는 이유는 둘다 프라이머리키이기 때문에 (1,1) (1,1) 이들어오면 데이터베이스 차원에서 오류가 난다.
# secondary 속성은 like가 ManyToMany 관계이며 post_like 테이블을 참조한다는 사실을 알려주는 역할
# ----------------------------------------------------------------------------------------------------------------
post_like = db.Table(
    'post_like',
    db.Column('user_id',
              db.Integer,
              db.ForeignKey('user.id', ondelete='CASCADE'),
              primary_key=True),
    db.Column('post_id',
              db.Integer,
              db.ForeignKey('post.id', ondelete='CASCADE'),
              primary_key=True))
post_report = db.Table(
    'post_report',
    db.Column('user_id',
              db.Integer,
              db.ForeignKey('user.id', ondelete='CASCADE'),
              primary_key=True),
    db.Column('post_id',
              db.Integer,
              db.ForeignKey('post.id', ondelete='CASCADE'),
              primary_key=True))
示例#21
0
db = SQLAlchemy(app)
migrate = Migrate(app, db)


@app.template_filter('markdown')
def markdown_filter(s):
    return Markup(
        markdown.markdown(s,
                          extensions=['sane_lists', 'smarty'],
                          output_format='html5'))


# Description linking tables
register_description = db.Table(
    'register_description',
    db.Column('register_id', db.ForeignKey('register.id'), nullable=False),
    db.Column('revision_id',
              db.ForeignKey('description_revision.id'),
              nullable=False))
field_description = db.Table(
    'field_description',
    db.Column('field_id', db.ForeignKey('field.id'), nullable=False),
    db.Column('revision_id',
              db.ForeignKey('description_revision.id'),
              nullable=False))
table_description = db.Table(
    'table_description',
    db.Column('register_id', db.ForeignKey('table.id'), nullable=False),
    db.Column('revision_id',
              db.ForeignKey('description_revision.id'),
              nullable=False))
示例#22
0
import logging
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.sql.schema import Column

from video_upload.app import app

logger = logging.getLogger(__name__)

__all__ = ["db"]


class NotNullableColumn(Column):
    def __init__(self, *args, **kwargs):
        kwargs.setdefault("nullable", False)
        super().__init__(*args, **kwargs)


db = SQLAlchemy(app)
db.Column = NotNullableColumn
db.Model.get_default = lambda self, column_name: getattr(
    self.__class__, column_name).default.execute(db.session.bind)
db.Model.__repr__ = lambda self: "<%s id=%s>" % (self.__class__.__name__, self.
                                                 id or "0x%x" % id(self))
示例#23
0
DATABASE_URI = 'postgres://*****:*****@ec2-52-44-46-66.compute-1.amazonaws.com:5432/dep76g3od832hk'

db = SQLAlchemy()


def setup_db(app, database_path=DATABASE_URI):
    app.config["SQLALCHEMY_DATABASE_URI"] = DATABASE_URI
    app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
    db.app = app
    db.init_app(app)
    db.create_all()


actors_movies = db.Table(
    'ActorsMovies',
    db.Column('id', db.Integer, primary_key=True),
    db.Column('actor_id', db.Integer, db.ForeignKey('Actor.id')),
    db.Column('movie_id', db.Integer, db.ForeignKey('Movie.id')),
)

# Movies with attributes title and release date


class Movie(db.Model):
    __tablename__ = 'Movie'

    id = Column(Integer, primary_key=True)
    title = Column(String)
    release_date = Column(Date)
    actors = db.relationship('Actor', secondary=actors_movies, backref='Movie')
示例#24
0
from config import *
from flask_sqlalchemy import SQLAlchemy
from datetime import timezone

db = SQLAlchemy()

# Many-to-many table used to associate frontend users access to channels
channels = db.Table(FE_TBL_UID2CID,
                    db.Column('uid',
                              db.Integer,
                              db.ForeignKey(f'{FE_TBL_USERS}.id'),
                              primary_key=True),
                    db.Column('cid',
                              db.Integer,
                              db.ForeignKey(f'{FE_TBL_CHANNELS}.id'),
                              primary_key=True),
                    info={'bind_key': FRONTEND_BINDKEY})


class User(db.Model):
    __bind_key__ = FRONTEND_BINDKEY
    __tablename__ = FE_TBL_USERS

    id = db.Column(db.Integer, primary_key=True)
    # Twitch-specific (for the API/login integration)
    user_id = db.Column(db.Integer, index=True, nullable=False)
    preferred_name = db.Column(db.String(255), index=True, nullable=False)
    access_token = db.Column(db.String(255))
    refresh_token = db.Column(db.String(255))
    expiry_date = db.Column(db.DateTime(timezone.utc))
    # PurpleWhale-specific
示例#25
0
    id = db.Column(db.Text, primary_key=True)
    description = db.Column(db.Text)


class CrimeHourClass(db.Model):
    __tablename__ = 'crime_hour_class'
    __table_args__ = {'schema': 'crimemgr'}

    lower_bound = db.Column(db.Integer)
    upper_bound = db.Column(db.Integer)
    classification = db.Column('class', db.Integer, primary_key=True)
    description = db.Column(db.Text)

CrimeIncidentSimple = db.Table(
    'crime_incident_simple',
    db.Column('dc_key', db.Text),
    db.Column('crime_type', db.Text),
    db.Column('dc_dist', db.Text),
    db.Column('neighborhood_id', db.Integer),
    db.Column('neighborhood_name', db.String(20)),
    db.Column('dispatch_month', db.Float(53)),
    db.Column('dispatch_weekday', db.Float(53)),
    db.Column('dispatch_time', db.Integer),
    db.Column('geom', Geometry),
    db.Column('dispatch_date_time', db.DateTime),
    schema='crimemgr'
)


class CrimeModel(db.Model):
    __tablename__ = 'crime_model'
示例#26
0
    password="******",
    hostname="sql12.freemysqlhosting.net",
    databasename="sql12231151",
)
app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI
app.config["SQLALCHEMY_POOL_RECYCLE"] = 299
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
bootstrap = Bootstrap(app)
db = SQLAlchemy(app)
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'
currentRoom = None


RoomUsers = db.Table("roomUsers", db.Column("roomId",db.Integer,db.ForeignKey("room.roomID"), primary_key=True),
db.Column("userID",db.Integer,db.ForeignKey("user.id"), primary_key=True))


#this is friends middle table
Friend = db.Table("friend",
db.Column("username1",db.Integer,db.ForeignKey("user.id"),primary_key=True),
db.Column("username2",db.Integer,db.ForeignKey("user.id"),primary_key=True))

class User(UserMixin, db.Model):
    id = db.Column(db.Integer,primary_key = True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    password = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    firstName = db.Column(db.String(80),nullable=False)
    lastName = db.Column(db.String(80),nullable=False)
示例#27
0
    def update(self, name, profile_pic):
        self.name = name
        self.profile_pic = profile_pic

    def __repr__(self):
        return f"<Investor {self.id} {self.name}>"

    def report_lists(self):
        print("investment lists:")
        for list in self.investment_lists:
            print(list.list_name)


# many to many
association_table = db.Table('association',
                             db.Column('investment_lists_id', db.Integer, db.ForeignKey(
                                 'investment_lists.id'), primary_key=True),
                             db.Column('investment_properties_id', db.Integer, db.ForeignKey(
                                 'investment_properties.id'), primary_key=True)
                             )


class InvestmentList(db.Model):
    __tablename__ = 'investment_lists'

    id = db.Column(db.Integer, primary_key=True)
    list_name = db.Column(db.Text)
    investor_id = db.Column(db.Text, db.ForeignKey('investors.id'))
    investment_properties = db.relationship("InvestmentProperty",
                                            secondary=association_table,
                                            backref=db.backref("investment_lists", lazy='dynamic'))
示例#28
0
from eBookClub import settings

app = Flask(__name__)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_DATABASE_URI'] = settings.MYSQL_URI
app.config['SECRET_KEY'] = settings.SECRETKEY

db = SQLAlchemy(app)

engine = create_engine(settings.MYSQL_URI)
Session = sessionmaker(bind=engine)
Base = declarative_base()

role_users = db.Table('role_users',
                      db.Column('user_id', db.Integer(),
                                db.ForeignKey('user.id')),
                      db.Column('role_id', db.Integer(),
                                db.ForeignKey('role.id')),
                      extend_existing=True)

Posts = db.Table(
    'Posts', db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
    db.Column('book_isbn', db.String(30), db.ForeignKey('Book.ISBN')))


class Role(db.Model, RoleMixin):
    __tablename__ = 'Role'
    __table_args__ = {'extend_existing': True}

    id = db.Column(db.Integer,
                   db.ForeignKey('role_users.role_id'),
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# Set up Flask debug stuff
manager = Manager(app)
# moment = Moment(app) # For time # Later
db = SQLAlchemy(app) # For database use

#########
######### Everything above this line is important/useful setup, not problem-solving.
#########

##### Set up Models #####

# Set up association Table between artists and albums for many-many relationship
collections = db.Table('collections',db.Column('album_id',db.Integer, db.ForeignKey('albums.id')),db.Column('artist_id',db.Integer, db.ForeignKey('artists.id')))

class Album(db.Model):
    __tablename__ = "albums"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64))
    artists = db.relationship('Artist',secondary=collections,backref=db.backref('albums',lazy='dynamic'),lazy='dynamic')
    songs = db.relationship('Song',backref='Album')

class Artist(db.Model):
    __tablename__ = "artists"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64))
    songs = db.relationship('Song',backref='Artist')

    def __repr__(self):
示例#30
0
from flask.ext.uploads import configure_uploads, patch_request_class
from flask_thumbnails_s3 import Thumbnail

from library.admin_utils import ProtectedAdminIndexView


app = Flask(__name__,
            template_folder=path.abspath(
                path.join(path.dirname(__file__), '../templates')),
            static_folder=path.abspath(
                path.join(path.dirname(__file__), '../static')))

app.config.from_object('project.settings')

db = SQLAlchemy(app)
db.Column = sqlalchemy_defaults.Column
sqlalchemy_defaults.make_lazy_configured(db.mapper)

migrate = Migrate(app, db, path.join(app.config['PROJECT_ROOT'], 'migrations'))

from accounts.models import Role, User
security = Security(app, SQLAlchemyUserDatastore(db, User, Role))

Bootstrap(app)

thumb = Thumbnail(app)

from foo.uploads import upload_sets

configure_uploads(app, upload_sets)
patch_request_class(app)
示例#31
0
class Category(db.Model):
    __tablename__ = 'categories'
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(255), nullable=False)
    slug = db.Column(db.String(255), nullable=False)
    created_on = db.Column(db.DateTime(), default=datetime.utcnow)
    created_on = db.Column(db.DateTime(), default=datetime.utcnow)
    posts = db.relationship('Post', backref='category')

    def __repr__(self):
        return "<{}:{}>".format(id, self.name)


post_tags = db.Table(
    'post_tags', db.Column('post_id', db.Integer, db.ForeignKey('posts.id')),
    db.Column('tag_id', db.Integer, db.ForeignKey('tags.id')))


class Post(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer(), primary_key=True)
    title = db.Column(db.String(255), nullable=False)
    slug = db.Column(db.String(255), nullable=False)
    content = db.Column(db.Text(), nullable=False)
    created_on = db.Column(db.DateTime(), default=datetime.utcnow)
    updated_on = db.Column(db.DateTime(),
                           default=datetime.utcnow,
                           onupdate=datetime.utcnow)

    def __repr__(self):