summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2015-01-31 17:55:01 -0500
committerTeddy Wing2015-01-31 17:55:01 -0500
commitf5115419d305c743a8df615c4cf16dcb07642062 (patch)
tree6b5d488707ef270ccef2cd241a8694dd99c3aabf
parente15643dd00d14e271d389a9a27f3fd0ae130981e (diff)
downloadedu-net-f5115419d305c743a8df615c4cf16dcb07642062.tar.bz2
Add database & user models
* Database courtesy of Flask-SQLAlchemy * User models from Flask-User
-rw-r--r--app.py18
-rw-r--r--modules/__init__.py0
-rw-r--r--modules/shared/__init__.py0
-rw-r--r--modules/shared/models.py3
-rw-r--r--modules/user/__init__.py0
-rw-r--r--modules/user/models.py32
6 files changed, 53 insertions, 0 deletions
diff --git a/app.py b/app.py
index 107f67b..6e4402d 100644
--- a/app.py
+++ b/app.py
@@ -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)