Я хочу создать REST API, используя колбу python. Так что в любое время я делаю это:flask-restful: как анализировать параметры при подключении к SQL-серверу db?
локальными/клиентов cust_country = США
Я хочу получать каждую строку из где всех таблиц "клиентов от США.
Это сценарий, Я до сих пор:
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 Not Found
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
=============== =======
часть 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 "127.0.0.1:5000/customers?cust_country=USA&cust_name=Wascals"
Я изменил его тип = ул но я все еще получаю ту же ошибку, когда я делаю это: Curl 127.0.0.1:5000/customers -d «cust_country = США» – 90abyss
'-d«cust_country = США» 'не будет работать, поскольку вы только написали конечную точку для запроса' get'. Попробуйте использовать этот фрагмент кода для тестирования https://gist.github.com/yashmehrotra/207cb1a58a4653c75cb8 С помощью команды 'Curl«127.0.0.1:5000/customers?cust_country=USA»' –
получать этот вывод : {"hello": "USA"} – 90abyss