我可以使用javascript与瓶子(框架)

Can I use javascript with bottle (framework)?

本文关键字:框架 瓶子 可以使 javascript 我可以      更新时间:2023-09-26

我试图使用瓶子(python web框架)显示html页面。该页面嵌入了javascript,但当我使用bottle时,它不会显示它。

我使用的JS是EditArea,我可以清理它我想要的方式,并把它放在一个html页面,当我在chrome中打开页面时显示正确。但是当我使用瓶子时:

@route('/edit')
def edit():
    return template('editarea')

@route('/edit_area')
def edit_area():
    send_file('example1.html', root='path/to/file/')

并转到http://localhost:8080/edit或/edit_area,我看到的页面没有任何花哨的javascript功能。

最终我想把这个连接起来(EditArea是文本区域,我将使用它来接受代码,希望我能运行…但这是一个单独的问题…),但现在所有它应该做的是显示页面和javascript。JS尽可能简单地放在html中。这两个块使用不同的文件,但它们只是相同的html文件的副本,一个是。html,另一个是。tpl扩展名。

<title>EditArea - the code editor in a textarea</title> 
    <script language="Javascript" type="text/javascript"     src="../edit_area/edit_area_full.js"></script> 
    <script language="Javascript" type="text/javascript"> 
        // initialisation
        editAreaLoader.init({

…然后是所有JS代码(不是我写的)。

在启动服务器的文件中,我从瓶子中导入:route、run、debug、template、request、send_file和error;和sqlite3;但仅此而已。还有什么我应该说的吗?

我查看了瓶子文档,以及其他一些地方,它要么是一些非常明显的东西,没有人费心写下来,要么是人们只是不做的事情…

我在看睡衣(它不断提出涉及"python"answers"javascript"的搜索查询的不同组合),但它看起来只是将python转换为javascript。我不认为这是我想要的b/c javascript已经是javascript…

谢谢你的建议

您需要创建一个视图来提供静态文件,如Bottle文档中所述。

我建议你把你所有的静态文件(css, js,图像)在static文件夹旁边的应用程序。提供静态文件的视图如下所示:

from bottle import static_file    
@route('/static/:filename:')
def send_static(filename):
    return static_file(filename, root='./static/')

然后像这样包含.js文件(当然使用您选择的路径):

<script type="text/javascript" src="/static/edit_area/edit_area.js"></script>

如果你使用的是包含在Bottle中的模板系统SimpleTemplate,那么它不支持多行字符串,模板被编译为可执行的Python字节码。因此,任何Javascript都可能被剥离。

在页面中包含javascript的唯一方法是通过脚本标记,就像您为"edit_area_full.js"文件所做的那样。