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) |
