我在demo_data.json中有json数据,我想加入Flask应用程序。我收到了文件中的404,我已将其放在静态目录中,我的代码在下面,感谢提前的任何想法:
from flask import Flask, render_template
from flask import url_for
app = Flask(__name__, static_url_path='/static/')
@app.route('/')
def home():
return render_template('home.html')
@app.route('/welcome')
def welcome():
return render_template('welcome.html')
if __name__ == '__main__':
app.run()
return send_from_directory('/static', 'demo_data.json')
答案 0 :(得分:0)
看起来你的static_url_path上有一个尾部斜杠。删除多余的角色解决了这个问题。另请注意删除的最后一行。返回调用不是必需的,返回后的函数调用是语法错误。
from flask import Flask, render_template
from flask import url_for
app = Flask(__name__, static_url_path='/static')
@app.route('/')
def home():
return render_template('home.html')
@app.route('/welcome')
def welcome():
return render_template('welcome.html')
if __name__ == '__main__':
app.run()
答案 1 :(得分:0)
那么,您是否正在尝试发送文件?或者在网址中显示文件? 我假设后者。请注意使用 url_for 。 这将创建一个显示静态文件的链接。
http://127.0.0.1:5000/send
和http://127.0.0.1:5000/static/demo_data.json
from flask import Flask, render_template
from flask import url_for
app = Flask(__name__, static_url_path='/static')
@app.route('/')
def home():
return render_template('home.html')
@app.route('/send')
def send():
return "<a href=%s>file</a>" % url_for('static', filename='demo_data.json')
if __name__ == '__main__':
app.run()
答案 2 :(得分:0)
您需要定义视图以发送数据。
类似于:
from flask import Flask, render_template
from flask import url_for
app = Flask(__name__, static_url_path='/static/')
@app.route('/')
def home():
return render_template('home.html')
@app.route('/welcome')
def welcome():
return render_template('welcome.html')
@app.route('data/<filename>')
def get_json(filename):
return send_from_dir
if __name__ == '__main__':
app.run()