gpt4 book ai didi

python - jQuery 在与 Flask 一起交付时不起作用,但在其他情况下可以工作

转载 作者:行者123 更新时间:2023-12-02 20:30:07 24 4
gpt4 key购买 nike

我对 python 很陌生,甚至对 Flask 的经验也更少,我无法弄清楚这个问题。我有以下带有 jQ​​uery 功能的简单网页,当我双击该文件并在浏览器中打开它时,效果非常好:

<!DOCTYPE html>
<html>
<head>
<script src="jquery-3.3.1.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
$("#updateBtn").on("click", function() {
text = "<h2>The div has been updated!</h2>";
$("#jQuery_div").html(text);
});
});
</script>
<div>
<h1>This is a non-jQuery div</h1>
</div>
<div id="jQuery_div">
<h2>This div should update with jQuery</h2>
</div>
<button id="updateBtn">update</button>
</body>
</html>

但是,当 Flask 在 localhost:5000 上交付网页时,jQuery 功能不再存在。我的Python如下:

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def render():
return render_template("jquery_test.html")

if __name__ == "__main__":
app.run(port=5000, debug=True)

我的应用程序的文件树是:

/AJAX_practice
ajax_practice.py
/templates
jquery-3.3.1.js
jquery_test.html

我试图关注 this tutorial当我无法使用“回声”按钮时。在我的调试过程中,我慢慢地把程序大大简化为上面的代码,看看为什么我不能让我的 jQuery 通过 Flask 工作。我还是很茫然。我通过在 IDLE 中按 F5 来运行 Flask 应用程序,Python 2.7.13 Shell 中没有错误,并且终端(我从其中使用 $ sudo idle 启动 IDLE)显示:

my ip - - [date and time] "GET / HTTP/1.1" 200 -
my ip - - [date and time] "GET /jquery-3.3.1.js HTTP/1.1" 404 -

据此,我最好的猜测是 Flask 找不到 jquery.3.3.1.js 文件,尽管我尝试将它放在文件树中的任何位置,但没有成功。我无法使用脚本 src to https 来获取 jQuery 依赖项,因为我的服务器最终将位于非互联网连接的 LAN 上。我走在正确的轨道上吗?如果是这样,flask 如何查找和/或导航 jQuery 依赖项?谁能给我指出一些可能有助于我对这个问题的基本理解的文档?

任何有关此事的帮助将不胜感激。

最佳答案

您正在尝试从模板文件夹提供 JavaScript 文件。添加静态文件夹并使用它来提供静态内容。

在您的情况下创建一个类似“static/js/jquery.min.js”的目录结构

然后像这样添加脚本引用

<script src="{{url_for('static', filename='js/jquery.min.js')}}"></script>

看这个: http://exploreflask.com/en/latest/static.html

如果您不想将其保留在“static”文件夹中并使用另一个本地目录,您可以使用 send_from_directory ,如下例所示: https://stackoverflow.com/a/20648053/2118215

关于python - jQuery 在与 Flask 一起交付时不起作用,但在其他情况下可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49035043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com