【发布时间】:2017-11-20 13:28:25
【问题描述】:
我使用 postgres 从 postgres 数据库中获取数据。所以创建烧瓶 api 但是当我使用 curl 命令时它会返回 400 错误请求错误。 这是我的代码-
from flask import Flask, render_template, request, Response
import psycopg2
import csv
import json
from psycopg2.extras import RealDictCursor
import requests
conn = psycopg2.connect("host='localhost' dbname='postgres' user='postgres'")
app = Flask(__name__)
@app.route('/', methods = ['GET','POST'])
def index():
cur = conn.cursor(cursor_factory=RealDictCursor)
query = request.form['query']
cur.execute(query)
return Response(json.dumps(cur.fetchall(),indent=2),mimetype='application/json')
if __name__ == "__main__":
app.run(host='0.0.0.0')
conn.close()
我使用这个 curl 命令 -
curl -H "Content-Type: application/json" -X GET http://127.0.0.1:5000/ -d '{"query":"SELECT COUNT(*) FROM usage"}'
那么如何使用 curl 和烧瓶 api。
【问题讨论】:
-
curl http://127.0.0.1:5000/ --data-urlencode query='SELECT COUNT(*) FROM usage'就是您所需要的。它将使用application/x-www-form-urlencoded内容类型执行POST请求。您的端点已经需要表单数据和POST方法。
标签: python postgresql curl flask flask-sqlalchemy