@Programist18946

Не выводит погоду, код на Python для погоды с использованием библиотек Eel и pyowm?

import eel 
import pyowm

owm = pyowm.OWM("8a1e96eb0d666fb9f233965c636924bf")

@eel.expose
def get_weather(place):
	mgr = owm.weather_manager()

	observation = mgr.weather_at_place(place)
	w = observation.weather

	temp = w.temperature('celsius')['temp']

	return "В городе " + place + "сейчас " + str(temp) + " градусов."

eel.init("web")
eel.start("main.html", size=(700 , 700))


HTML
<!DOCTYPE html>
<html>
<head>
		<meta charset="UTF-8">
		<title>Погода</title>
		
		<script src="eel.js"></script>
		<link rel="icon" type="image/png" href="/favicon.png">
		
		<link rel="stylesheet" type="text/css" href="main.css">
		<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap" rel="stylesheet">
	</head>
	<body>
		<input id="location" type="text" placeholder="Введите название: Город, Страна..." required="" >

		<button id="show">Нажать</button>
		<div class="info"></div>

		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
		<script type="text/javascript">
		async function display_weather(){
				let place = document.getElementById('location').value;
				let res = await eel.get_weather(place)();
				document.getElementById('info').innerHTML = res;
			}
			jQuery('#show').on('click', function(){

				display_weather();
			});
		</script>

	</body>
	</html>
  • Вопрос задан
  • 69 просмотров
Решения вопроса 2
SoreMix
@SoreMix
yellow
Нажмите F12, откройте консоль, у вас там все ошибки пишутся.

На версиях ниже 3 нет менеджера. У вас какая?
"AttributeError("'OWM25' object has no attribute 'weather_manager'",)"


У вас нет тега с ID info
Меняйте с
<div class="info"></div>
на
<div id="info"></div>
Ответ написан
hottabxp
@hottabxp Куратор тега Python
Эксперт по BeautifulSoup(но это не точно!)
Код для версии pyowm 2.X.X:
@eel.expose
def get_weather(place):
  observation = owm.weather_at_place(place)
  w = observation.get_weather()
  temp = w.get_temperature('celsius') ['temp']
  return "В городе " + place + " сейчас " + str(temp) + " градусов."


В файле main.html ошибка:
Или в <div class="info"></div> замените class на id, или в js ищите по названию класса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 сент. 2020, в 21:23
2500 руб./за проект
18 сент. 2020, в 20:16
13000 руб./за проект
18 сент. 2020, в 19:05
25000 руб./за проект