【发布时间】:2015-10-13 14:51:20
【问题描述】:
我想使用 python 烧瓶创建一个 REST API。所以每当我这样做时:
localhost/customers?cust_country=USA
我想从每个人都来自美国的表“客户”中获取每一行。
这是我到目前为止的脚本:
from flask import Flask, request
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from flask_restful import reqparse
e = create_engine("mssql+pyodbc://....")
app = Flask(__name__)
api = Api(app)
parser = reqparse.RequestParser()
parser.add_argument('cust_country', type = 'string')
class Dep(Resource):
def get(self):
conn = e.connect()
args = parser.parse_args()
query = conn.execute("select * from customers where cust_country = ?", [args['cust_country']])
print(query)
return {'custid': [i[0] for i in query.cursor.fetchall()]}
api.add_resource(Dep, '/customers')
if __name__ == '__main__':
app.run()
我收到此错误:
C:\Users\x>curl 127.0.0.1:5000/customers?cust_country=USA 404 不是 找到了
未找到
未找到请求的 URL 服务器。如果您手动输入 URL,请检查您的 拼写并重试。
=======================
第 2 部分:发送多个参数:
from flask import Flask
from flask_restful import Resource, Api
from flask_restful import reqparse
from sqlalchemy import create_engine
e = create_engine("x")
parser = reqparse.RequestParser()
parser.add_argument('cust_country', type = str)
parser.add_argument('cust_name', type = str)
app = Flask(__name__)
api = Api(app)
class Dep(Resource):
def get(self):
args = parser.parse_args()
conn = e.connect()
query = conn.execute("select cust_id from customers where cust_country = ? and cust_name = ?", [args['cust_country'], args['cust_name']])
return {'custid': [i[0] for i in query.cursor.fetchall()]}
api.add_resource(Dep, '/customers')
if __name__ == '__main__':
app.run()
这是我在 curl 中使用的:
curl "127.0.0.1:5000/customers?cust_country=USA&cust_name=Wascals"
【问题讨论】:
标签: python flask flask-restful