Javascript 看不到 python 函数暴露在 eel 中
Javascript can`t see python function exposed with eel
我按照文档中的方式使用了@eel.expose,但是它不起作用。
我正在尝试将有关天气的信息从 pyowm 发送到 javascript,但 javascript 无法识别 python 函数。
这是我的 python 代码:
import eel
import pyowm
owm = pyowm.OWM("78e8414197f287eb489f857bf10fa96a")
eel.init("web")
eel.start("main.html", size=(700, 700))
@eel.expose
def getWeather(place):
mgr = owm.weather_manager()
observation = mgr.weather_at_place(place)
w = observation.weather
temp = w.temperature('celsius')['temp']
return temp
和html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Weather</title>
<script type="text/javascript" src="/eel.js"></script>
<link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
<input type="text" id="location" placeholder="Enter city and country" required="" value="New York, USA">
<button id="getWeatherButton">GET WEATHER</button>
<div id="result"></div>
<script type="text/javascript">
document.getElementById("getWeatherButton").onclick = async function displayWeather() {
let place = document.getElementById("location").value;
let temp = await eel.getWeather(place)();
document.getElementById("result").innerHTML = temp;
};
</script>
</body>
</html>
eel.start() 必须在代码的末尾
这是正确的代码:
import eel
import pyowm
owm = pyowm.OWM("78e8414197f287eb489f857bf10fa96a")
eel.init("web")
@eel.expose
def getWeather(place):
mgr = owm.weather_manager()
observation = mgr.weather_at_place(place)
w = observation.weather
temp = w.temperature('celsius')['temp']
return temp
eel.start("main.html", size=(700, 700))
我按照文档中的方式使用了@eel.expose,但是它不起作用。 我正在尝试将有关天气的信息从 pyowm 发送到 javascript,但 javascript 无法识别 python 函数。 这是我的 python 代码:
import eel
import pyowm
owm = pyowm.OWM("78e8414197f287eb489f857bf10fa96a")
eel.init("web")
eel.start("main.html", size=(700, 700))
@eel.expose
def getWeather(place):
mgr = owm.weather_manager()
observation = mgr.weather_at_place(place)
w = observation.weather
temp = w.temperature('celsius')['temp']
return temp
和html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Weather</title>
<script type="text/javascript" src="/eel.js"></script>
<link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
<input type="text" id="location" placeholder="Enter city and country" required="" value="New York, USA">
<button id="getWeatherButton">GET WEATHER</button>
<div id="result"></div>
<script type="text/javascript">
document.getElementById("getWeatherButton").onclick = async function displayWeather() {
let place = document.getElementById("location").value;
let temp = await eel.getWeather(place)();
document.getElementById("result").innerHTML = temp;
};
</script>
</body>
</html>
eel.start() 必须在代码的末尾 这是正确的代码:
import eel
import pyowm
owm = pyowm.OWM("78e8414197f287eb489f857bf10fa96a")
eel.init("web")
@eel.expose
def getWeather(place):
mgr = owm.weather_manager()
observation = mgr.weather_at_place(place)
w = observation.weather
temp = w.temperature('celsius')['temp']
return temp
eel.start("main.html", size=(700, 700))