2016-06-14 68 views
-1

當我嘗試去/api我得到將我的數據庫轉換爲api。Flask-Restful基本設置

from flask import Flask , render_template 
from flask_restful import Resource, Api,marshal_with, fields 
from flask_sqlalchemy import SQLAlchemy 

app = Flask(__name__) 
app.config.from_object('config') 
api = Api(app) 
db = SQLAlchemy(app) 

class songbook(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    song_book = db.Column(db.String(80)) 
    title = db.Column(db.String(120)) 
    artist = db.Column(db.String(120)) 
    disc_number = db.Column(db.String(120)) 
    track_number = db.Column(db.String(120)) 

    def __init__(self, song_book, title, artist, disc_number, track_number): 
     self.song_book = song_book 
     self.title = title 
     self.artist = artist 
     self.disc_number = disc_number 
     self.track_number = track_number 

resource_fields = { 
    'song_book': fields.String, 
    'title': fields.String, 
    'artist': fields.String, 
    'disc_number': fields.String, 
    'track_number': fields.String, 
} 

class HelloWorld(Resource): 
    @marshal_with(songbook) 
    def get(self): 
     return songbook.query.all() 

api.add_resource(HelloWorld, '/api') 

@app.route('/') 
def hello_world(): 
    return render_template("index.html") 

if __name__ == '__main__': 
    app.run(debug=True) 

我得到一個錯誤代碼

AttributeError: type object 'songbook' has no attribute 'items'

我試圖從here學習。任何其他文檔或鏈接都會有所幫助。

+0

「我將我的數據庫轉換爲api」 - 好的,太好了!有什麼問題,或者是什麼問題? –

+0

Error AttributeError:type object'songbook'has no attribute'items' –

+0

我認爲你需要爲你的'songbook'對象定義'__dict__' –

回答

0

此註釋期待字典@marshal_with

你最終給了它你的songbook類,它雖然你可能def __dict__(self)(不知道,還沒有嘗試過),並讓它返回一個模式,它看起來像你打算做@marshal_with(resouce_fields)而不是。