src/
api/
urls.py:
from main import api
from views.user import UserView, UserDetailView
api.add_resource(UserView, '/api/users/')
api.add_resource(UserDetailView, '/api/users/<int:pk>')
src/
main.py:
import os
import pymysql
from flask import Flask, send_from_directory
from flask_sqlalchemy import SQLAlchemy
from flask_restful import Api
from flask_cors import CORS
pymysql.install_as_MySQLdb()
app = Flask(__name__, static_url_path='', static_folder='./ui/build/web/')
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY')
app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = f'mysql://root:{os.environ.get("DB_PASSWORD")}@localhost/db'
CORS(app)
db = SQLAlchemy(app)
api = Api(app)
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def index(path):
return send_from_directory(app.static_folder, 'index.html')
if __name__ == '__main__':
app.run()
how do i connect those resources to the app when its running
CodePudding user response:
So, src/api/urls.py
:
from views.user import UserView, UserDetailView
def register(api):
api.add_resource(UserView, '/api/users/')
api.add_resource(UserDetailView, '/api/users/<int:pk>')
And in src/main.py
:
...
from flask_cors import CORS
from api.urls import register
...
api = Api(app)
register(api)