Как преобразовать функцию python в rest api

#javascript #python #python-3.x #flask #rest

#javascript #python #python-3.x #flask #rest

Вопрос:

У меня есть следующий код на python.

 file1 = pd.read_csv(./file1.csv)
file2 = pd.read_csv(./file2.csv)

merged = pd.merge(file1, file2, how='left', left_on='id', right_on='id')

def task(val):
    x = file1['temp'].sum()
    y = file2['temp'].sum()
    merged['x_y'] = (x y) - val
    return merged

def run_task(df):
   merged_fil = merged[merged['col']=='z']
   return merged_fil

# Call function
run_task(merged)

 

Теперь мне нужно преобразовать этот код в rest api. Цель состоит в том, чтобы получить значение ‘val’ от пользователя на веб-странице с помощью ползункового ввода.

PS — Используется сервер Mongo. Кто-нибудь может сказать мне, как это сделать и преобразовать этот код. Просто входное значение val должно быть основано пользователем на веб-странице. и затем выполняется тот же код, и выводится результат ‘merged_fil’.

Ответ №1:

Решение:

Я предлагаю вам использовать flask, который представляет собой микро-веб-фреймворк, который можно использовать для простого создания веб-сервисов. Следуйте приведенным ниже инструкциям, чтобы преобразовать эти функции в веб-сервисы с помощью flask:

Шаг 1:

Вам необходимо установить flask, набрав: pip3 instal flask

шаг 2:

Сначала я приведу некоторый контекст или пример того, как работает flask:

 from flask import Flask
app = Flask(__name__)
​
@app.route(‘/’)
def hello_world():
   return ‘Hello, World!’
 

Затем, чтобы запустить этот пример, введите flask run <script_name>

Самая первая строка импортирует Flask из своей библиотеки, а следующая строка создает имя переменной и создает экземпляр приложения с помощью класса Flask. Следующая строка @app.route('/') ( / означает домашнюю страницу) называется маршрутом, который используется для перенаправления пользователя на определенную страницу или выполнения определенной функции при посещении пользователем определенного URL.

Вышеуказанный сервис эквивалентен этой функции:

 def hello_world():
    return 'Hello, World!'
 

Шаг 3:

Чтобы добавить входные данные в службу / функцию flask, просто добавьте /<parameter> в конец маршрута и вызовите его с параметром в конце маршрута

Вот ваши функции, преобразованные в сервисы:

 form flask import Flask #import flask

file1 = pd.read_csv(./file1.csv)
file2 = pd.read_csv(./file2.csv)

merged = pd.merge(file1, file2, how='left', left_on='id', right_on='id')

@app.route(‘/task/<val>’)//the <val>is the input parameter as part of the route
def task(val):
    x = file1['temp'].sum()
    y = file2['temp'].sum()
    merged['x_y'] = (x y) - val
    return merged

@app.route(‘/task/<df>’)//the <df>is the input parameter as part of the route
def run_task(df):
   merged_fil = merged[merged['col']=='z']
   return merged_fil

 

Для получения дополнительной информации о flask перейдите сюда