我解决不了这个问题。我编写了一个程序,下面是它的简短描述:一个应用程序,其逻辑是用python编写的,接口是使用HTML和CSS呈现的。Python导入模块鳗鱼。Python有一个返回数组的函数。在JS中,创建一个变量,该变量接受函数的结果,然后将结果写入HTML类。这就是它的样子:
导入鳗鱼导入日期时间导入sys eel.init("web") isoWD = datetime.datetime.today().isoweekday() @eel.expose def some_func():如果isoWD == 1:@eel.expose= 'elems','elems‘elif isoWD == 2:.isoweekday= 'elems','elems','elems‘elif isoWD == 3: result = 'elems','elems’elif isoWD == 4: result = 'elems','elems‘elif isoWD == 5: result = 'elems','elems','elems‘elems’elif isoWD == 6: isoWD = 'elems','elems‘elif isoWD == 7: sys.exit()返回结果eel.start("main.html",size=(325,450))
function display() {
var res = eel.some_func();
for (var i = 0; i <= 'block__les'.length; i++) {
document.getElementsByClassName('block__les')[i].innerHTML = res[i];
}
}
display();
<div class="wrapper">
<div class="block">
<div class="block__num">
<p>(1)</p>
</div>
<div class="block__les"></div>
<div class="block__time">09.00 - 09.30</div>
</div>
<div class="block">
<div class="block__num">
<p>(2)</p>
</div>
<div class="block__les"></div>
<div class="block__time">09.40 - 10.10</div>
</div>
<div class="block">
<div class="block__num">
<p>(3)</p>
</div>
<div class="block__les"></div>
<div class="block__time">10.20 - 10.50</div>
</div>
<div class="block">
<div class="block__num">
<p>(4)</p>
</div>
<div class="block__les"></div>
<div class="block__time">11.00 - 11.30</div>
</div>
<div class="block">
<div class="block__num">
<p>(5)</p>
</div>
<div class="block__les"></div>
<div class="block__time">11.40 - 12.10</div>
</div>
<div class="block">
<div class="block__num">
<p>(6)</p>
</div>
<div class="block__les"></div>
<div class="block__time">12.20 - 12.50</div>
</div>
<div class="block">
<div class="block__num">
<p>(7)</p>
</div>
<div class="block__les"></div>
<div class="block__time">13.00 - 13.30</div>
</div>
<div class="block">
<div class="block__num">
<p>(8)</p>
</div>
<div class="block__les"></div>
<div class="block__time">13.40 - 14.10</div>
</div>
</div>
输出:
数组元素应该在数字和时间之间输出。但那里是空的。
发布于 2021-01-20 18:18:46
为了获得从python函数发送给鳗鱼的结果,javascript函数display应该成为异步函数,等待,结果来自python函数。
因此,显示函数变成:
<script type="text/javascript">
async function display() {
var res=await eel.some_func()();
for (var i = 0; i <= document.getElementsByClassName('block__les').length ; i++) {
document.getElementsByClassName('block__les')[i].innerHTML = res[i];
}
}
display();
</script>
还有一件事应该提到,但它与eel
无关,在display
函数中,display
不给出‘block_les’类的项目数,而是给出单词block__les
的字符数,即10。
为了得到‘block_les’类的项目数,我们可以使用document.getElementsByClassName('block__les').length,,它给出了8,也就是正确的数字。
当然,别忘了
<script type="text/javascript" src="/eel.js"></script>
在main.html
的头部部分
最后,不要忘记改变:
result = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems']
成为8项,以匹配HTML中的显示项的数量。
result = ['elems', 'elems', 'elems', 'elems', 'elems', 'elems', 'elems', 'elems']
https://stackoverflow.com/questions/64682705
复制相似问题