一般来说,我对python,Javascript和flask非常陌生。当我尝试将Javascript插入html文件并将其托管在本地服务器上时,出现此错误。
127.0.0.1 - - [31/Dec/2018 18:01:03] "GET /%7B%7B%20url_for('static',%20filename='js/ClientSide.js')%20%7D%7D HTTP/1.1" 404-
这是我html文件的相关部分的样子。
<!DOCTYPE html>
<html>
<head>
<script src="{{ url_for('static', filename='js/ClientSide.js') }}"></script>
</head>
<h1>Tweet Data</h1>
这就是我的python代码的相关部分
app = Flask(__name__,static_folder='templates')
@app.route("/")
def output():
return send_from_directory(app.static_folder,"Frontend.html")
这是我的文件夹结构目前的样子
├───.idea
├───static
│ ├───css
│ └───js
| +---ClientSide.js
├───templates
| +---Frontend.html
├───venv
│
|---twitter.py
答案 0 :(得分:1)
send_from_directory用于静态文件。 Frontend.html是一个模板,通过该模板,您可以像这样调用{{python code}}。您应该使用render_template,而不要使用send_from_directory。
http://flask.pocoo.org/docs/1.0/quickstart/#rendering-templates
答案 1 :(得分:0)
您应该使用渲染方法将脚本链接为Jinja模板中的变量。
from flask import render_template
@app.route("/")
def output():
return render_template("Frontend.html")
您最好在html页面的底部添加JavaScript代码(在end body标签之前)。