2016-10-20 15 views
1

私は正しく行う方法がわかりません。フラスコの青写真として落ち着かない方法

青写真API:

# coding: utf-8 
from flask import Blueprint, render_template 
from ..models import User 
from flask_restless import APIManager 

manager = APIManager() 

manager.create_api(User, url_prefix='/api', methods=['GET', 'POST', 'DELETE', 'PUT', 'PATCH']) 

bp = Blueprint('api', __name__) 

__init__.py

def register_db(app): 
    from .models import db 

    db.init_app(app) 

def register_api(app): 
    from .controllers.api import manager 

    manager.init_app(app, flask_sqlalchemy_db=db) 

レジスタの青写真の:

def register_routes(app): 
    from . import controllers 
    from flask.blueprints import Blueprint 
for module in _import_submodules_from_package(controllers): 
    bp = getattr(module, 'bp') 
    if bp and isinstance(bp, Blueprint): 
     app.register_blueprint(bp) 

を開始しようとしたとき、私はこのエラーを取得:

はRuntimeError:アプリケーションは、DBインスタンスに登録されていないと何のアプリケーションは、私はメソッド= [ 'GET'、 'POST'、 'DELETE'、 'PUT'、 'PATCH']、除外した場合、現在のコンテキスト

にバインドされていませんアプリケーションが開始されたが、私は、要求のhttp http://0.0.0.0:5000/api/userを送信しようとした場合、明らかに、私は答えを得る:答えを見つけるためにどこに問題を解決するための例を与えるものではありません

HTTP/1.0 500 INTERNAL SERVER ERROR 
Content-Length: 291 
Content-Type: text/html 
Date: Thu, 20 Oct 2016 15:33:52 GMT 
Server: Werkzeug/0.11.11 Python/3.5.2 

Docs

あなたは教えていただけます

答えて

1

これは動作します:

青写真:

# coding: utf-8 
from flask import Blueprint, render_template 
from flask_restless import APIManager 
from ..models import db 


bp = Blueprint('api', __name__) 

manager = APIManager(flask_sqlalchemy_db=db) 

init.py:

def register_api(app): 
    """Register api.""" 
    from .controllers.api import manager 
    from .models import User 

    manager.init_app(app) 
    manager.create_api(User, app=app) 

要求:http http://0.0.0.0:5000/api/user

応答:

HTTP/1.0 200 OK 
Content-Length: 72 
Content-Type: application/json 
Content-Type: application/json 
Date: Thu, 20 Oct 2016 18:50:04 GMT 
Link: <http://0.0.0.0:5000/api/user?page=0&results_per_page=10>; rel="last" 
Link: <http://0.0.0.0:5000/api/user?page=0&results_per_page=10>; rel="last" 
Server: Werkzeug/0.11.11 Python/3.5.2 
Vary: Accept 

{ 
    "num_results": 0, 
    "objects": [], 
    "page": 1, 
    "total_pages": 0 
}