Created
August 10, 2017 16:49
-
-
Save sousatg/fe6344151d75466c11b624ac425f8314 to your computer and use it in GitHub Desktop.
Flask App
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
from pprint import pprint | |
import wtforms_json | |
from flask import Flask, g, request, redirect, url_for | |
from flask_marshmallow import Marshmallow | |
from flask_restful import Resource, Api | |
from flask_sqlalchemy import SQLAlchemy | |
from flask_wtf import FlaskForm | |
from functools import wraps | |
from marshmallow_sqlalchemy import ModelSchema | |
from wtforms import StringField | |
def createCompanyDecorator(f): | |
@wraps(f) | |
def decorated_function(*args, **kwargs): | |
json = request.get_json() | |
schema = CompanySchema() | |
result = schema.load(json) | |
pprint(result.data) | |
''' | |
form = CreateCompanyForm.from_json(json) | |
if form.validate(): | |
print(json) | |
print json | |
''' | |
return f(*args, **kwargs) | |
return decorated_function | |
def createUserDecorator(f): | |
@wraps(f) | |
def decorated_function(*args, **kwargs): | |
json = request.get_json() | |
form = CreateUserForm(obj=UserModel).from_json(json) | |
print("A") | |
if form.validate_on_submit(): | |
print("Cenas............") | |
#user = UserModel() | |
#form.populate_obj(user) | |
return f(*args, **kwargs) | |
return decorated_function | |
app = Flask(__name__) | |
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' | |
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False | |
db = SQLAlchemy(app) | |
ma = Marshmallow(app) | |
api = Api(app) | |
wtforms_json.init() | |
app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT' | |
class Company(db.Model): | |
id = db.Column(db.Integer, primary_key=True) | |
companyName = db.Column(db.String(255)) | |
class CompanySchema(ModelSchema): | |
class Meta: | |
model = Company | |
sqla_session = db.session | |
class CreateCompanyForm(FlaskForm): | |
class Meta: | |
csrf_enabled = False | |
companyName = StringField('CompanyName') | |
class UserModel(db.Model): | |
id = db.Column(db.Integer, primary_key=True) | |
userName = db.Column(db.String(50)) | |
password = db.Column(db.String(50)) | |
class UserSchema(ModelSchema): | |
class Meta: | |
model = UserModel | |
sqla_session = db.session | |
class CreateUserForm(FlaskForm): | |
class Meta: | |
csrf_enabled = False | |
userName = StringField('userName') | |
password = StringField('password') | |
class Company(Resource): | |
def get(self): | |
return {"Hello": "World"} | |
@createCompanyDecorator | |
def post(self): | |
return {"Hello": "World"} | |
class User(Resource): | |
def get(self): | |
user_schema = UserSchema() | |
users = db.session.query(UserModel).all() | |
result = user_schema.dump(users) | |
return result | |
@createUserDecorator | |
def post(self): | |
return {"POST": "User"} | |
def put(self): | |
return {"PUT": "USer"} | |
api.add_resource(Company, '/company') | |
api.add_resource(User, '/user') | |
if __name__ == '__main__': | |
db.create_all() | |
app.run(debug=True) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment