Advertisement
Guest User

Untitled

a guest
Aug 11th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1. import sys
  2. from pprint import pprint
  3.  
  4. import wtforms_json
  5.  
  6. from flask import Flask, g, request, redirect, url_for
  7. from flask_marshmallow import Marshmallow
  8. from flask_restful import Resource, Api
  9. from flask_sqlalchemy import SQLAlchemy
  10. from flask_wtf import FlaskForm
  11. from functools import wraps
  12. from marshmallow_sqlalchemy import ModelSchema
  13. from wtforms import StringField
  14.  
  15. def createCompanyDecorator(f):
  16. @wraps(f)
  17. def decorated_function(*args, **kwargs):
  18. json = request.get_json()
  19. schema = CompanySchema()
  20. result = schema.load(json)
  21. pprint(result.data)
  22.  
  23. '''
  24. form = CreateCompanyForm.from_json(json)
  25.  
  26. if form.validate():
  27. print(json)
  28.  
  29. print json
  30. '''
  31.  
  32. return f(*args, **kwargs)
  33. return decorated_function
  34.  
  35. def createUserDecorator(f):
  36. @wraps(f)
  37. def decorated_function(*args, **kwargs):
  38. json = request.get_json()
  39. form = CreateUserForm(obj=UserModel).from_json(json)
  40.  
  41. print("A")
  42. if form.validate_on_submit():
  43. print("Cenas............")
  44. #user = UserModel()
  45. #form.populate_obj(user)
  46.  
  47. return f(*args, **kwargs)
  48. return decorated_function
  49.  
  50. app = Flask(__name__)
  51. app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
  52. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  53.  
  54. db = SQLAlchemy(app)
  55. ma = Marshmallow(app)
  56. api = Api(app)
  57.  
  58. wtforms_json.init()
  59. app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
  60.  
  61. class Company(db.Model):
  62. id = db.Column(db.Integer, primary_key=True)
  63. companyName = db.Column(db.String(255))
  64.  
  65. class CompanySchema(ModelSchema):
  66. class Meta:
  67. model = Company
  68. sqla_session = db.session
  69.  
  70. class CreateCompanyForm(FlaskForm):
  71. class Meta:
  72. csrf_enabled = False
  73.  
  74. companyName = StringField('CompanyName')
  75.  
  76.  
  77. class UserModel(db.Model):
  78. id = db.Column(db.Integer, primary_key=True)
  79. userName = db.Column(db.String(50))
  80. password = db.Column(db.String(50))
  81.  
  82. class UserSchema(ModelSchema):
  83. class Meta:
  84. model = UserModel
  85. sqla_session = db.session
  86.  
  87. class CreateUserForm(FlaskForm):
  88. class Meta:
  89. csrf_enabled = False
  90.  
  91. userName = StringField('userName')
  92. password = StringField('password')
  93.  
  94. class Company(Resource):
  95. def get(self):
  96. return {"Hello": "World"}
  97.  
  98. @createCompanyDecorator
  99. def post(self):
  100. return {"Hello": "World"}
  101.  
  102. class User(Resource):
  103. def get(self):
  104. user_schema = UserSchema()
  105. users = db.session.query(UserModel).all()
  106. result = user_schema.dump(users)
  107. return result
  108.  
  109. @createUserDecorator
  110. def post(self):
  111. return {"POST": "User"}
  112.  
  113. def put(self):
  114. return {"PUT": "USer"}
  115.  
  116. api.add_resource(Company, '/company')
  117. api.add_resource(User, '/user')
  118.  
  119. if __name__ == '__main__':
  120. db.create_all()
  121. app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement