feat(issue22/server-flask): Refactors archi

- uses package rfq with only one file
- adds basic setup.py
- remove package versionning inside requirements
- lets flask version in setup.py (issue regarding setuptools)
This commit is contained in:
sovanna 2020-04-15 12:40:34 +09:00
parent 5703458586
commit 4efa24b09b
8 changed files with 49 additions and 65 deletions

View File

View File

@ -1,22 +0,0 @@
from flask import Flask
from flask_mail import Mail
from werkzeug.middleware.proxy_fix import ProxyFix
import config
mail = Mail()
def create_app(cfg=config):
app = Flask(__name__)
app.config.from_object(cfg)
app.wsgi_app = ProxyFix(app.wsgi_app)
mail.init_app(app)
from app.api import bp as bp_api
app.register_blueprint(bp_api)
return app

View File

@ -1,7 +0,0 @@
from flask import Blueprint
bp = Blueprint("api", __name__, url_prefix="/api")
from app.api import routes # nopep8

View File

@ -1,18 +0,0 @@
from dotenv import load_dotenv
from os import getenv
load_dotenv()
DEBUG = True if getenv('FLASK_DEBUG') == 'True' else False
SECRET_KEY = getenv('FLASK_SECRET_KEY')
MAIL_SERVER = getenv("FLASK_MAIL_SERVER")
MAIL_PORT = getenv("FLASK_MAIL_PORT")
MAIL_USE_SSL = getenv("FLASK_MAIL_USE_SSL")
MAIL_DEBUG = DEBUG
MAIL_USERNAME = getenv("FLASK_MAIL_USERNAME")
MAIL_PASSWORD = getenv("FLASK_MAIL_PASSWORD")
MAIL_RECIPIENT = getenv("FLASK_MAIL_RECIPIENT")

View File

@ -1,4 +0,0 @@
from app import create_app
app = create_app()

View File

@ -1,10 +1,10 @@
blinker==1.4 blinker
click==7.1.1 click
Flask==1.1.2 Flask
Flask-Mail==0.9.1 Flask-Mail
itsdangerous==1.1.0 itsdangerous
Jinja2==2.11.1 Jinja2
MarkupSafe==1.1.1 MarkupSafe
python-dotenv==0.12.0 python-dotenv
six==1.14.0 six
Werkzeug==1.0.1 Werkzeug

View File

@ -1,21 +1,42 @@
from dotenv import load_dotenv
from flask import Flask
from flask import current_app from flask import current_app
from flask import json from flask import json
from flask import jsonify from flask import jsonify
from flask import make_response from flask import make_response
from flask import request from flask import request
from flask_mail import Mail
from flask_mail import Message from flask_mail import Message
from app.api import bp from os import getenv
from app import mail from werkzeug.middleware.proxy_fix import ProxyFix
load_dotenv()
app = Flask(__name__)
app.config.update(
DEBUG=True if getenv('FLASK_DEBUG') == 'True' else False,
SECRET_KEY=getenv('FLASK_SECRET_KEY'),
MAIL_SERVER=getenv("FLASK_MAIL_SERVER"),
MAIL_PORT=getenv("FLASK_MAIL_PORT"),
MAIL_USE_SSL=getenv("FLASK_MAIL_USE_SSL"),
MAIL_DEBUG=False,
MAIL_USERNAME=getenv("FLASK_MAIL_USERNAME"),
MAIL_PASSWORD=getenv("FLASK_MAIL_PASSWORD"),
MAIL_RECIPIENT=getenv("FLASK_MAIL_RECIPIENT")
)
app.wsgi_app = ProxyFix(app.wsgi_app)
mail = Mail(app)
@bp.after_request @app.after_request
def after(response): def after(response):
response.headers["Access-Control-Allow-Origin"] = "*" response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Headers"] = "*" response.headers["Access-Control-Allow-Headers"] = "*"
return response return response
@bp.route("/rfq", methods=["POST"]) @app.route("/rfq", methods=["POST"])
def send_rfq(): def send_rfq():
payload = request.json payload = request.json
payload = json.loads(json.htmlsafe_dumps(payload)) payload = json.loads(json.htmlsafe_dumps(payload))

14
server/setup.py Normal file
View File

@ -0,0 +1,14 @@
from setuptools import setup
from setuptools import find_packages
setup(
name='MLabsRFQAPI',
version='1.0.0',
packages=find_packages(),
zip_safe=False,
install_requires=[
'Flask>=1.1.2',
'Flask-Mail',
'python-dotenv'
]
)