之前看友链博客做了这样的一个test,刚好今天就有同学在研究怎么在网页上跑py,于是我就写了这样一个示例。
Example
Result:
博客代码
实现起来非常简单,只需要一点前端知识就能看懂。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <script src="https://cdn.jsdelivr.net/pyodide/v0.26.2/full/pyodide.js"></script> <script type="text/javascript"> function callback(){ let code=document.getElementById("code").value; document.getElementById("result").innerText="Code is running" loadPyodide().then((pyodide) => { let result=pyodide.runPython(code); document.getElementById("result").innerText=result; }); } </script>
<textarea id="code" style="width:80%;height:5rem;"> def get_num(): return (114514+114514)*(11-4+5/1-4)+(114*514+(114*51*4+(1145*(1+4)+11-4+5+1-4))) get_num() </textarea>
<button onclick="callback()" style="background-color: #4CAF50;padding: 15px 32px;text-align: center;border-radius: 5px;">Run code</button>
Result:
<p id="result"></p>
|
一点解释
其实就是加载了一个py的web实现,把代码丢到这个环境中跑。
问题
测试发现,若没有加速器,加载py引擎的时间可能会过长;且这个引擎的效率不高,运行也慢。