#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 перейдите сюда