带有 url 参数的烧瓶 render_template
flask render_template with url parameter
我使用 pdf.js 在 web 中呈现 pdf。目标的格式 url 像这样:
http://www.example.com/book?file=abc.pdf
我的问题是:
我使用烧瓶模板生成页面使用:
return render_template('book.html', paraKey=paraValue)
但是如何将 url 参数 "file=abc.pdf" 附加到 url?
该参数将由 viewer.js(包含在 book.html 中)读取,使用它来读取文件以呈现 pdf。
刚开始接触flask,希望大家多多指教!
您可以通过请求对象获取请求中传递的参数url。
@app.route("/book", methods=["GET"])
def get_book():
file = request.args.get("file")
if file:
return render_template('book.html', file=file)
abort(401, description="Missing file parameter in request url")
This topic 帮助我解决了我的问题,但它似乎不是完美的答案。
代码 viewer.py 不是 changed.Solution 是:
step1)我嵌入代码
<script>var FILE_PATH = {{ file }}</script>
在模板中。
step2)将使用变量的脚本需要修改代码(viewer.js),来自:
var file = 'file' in params ? params.file : DEFAULT_URL
到
var file = FILE_PATH ? FILE_PATH: DEFAULT_URL
让viewer.js不再独立
希望有人提供更好的解决方案。
您可以使用重定向功能,它可以根据您的需要重定向您:
@app.route('/book')
def hello():
file = request.args.get('file')
if not file:
return redirect("/?file=abc.pdf")
return render_template('book.html', paraKey=paraValue)
我使用 pdf.js 在 web 中呈现 pdf。目标的格式 url 像这样:
http://www.example.com/book?file=abc.pdf
我的问题是: 我使用烧瓶模板生成页面使用:
return render_template('book.html', paraKey=paraValue)
但是如何将 url 参数 "file=abc.pdf" 附加到 url? 该参数将由 viewer.js(包含在 book.html 中)读取,使用它来读取文件以呈现 pdf。
刚开始接触flask,希望大家多多指教!
您可以通过请求对象获取请求中传递的参数url。
@app.route("/book", methods=["GET"])
def get_book():
file = request.args.get("file")
if file:
return render_template('book.html', file=file)
abort(401, description="Missing file parameter in request url")
This topic 帮助我解决了我的问题,但它似乎不是完美的答案。 代码 viewer.py 不是 changed.Solution 是:
step1)我嵌入代码
<script>var FILE_PATH = {{ file }}</script>
在模板中。
step2)将使用变量的脚本需要修改代码(viewer.js),来自:
var file = 'file' in params ? params.file : DEFAULT_URL
到
var file = FILE_PATH ? FILE_PATH: DEFAULT_URL
让viewer.js不再独立
希望有人提供更好的解决方案。
您可以使用重定向功能,它可以根据您的需要重定向您:
@app.route('/book')
def hello():
file = request.args.get('file')
if not file:
return redirect("/?file=abc.pdf")
return render_template('book.html', paraKey=paraValue)