Как выполнить код Python в приложении React?

Мне нужно проанализировать веб-страницу и отобразить результат в компоненте React. Из-за CORS я не могу легко получить доступ к этой странице из своего приложения, в то время как python делает это в несколько строк.

Как я читал в нескольких похожих ответах, ключ в том, чтобы сделать ajax-запрос к коду python.

Итак, что я делаю:

axios.post('../../assets/wordnik.py').then(res => console.info(res))

Просто и понятно, хотя я получаю следующую ошибку: Как выполнить код Python в приложении React?

Итак, как я могу это исправить и что именно не так?

УПД. Код Python

from bs4 import BeautifulSoup
from urllib.request import urlopen

url = "https://www.wordnik.com/randoml"
f = urlopen(url)
soup = BeautifulSoup(f, "html.parser")
h1s = soup("h1")
h1 = h1s[0].getText().strip()
print(h1)

Вы получили ошибку 404, это не из-за CORS, вы запустили веб-сервер Python, чтобы получить доступ к вашему файлу? Если вы хотите отобразить страницу, вы можете использовать для нее компонент React iframe.

Constantin Guidon 15.02.2019 11:34

@ConstantinGuidon Я имею в виду, что я не могу использовать JS для доступа к этой странице из-за CORS, и поэтому я пытаюсь использовать python. Нет, не могли бы вы уточнить веб-сервер Python и сделать из него ответ

Nikita Neganov 15.02.2019 11:37

Если и Python, и приложение React размещены в одном домене, проблема CORS не возникнет. В противном случае вам необходимо включить CORS на стороне сервера. Не уверен, какой фреймворк вы используете, но вы можете погуглить, как включить CORS в python на основе вашего фреймворка.

Mohit Pandey 15.02.2019 11:54

Можете ли вы предоставить свой код Python?

Constantin Guidon 15.02.2019 12:05

@MohitPandey, как я упоминал в предыдущем комментарии, CORS — это не проблема с python, а причина, по которой мне нужно использовать python вместо js.

Nikita Neganov 15.02.2019 12:05

@ConstantinGuidon отредактировал вопрос. Это всего несколько строк

Nikita Neganov 15.02.2019 12:07

Насколько я знаю, вы не можете получить доступ/выполнить код Python с помощью JS. Если вы пытаетесь получить ответ из кода Python, вам нужно представить его как API, который затем может быть использован React с помощью axios. То же самое применимо и к запросу POST.

Mohit Pandey 15.02.2019 12:11

@MohitPandey понятно, спасибо

Nikita Neganov 15.02.2019 12:15
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
8
4 746
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Простое добавление скрипта Python в исходный код приложения для реагирования не превращает его волшебным образом в точку входа API. Сценарий должен выполняться процессом python, и у вас должен быть HTTP-сервер, сопоставляющий этот процесс с URL-адресом, передавая запрос процессу и пересылая ответ. На самом деле простые, базовые вещи для программирования бэкэнда HTTP.

Предпочтительным способом сервера серверного приложения Python является протокол wsgi, который так или иначе поддерживается основными HTTP-серверами (apache, nginx и т. д.). Вы можете написать свой скрипт непосредственно в спецификации wsgi или использовать существующий фреймворк wgsi (flask приходит на ум для простых и легких приложений, таких как ваше).

Другие вопросы по теме