「where句」を使用してデータベースから1つのフィールドのみを選択して返したいとします。コードは次のとおりです。SQLAlchemyを使用して列を1つだけ選択するにはどうすればよいですか?
from sqlalchemy.orm import load_only
@application.route("/user", methods=['GET', 'POST'])
def user():
user_id = session.query(User, User.validation==request.cookies.get("validation")).options(load_only("id"))
session.commit()
return user_id
これが失敗し、トレースバックがある:
File "/Library/Python/2.7/site-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/Library/Python/2.7/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/Library/Python/2.7/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/Library/Python/2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Python/2.7/site-packages/flask/app.py", line 1478, in full_dispatch_request
response = self.make_response(rv)
File "/Library/Python/2.7/site-packages/flask/app.py", line 1577, in make_response
rv = self.response_class.force_type(rv, request.environ)
File "/Library/Python/2.7/site-packages/werkzeug/wrappers.py", line 841, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
File "/Library/Python/2.7/site-packages/werkzeug/wrappers.py", line 57, in _run_wsgi_app
return _run_wsgi_app(*args)
File "/Library/Python/2.7/site-packages/werkzeug/test.py", line 867, in run_wsgi_app
app_rv = app(environ, start_response)
TypeError: 'Query' object is not callable
どのように私は、「ID」列を選択して返すことができますか?私はいくつかの他の方法も試みたが、失敗もした。 「load_only」は正しいオプションですか?
ありがとうございます。私はあなたがプロットするオプションのどちらもうまくいないのです。最初のエラーは次のようになります。TypeError:user()は引数なし(2)、2番目の:TypeError: 'User'オブジェクトは呼び出し不可能です。ハマった! – user1903663
これは実際には別のエラーです。あなたの意見は、あなたが何らかの種類のコールバックを返すことを期待しています。私は一般的にフラスコで0回の経験があるので、あなたはあなたのビューが返す必要があるものについてのドキュメントを参照する必要があります。 –
'TypeErrorの取得方法について:user()は引数をとりません(2件)'あなたが実際に行ったことを見ずに何かを言うことはできません。 view関数には引数は渡されていないと思われます。 –