我的烧瓶中缺少什么 restful api 输出为空且重复
What am I missing in my flask restful api output is null and repeated
from flask import Flask
from flask_restful import Resource, fields, marshal_with,Api
import psycopg2
conn=psycopg2.connect("dbname=jobkhulyodb user=postgres password=password")
cur=conn.cursor()
app=Flask(__name__)
api=Api(app)
resource_fields = {
'job_title': fields.String,
'job_description': fields.String,
}
class Todo(Resource):
@marshal_with(resource_fields, envelope='resource')
def get(self, **kwargs):
cur.execute("SELECT job_title,job_description from jobs")
return cur.fetchall()
api.add_resource(Todo, '/foo', endpoint='todo')
if __name__=='__main__':
app.run()
api 是使用 Flask、flask_restful 和 postgresql 构建的
按照文档并根据它创建了一个资源字段,并在 return 字段中使用 postgresql 命令从数据库中获取了相同的资源。我在哪里做错了什么,输出看起来像图片中的样子。数据库只有2行结果显示null出现2次
输出
您正在获取包含 cur.fetchall()
的元组列表,因此此代码必须满足您的需要:
...
def get(self, **kwargs):
...
list_ = []
for elem in cur.fetchall():
list_.append({ 'job_title': elem[0], 'job_description': elem[1] })
return list_
from flask import Flask
from flask_restful import Resource, fields, marshal_with,Api
import psycopg2
conn=psycopg2.connect("dbname=jobkhulyodb user=postgres password=password")
cur=conn.cursor()
app=Flask(__name__)
api=Api(app)
resource_fields = {
'job_title': fields.String,
'job_description': fields.String,
}
class Todo(Resource):
@marshal_with(resource_fields, envelope='resource')
def get(self, **kwargs):
cur.execute("SELECT job_title,job_description from jobs")
return cur.fetchall()
api.add_resource(Todo, '/foo', endpoint='todo')
if __name__=='__main__':
app.run()
api 是使用 Flask、flask_restful 和 postgresql 构建的 按照文档并根据它创建了一个资源字段,并在 return 字段中使用 postgresql 命令从数据库中获取了相同的资源。我在哪里做错了什么,输出看起来像图片中的样子。数据库只有2行结果显示null出现2次
输出
您正在获取包含 cur.fetchall()
的元组列表,因此此代码必须满足您的需要:
...
def get(self, **kwargs):
...
list_ = []
for elem in cur.fetchall():
list_.append({ 'job_title': elem[0], 'job_description': elem[1] })
return list_