なぜ私のコードがうまくいかないのですか?私はレスポンスヘッダーとその使用方法についてのもののほとんどを忘れてしまったと私は、私は次のエラーを取得するこのコードを実行するときなどFlaskでレスポンスヘッダーを使用する方法がわからない
from flask import Flask, jsonify, json, request, abort
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_pyfile('Config.py')
db = SQLAlchemy(app)
response = {}
class JsonModel(object): #Class for making objects JSON serializable
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class User(db.Model, JsonModel): #Class which is a model for the User table in the database
User_ID = db.Column(db.Integer, primary_key = True)
FirstName = db.Column(db.String(20))
LastName = db.Column(db.String(20))
def __init__(self,User_ID,FirstName, LastName):
self.User_ID = User_ID
self.FirstName = FirstName
self.LastName = LastName
class Todo(db.Model, JsonModel): #Class which is a model for the Todo table in the database
todo_ID = db.Column(db.Integer, primary_key = True)
UserID = db.Column(db.Integer, db.ForeignKey("user.User_ID"))
details = db.Column(db.String(30))
def __init__(self, UserID, details):
self.UserID = UserID
self.details = details
@app.route('/todo', methods = ['GET']) #Uses GET method to return all information in the database.
def index():
return json.dumps([u.as_dict() for u in Todo.query.all()])
@app.route('/todo/<int:todo_ID>', methods = ['GET'])
def get(todo_ID):
todo = Todo.query.get(todo_ID)
response
response['todo_ID']= todo.todo_ID
response['UserID'] = todo.UserID
response['details'] = todo.details
response.status_code = 200
response.headers['location'] = '/todo/{}'.format(todo.todo_ID)
return response
辞書やタプルを使用する際に考え出すで吸います。
File "/home/muba/PycharmProjects/Work/Flaskapp.py", line 43, in get
response.status_code = 200
AttributeError: 'dict' object has no attribute 'status_code'
127.0.0.1 - - [01/Mar/2017 21:29:27] "GET /todo/1 HTTP/1.1" 500 -
誰かが間違ったことを教えてもらえますか、何かチュートリアルを教えてもらえますか?私が理解できるのは、トップの私のレスポンスオブジェクトが何らかの理由でstatus_codeを使用できないということだけです。
は正確に何をしようとしていますか? JSONオブジェクトを返しますか? –
私は特定のtodoのすべての詳細を返そうとしており、curlステートメントを使用するときに応答ヘッダーを使用してさらに情報を追加しています。私はそれがうまくいくことを期待してオブジェクトに投げた。ある時点では働いていましたが、今はそうではありません。 – Muba
私は何も戻したくありません。私がカールステートメントを実行するとき、私はちょうどそれが通常表示されないので、同様に表示される場所をしたい。 – Muba