diff options
| author | Teddy Wing | 2015-01-31 17:55:01 -0500 | 
|---|---|---|
| committer | Teddy Wing | 2015-01-31 17:55:01 -0500 | 
| commit | f5115419d305c743a8df615c4cf16dcb07642062 (patch) | |
| tree | 6b5d488707ef270ccef2cd241a8694dd99c3aabf | |
| parent | e15643dd00d14e271d389a9a27f3fd0ae130981e (diff) | |
| download | edu-net-f5115419d305c743a8df615c4cf16dcb07642062.tar.bz2 | |
Add database & user models
* Database courtesy of Flask-SQLAlchemy
* User models from Flask-User
| -rw-r--r-- | app.py | 18 | ||||
| -rw-r--r-- | modules/__init__.py | 0 | ||||
| -rw-r--r-- | modules/shared/__init__.py | 0 | ||||
| -rw-r--r-- | modules/shared/models.py | 3 | ||||
| -rw-r--r-- | modules/user/__init__.py | 0 | ||||
| -rw-r--r-- | modules/user/models.py | 32 | 
6 files changed, 53 insertions, 0 deletions
| @@ -1,6 +1,24 @@  from flask import Flask + +from flask_user import SQLAlchemyAdapter, UserManager + +from modules.shared.models import db +from modules.user.models import User, UserAuth +  app = Flask(__name__) +app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///development.db' +app.config['SECRET_KEY'] = 'this should definitely be changed to an ' \ +    'environment variable' +db.init_app(app) + +with app.app_context(): +    db.create_all() + +# Setup Flask-User +db_adapter = SQLAlchemyAdapter(db,  User, UserAuthClass=UserAuth) +user_manager = UserManager(db_adapter, app) +  @app.route("/")  def hello():      return "Hello World!" diff --git a/modules/__init__.py b/modules/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/modules/__init__.py diff --git a/modules/shared/__init__.py b/modules/shared/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/modules/shared/__init__.py diff --git a/modules/shared/models.py b/modules/shared/models.py new file mode 100644 index 0000000..815dcc3 --- /dev/null +++ b/modules/shared/models.py @@ -0,0 +1,3 @@ +from flask.ext.sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/modules/user/__init__.py b/modules/user/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/modules/user/__init__.py diff --git a/modules/user/models.py b/modules/user/models.py new file mode 100644 index 0000000..0731a67 --- /dev/null +++ b/modules/user/models.py @@ -0,0 +1,32 @@ +from flask_user import UserMixin + +from modules.shared.models import db + + +class User(db.Model): +    id = db.Column(db.Integer, primary_key=True) + +    # User email information +    email = db.Column(db.String(255), nullable=False, unique=True) +    confirmed_at = db.Column(db.DateTime()) + +    # User information +    is_enabled = db.Column(db.Boolean(), nullable=False, default=False) +    first_name = db.Column(db.String(50), nullable=False, default='') +    last_name = db.Column(db.String(50), nullable=False, default='') + +    def is_active(self): +      return self.is_enabled + + +class UserAuth(db.Model, UserMixin): +    id = db.Column(db.Integer, primary_key=True) +    user_id = db.Column(db.Integer(), db.ForeignKey('user.id', ondelete='CASCADE')) + +    # User authentication information +    username = db.Column(db.String(50), nullable=False, unique=True) +    password = db.Column(db.String(255), nullable=False, default='') +    reset_password_token = db.Column(db.String(100), nullable=False, default='') + +    # Relationships +    user = db.relationship('User', uselist=False, foreign_keys=user_id) | 
