Я создаю сайт о садоводстве, используя Trefle API, используя Flask. Цель состоит в том, чтобы позволить пользователю запрашивать растения и находить информацию об идеальных условиях выращивания и т. д. Мой ключ API настроен правильно, но я не только не могу искать растения на веб-сайте Trefle: https://trefle.io/explore ?search=coconut, но я также не могу использовать запросы для получения данных. Мой код:
BASE_URL = 'https://trefle.io/api/v1/plants/search'
@app.route('/plant', methods=['GET', 'POST'])
@login_required
def plant():
if request.method == 'POST':
plant_name = request.form.get('name')
if not plant_name:
return jsonify({'error': 'Plant name is required'}), 400
try:
# Construct the Trefle API query
response = requests.get(
BASE_URL,
params={'token': TREFLE_API_KEY,'q': plant_name}
)
response.raise_for_status()
plant_data = response.json()
if plant_data.get('data'):
# Extract growing information
plant_info = [
{
"Name": plant.get('common_name', "N/A"),
"Scientific Name": plant.get('scientific_name', "N/A"),
"Light": plant.get('main_species', {}).get('growth', {}).get('light', "unknown"),
"Atmospheric Humidity": plant.get('main_species', {}).get('growth', {}).get('atmospheric_humidity', "unknown"),
"pH": f"Best between {plant.get('main_species', {}).get('growth', {}).get('ph_min', 'unknown')} and {plant.get('main_species', {}).get('growth', {}).get('ph_max', 'unknown')}",
"Precipitations": f"Best between {plant.get('main_species', {}).get('growth', {}).get('precipitation_min', 'unknown')} and {plant.get('main_species', {}).get('growth', {}).get('precipitation_max', 'unknown')}",
"Temperature": f"Best between {plant.get('main_species', {}).get('growth', {}).get('temperature_min', 'unknown')}°C and {plant.get('main_species', {}).get('growth', {}).get('temperature_max', 'unknown')}°C",
}
for plant in plant_data['data']
]
return render_template('plant.html', layout=layout_template, user_name=check_name(), plants=plant_info)
return jsonify({'message': 'No plants found for your query.'}), 404
except requests.exceptions.RequestException as e:
return jsonify({'error': 'Failed to fetch data from the Trefle API', 'details': str(e)}), 500
return render_template('plant.html', layout=layout_template, user_name=check_name(), plants=None)
Я попробовал задать вопрос с растением «кокос», но получил:
"details": "500 Server Error: Internal Server Error for url: https://trefle.io/api/v1/plants/search? ... n=MY_TOKEN(the token is correct)",
"error": "Failed to fetch data from the Trefle API"
}
Даже с помощью браузера я не могу получить его и получить:
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
Подробнее здесь: https://stackoverflow.com/questions/792 ... trefle-api
Сообщение об ошибке в приложении flask не может быть получено из API trefle ⇐ Python
Программы на Python
1733407594
Anonymous
Я создаю сайт о садоводстве, используя Trefle API, используя Flask. Цель состоит в том, чтобы позволить пользователю запрашивать растения и находить информацию об идеальных условиях выращивания и т. д. Мой ключ API настроен правильно, но я не только не могу искать растения на веб-сайте Trefle: https://trefle.io/explore ?search=coconut, но я также не могу использовать запросы для получения данных. Мой код:
BASE_URL = 'https://trefle.io/api/v1/plants/search'
@app.route('/plant', methods=['GET', 'POST'])
@login_required
def plant():
if request.method == 'POST':
plant_name = request.form.get('name')
if not plant_name:
return jsonify({'error': 'Plant name is required'}), 400
try:
# Construct the Trefle API query
response = requests.get(
BASE_URL,
params={'token': TREFLE_API_KEY,'q': plant_name}
)
response.raise_for_status()
plant_data = response.json()
if plant_data.get('data'):
# Extract growing information
plant_info = [
{
"Name": plant.get('common_name', "N/A"),
"Scientific Name": plant.get('scientific_name', "N/A"),
"Light": plant.get('main_species', {}).get('growth', {}).get('light', "unknown"),
"Atmospheric Humidity": plant.get('main_species', {}).get('growth', {}).get('atmospheric_humidity', "unknown"),
"pH": f"Best between {plant.get('main_species', {}).get('growth', {}).get('ph_min', 'unknown')} and {plant.get('main_species', {}).get('growth', {}).get('ph_max', 'unknown')}",
"Precipitations": f"Best between {plant.get('main_species', {}).get('growth', {}).get('precipitation_min', 'unknown')} and {plant.get('main_species', {}).get('growth', {}).get('precipitation_max', 'unknown')}",
"Temperature": f"Best between {plant.get('main_species', {}).get('growth', {}).get('temperature_min', 'unknown')}°C and {plant.get('main_species', {}).get('growth', {}).get('temperature_max', 'unknown')}°C",
}
for plant in plant_data['data']
]
return render_template('plant.html', layout=layout_template, user_name=check_name(), plants=plant_info)
return jsonify({'message': 'No plants found for your query.'}), 404
except requests.exceptions.RequestException as e:
return jsonify({'error': 'Failed to fetch data from the Trefle API', 'details': str(e)}), 500
return render_template('plant.html', layout=layout_template, user_name=check_name(), plants=None)
Я попробовал задать вопрос с растением «кокос», но получил:
"details": "500 Server Error: Internal Server Error for url: https://trefle.io/api/v1/plants/search?q=coconut&token=MY_TOKEN(the token is correct)",
"error": "Failed to fetch data from the Trefle API"
}
Даже с помощью браузера я не могу получить его и получить:
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
Подробнее здесь: [url]https://stackoverflow.com/questions/79255018/error-message-in-flask-app-cannot-retrieve-from-trefle-api[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия