【发布时间】:2019-09-01 23:22:49
【问题描述】:
我正在使用 GraphViz 生成 SVG 格式的图形。我可以在节点中嵌入超链接。
我希望这个 SVG 文件由网络服务器提供服务。当用户单击其中一个链接时,我希望服务器运行一个 Python 脚本(其参数取决于链接),该脚本会生成一个新的 SVG,然后显示该 SVG。
最简单的方法是什么?
【问题讨论】:
标签: python-3.x svg
我正在使用 GraphViz 生成 SVG 格式的图形。我可以在节点中嵌入超链接。
我希望这个 SVG 文件由网络服务器提供服务。当用户单击其中一个链接时,我希望服务器运行一个 Python 脚本(其参数取决于链接),该脚本会生成一个新的 SVG,然后显示该 SVG。
最简单的方法是什么?
【问题讨论】:
标签: python-3.x svg
对于这么小的东西,我可能会使用 Flask 来解析参数:
from flask import request
from flask import Response
@app.route('/')
def generate_svg():
params = request.args
svg = SVGGenerate(**params)
return Response(svg, mimetype='image/svg+xml')
请注意,这是相当不安全的 - 您必须清除参数以仅接受允许的值。
您可以使用https://pypi.python.org/pypi/schema 或https://cerberus.readthedocs.org/en/latest/ 之类的东西来验证您从用户那里收到的数据。
Flask 有一个很好的文档来解释您需要了解的其余内容。
【讨论】:
@app.route('/') 是什么?我该如何处理您发布的代码?