上下文中的烧瓶上下文,对于jsonfy,都在一个页面中

时间:2016-12-27 13:22:00

标签: python flask

我在单个页面中检索单个文档,我知道在单个页面中执行操作不正确;但这只是为了理解所有这些工作,就像纯粹的脚本一样,而不是为了安抚api。

我的问题是我何时使用:

print (jsonify({'result' : output}))

我收到了这个错误:

RuntimeError: Working outside of request context.

This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.

当我用

替换这一行时
print ( output)  

没有错误并且有文件。

如何为jsonify指定上下文?在另一个背景下?因为我已经在使用

with app.app_context():

这里是代码:

from flask import Flask
from flask import g
from flask import jsonify
from flask import request
from flask_pymongo import PyMongo
from flask import make_response
from bson.objectid import ObjectId
from flask import current_app
import sys


app = Flask(__name__)

app.config['MONGO_DBNAME'] = 'restdb'
app.config['MONGO_URI'] = 'mongodb://localhost:27017/crm1'

@app.errorhandler(404)
def not_found(error):
  return make_response(jsonify({'error':'Notfound' }),404)


with app.app_context():
  mongo = PyMongo(app)
  star = mongo.db.accounts
  output = []
  for s in star.find():
    output.append({'id': str(s['_id']) ,'firstname' : s['firstname'], 'lastname' : s['lastname']})
  print (jsonify({'result' : output}))
  #print ( output)  



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

1 个答案:

答案 0 :(得分:2)

Jsonify与HttpResponse合作。 您可以使用python json模块并打印输出 像:

import json

print(json.dumps(output))