david 6 éve
szülő
commit
e97cdd0ea1

+ 3 - 0
backend/.gitignore

@@ -0,0 +1,3 @@
+.venv
+__pycache__
+*.egg-info

+ 0 - 0
backend/backend/__init__.py


+ 20 - 0
backend/backend/api.py

@@ -0,0 +1,20 @@
+from flask import request, make_response
+from flask_restful import Resource
+
+from backend.database import db
+from backend.models import PayloadModel
+
+
+class Payload(Resource):
+    def get(self):
+        return [item.data for item in PayloadModel.query.all()]
+
+    def post(self):
+        data = request.get_json()
+        if data is None:
+            return make_response('', 400)
+        p = PayloadModel(data=data)
+        db.session.add(p)
+        db.session.commit()
+
+        return make_response('', 201)

+ 25 - 0
backend/backend/app.py

@@ -0,0 +1,25 @@
+import waitress
+
+from backend.api import Payload
+from backend.database import db
+
+from flask import Flask
+from flask_restful import Api
+
+
+def start(prod=True):
+    app = Flask(__name__)
+    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
+    db.init_app(app)
+
+    api = Api(app)
+    api.add_resource(Payload, '/')
+
+    if prod:
+        waitress.serve(app, host='0.0.0.0', port=5001)
+    else:
+        app.run(debug=True, port=5001)
+
+
+if __name__ == '__main__':
+    start(prod=False)

+ 2 - 0
backend/backend/database.py

@@ -0,0 +1,2 @@
+from flask_sqlalchemy import SQLAlchemy
+db = SQLAlchemy()

+ 7 - 0
backend/backend/models.py

@@ -0,0 +1,7 @@
+from sqlalchemy.types import Integer, JSON
+from backend.database import db
+
+
+class PayloadModel(db.Model):
+    id = db.Column(Integer, primary_key=True)
+    data = db.Column(JSON, nullable=False)

+ 24 - 0
backend/setup.py

@@ -0,0 +1,24 @@
+from setuptools import setup
+
+setup(name='backend',
+        version='0.1',
+        description='',
+        url='',
+        author='',
+        author_email='',
+        license='',
+        packages=['backend'],
+        zip_safe=False,
+        entry_points={
+            'console_scripts': [
+                'webserver = backend.app:start'
+                ],
+            },
+        install_requires=[
+            'Flask==1.1.1',
+            'Flask-RESTful==0.3.8',
+            'Flask-SQLAlchemy==2.4.1',
+            'psycopg2-binary==2.8.4',
+            'SQLAlchemy==1.3.15',
+            'waitress==1.4.3',
+            ])

+ 6 - 0
backend/utils/create_db.py

@@ -0,0 +1,6 @@
+from backend.app import app
+from backend.database import db
+
+with app.app_context():
+    db.create_all()
+    print('DB created')