create app factory pattern
This commit is contained in:
parent
c8d56b5e1e
commit
7c14f451bb
10 changed files with 62 additions and 68 deletions
|
@ -3,7 +3,6 @@ from .users.user_endpoint import UserEndpoint
|
||||||
|
|
||||||
api = Blueprint('api', __name__, url_prefix='/api')
|
api = Blueprint('api', __name__, url_prefix='/api')
|
||||||
|
|
||||||
|
|
||||||
@api.route('/home', methods=['GET'])
|
@api.route('/home', methods=['GET'])
|
||||||
def api_home():
|
def api_home():
|
||||||
response = {"message": "home page"}
|
response = {"message": "home page"}
|
||||||
|
|
58
app.py
58
app.py
|
@ -1,58 +0,0 @@
|
||||||
import os
|
|
||||||
|
|
||||||
from flask import Flask
|
|
||||||
|
|
||||||
# ! SQLAlchemy > Marshmallow - these must be imported in this order
|
|
||||||
from flask_sqlalchemy import SQLAlchemy
|
|
||||||
from flask_marshmallow import Marshmallow
|
|
||||||
|
|
||||||
from flask_migrate import Migrate
|
|
||||||
|
|
||||||
from flask_bcrypt import Bcrypt
|
|
||||||
from flask_cors import CORS
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
|
||||||
CORS(app)
|
|
||||||
|
|
||||||
# config database
|
|
||||||
app_settings = os.getenv(
|
|
||||||
'APP_SETTINGS',
|
|
||||||
'config.DevelopmentConfig'
|
|
||||||
)
|
|
||||||
|
|
||||||
app.config.from_object(app_settings)
|
|
||||||
|
|
||||||
# init bcrypt
|
|
||||||
bcrypt = Bcrypt(app)
|
|
||||||
|
|
||||||
# init database
|
|
||||||
db = SQLAlchemy(app)
|
|
||||||
|
|
||||||
# init marshmallow
|
|
||||||
ma = Marshmallow(app)
|
|
||||||
|
|
||||||
# init all db models
|
|
||||||
import models
|
|
||||||
|
|
||||||
migrate = Migrate(app, db)
|
|
||||||
|
|
||||||
|
|
||||||
# dev server
|
|
||||||
DEBUG = True
|
|
||||||
PORT = 8000
|
|
||||||
|
|
||||||
# Routes
|
|
||||||
|
|
||||||
@app.route('/')
|
|
||||||
def hello_world():
|
|
||||||
return 'Hello World'
|
|
||||||
|
|
||||||
# Blue prints
|
|
||||||
from api.api import api
|
|
||||||
from auth.auth import auth
|
|
||||||
|
|
||||||
app.register_blueprint(api)
|
|
||||||
app.register_blueprint(auth)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
app.run(debug=DEBUG, port=PORT)
|
|
|
@ -1,6 +1,6 @@
|
||||||
from flask import Blueprint, request, jsonify, session
|
from flask import Blueprint, request, jsonify, session
|
||||||
import models
|
from models import User
|
||||||
|
print(User)
|
||||||
auth = Blueprint('auth', __name__, url_prefix='/auth')
|
auth = Blueprint('auth', __name__, url_prefix='/auth')
|
||||||
|
|
||||||
@auth.route('/signup', methods=['POST'])
|
@auth.route('/signup', methods=['POST'])
|
||||||
|
|
|
@ -14,6 +14,7 @@ class DevelopmentConfig(BaseConfig):
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
BCRYPT_LOG_ROUNDS = 4
|
BCRYPT_LOG_ROUNDS = 4
|
||||||
SQLALCHEMY_DATABASE_URI = DATABASE
|
SQLALCHEMY_DATABASE_URI = DATABASE
|
||||||
|
PORT = 8000
|
||||||
|
|
||||||
|
|
||||||
class TestingConfig(BaseConfig):
|
class TestingConfig(BaseConfig):
|
7
config/models_mount.py
Normal file
7
config/models_mount.py
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from ..models.User import User
|
||||||
|
from ..models.GameRoom import GameRoom
|
||||||
|
from ..models.TimeSettings import TimeSettings
|
||||||
|
from ..models.Game import Game
|
||||||
|
from ..models.Move import Move
|
||||||
|
from ..models.Message import Message
|
15
database.py
Normal file
15
database.py
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
# ! SQLAlchemy > Marshmallow - these must be imported in this order
|
||||||
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
|
from flask_marshmallow import Marshmallow
|
||||||
|
from flask_bcrypt import Bcrypt
|
||||||
|
|
||||||
|
# init bcrypt
|
||||||
|
def bcrypt(app):
|
||||||
|
Bcrypt(app)
|
||||||
|
|
||||||
|
# init database
|
||||||
|
db = SQLAlchemy()
|
||||||
|
|
||||||
|
# init marshmallow
|
||||||
|
ma = Marshmallow()
|
|
@ -1,6 +0,0 @@
|
||||||
from models.User import User
|
|
||||||
from models.GameRoom import GameRoom
|
|
||||||
from models.TimeSettings import TimeSettings
|
|
||||||
from models.Game import Game
|
|
||||||
from models.Move import Move
|
|
||||||
from models.Message import Message
|
|
|
@ -1,4 +1,4 @@
|
||||||
from app import db, ma, bcrypt
|
from database import db, ma, bcrypt
|
||||||
import datetime
|
import datetime
|
||||||
import enum
|
import enum
|
||||||
import jwt
|
import jwt
|
||||||
|
|
36
server.py
Normal file
36
server.py
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
import os
|
||||||
|
from database import db, ma, bcrypt
|
||||||
|
|
||||||
|
from flask import Flask
|
||||||
|
|
||||||
|
from flask_migrate import Migrate
|
||||||
|
|
||||||
|
from flask_cors import CORS
|
||||||
|
|
||||||
|
# Blueprints
|
||||||
|
from api.api import api
|
||||||
|
from auth.auth import auth
|
||||||
|
|
||||||
|
import config.models_mount
|
||||||
|
|
||||||
|
def create_app():
|
||||||
|
app = Flask(__name__)
|
||||||
|
bcrypt(app)
|
||||||
|
CORS(app)
|
||||||
|
app_settings = os.getenv(
|
||||||
|
'APP_SETTINGS',
|
||||||
|
'config.config.DevelopmentConfig'
|
||||||
|
)
|
||||||
|
|
||||||
|
app.config.from_object(app_settings)
|
||||||
|
db.init_app(app)
|
||||||
|
ma.init_app(app)
|
||||||
|
app.register_blueprint(api)
|
||||||
|
app.register_blueprint(auth)
|
||||||
|
migrate = Migrate(app, db)
|
||||||
|
return app
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app = create_app()
|
||||||
|
app.run(port=8000, debug=True)
|
Loading…
Reference in a new issue