From 2848308a86e58cf227568aea9a3a21ae6537cd77 Mon Sep 17 00:00:00 2001 From: "Sachin S. Kamath" <sskamath96@gmail.com> Date: Thu, 19 Oct 2017 15:59:30 +0530 Subject: [PATCH] Define basic controller and add flask_api boilerplate Signed-off-by: Sachin S. Kamath <sskamath96@gmail.com> --- hodor/api/__init__.py | 0 hodor/api/user.py | 12 ++++++++++++ hodor/app.py | 21 +++++++++++++++++++++ hodor/controllers/user.py | 14 ++++++++++++++ hodor/models/user.py | 39 +++++++++++++++++++++++++++++++++++++++ manage.py | 15 +++++++++++++++ 6 files changed, 101 insertions(+) create mode 100644 hodor/api/__init__.py create mode 100644 hodor/api/user.py create mode 100644 hodor/app.py create mode 100644 hodor/controllers/user.py create mode 100644 hodor/models/user.py create mode 100644 manage.py diff --git a/hodor/api/__init__.py b/hodor/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/hodor/api/user.py b/hodor/api/user.py new file mode 100644 index 0000000..2075c09 --- /dev/null +++ b/hodor/api/user.py @@ -0,0 +1,12 @@ +from hodor.app import api +from flask_restplus import Resource + +ns = api.namespace('/users', description='Operations related to blog posts') + +@ns.route('/users') +class listusers(Resource): + def get(self): + return {'user': 'noob'} + + +api.add_resource(listusers, '/users') \ No newline at end of file diff --git a/hodor/app.py b/hodor/app.py new file mode 100644 index 0000000..0f402ea --- /dev/null +++ b/hodor/app.py @@ -0,0 +1,21 @@ +from flask import Flask, request +from flask_restplus import Resource, Api +from api.user import ns as user_namespace + +app = Flask(__name__) +api = Api(app) + +todos = {} + +@api.route('/<string:todo_id>') +class TodoSimple(Resource): + def get(self, todo_id): + return {todo_id: todos[todo_id]} + + def put(self, todo_id): + todos[todo_id] = request.form['data'] + return {todo_id: todos[todo_id]} + +api.add_namespace(user_namespace) +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/hodor/controllers/user.py b/hodor/controllers/user.py new file mode 100644 index 0000000..82f68d5 --- /dev/null +++ b/hodor/controllers/user.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +from hodor import app +from flask import jsonify + + +@app.route('/') +def start(): + return jsonify({'hello':'world'}) + + +@app.route('/print', methods=['GET', 'POST']) +def printer(): + form = {'noob' : 'shit'} + return form diff --git a/hodor/models/user.py b/hodor/models/user.py new file mode 100644 index 0000000..c74526c --- /dev/null +++ b/hodor/models/user.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +from hodor import db + +class User(db.Model): + __tablename__ = 'users' + + # Values entered by the user + username = db.Column(db.String(32), primary_key=True) + first_name = db.Column(db.String(32), nullable=False) + last_name = db.Column(db.String(32), nullable=False) + email = db.Column(db.String(64), unique=True, nullable=False) + password = db.Column(db.String(64), nullable=False) + + # Platform values + disabled = db.Column(db.Boolean, default=False) + verified_account = db.Column(db.Boolean, default=False) + verification_code = db.Column(db.String(32), nullable=False) + + def __unicode__(self): + return unicode(self.username) + + def __init__(self, name): + """initialize with name.""" + self.name = name + + def save(self): + db.session.add(self) + db.session.commit() + + @staticmethod + def get_all(): + return User.query.all() + + def delete(self): + db.session.delete(self) + db.session.commit() + + def __repr__(self): + return "<User: {}>".format(self.name) \ No newline at end of file diff --git a/manage.py b/manage.py new file mode 100644 index 0000000..e3f8d3f --- /dev/null +++ b/manage.py @@ -0,0 +1,15 @@ +import os +from flask_script import Manager # class for handling a set of commands +from flask_migrate import Migrate, MigrateCommand +from hodor import db, create_app +from hodor.models.user import User + +app = create_app(config_name='development') + +migrate = Migrate(app, db) +manager = Manager(app) + +manager.add_command('db', MigrateCommand) + +if __name__ == '__main__': + manager.run() -- GitLab