现在使用VUE+FLASK开发一个小程序,功能是VUE向后端发送两个文件A,B,进行计算后生成C.html文件保存在FLASK框架下的一个文件夹/result下,然后返回C.html文件路径给VUE前端,再由VUE打开C.html网页。
那么问题来了,VUE如何访问FLASK框架下的C.html?
访问FLASK的网页都要@app.route(),可能生成很多个静态的HTML,那么不可能在程序里一个一个@app.route(),这种情况怎么办?
动态生成的静态资源的访问时比较容易实现的,你在同一个route下把要访问的资源的名称做为参数传递给接口,接口按名称给你返回就行了,你存在的主要问题其实不是这个,按照你的业务流程,上传AB资源生成C.html,然后前端访问C.html,首次访问肯定时容易的,因为你生成C的同时把路径返回到前端了,那么问题来了,你这个C时一次性的吗,如果时一次性的,那就好办了,直接把C的路径发给后台的接口,后台按路径把资源返回就行了,如果C不是一次性的,也就是说后续你还会再打开,那么如何获取C的路径和名称就是问题了,这个就要根据你的实际业务来设计一个二次访问的途径了
#通过参数实现不同静态html的访问,注意,src_name包含路径和名称,是相对于templates目录的
@app.route("/result/<src_name>")
def result(src_name):
return render_template(src_name)
你把c.html生成的路径给前端就好,你发版之后有路径,前端a标签链接直接打开路径就好了
你设置一个路由就是访问文件夹下的文件
例如:这种方式就能获取不同参数a
@app.route('/square/<a>')
def hello_user(a):
"""
a 13
name xiaoming
age 20
"""
print("a",a)
# 通过request获取参数
print('name', request.args.get("name"))
print('age', request.args.get("age"))
return str(int(a)**2)
传入的参数访问result理解下的html文件,和你访问图片思想一样,但是生成html只能你后端自己生成