如何通过按 html 文件上的按钮将变量设置为烧瓶服务器路由
How to set a variable with pressing a button on an html file to the flask server route
中间有点迷茫,希望大家帮帮我,
我有一个类似于下面的文本文件:
./Video/SetUp
./Video/NewRecordings
./Video/NewRecordings/20160113_151920
./Video/Back Up
./Video/Back Up/FirstLecDraft
./Video/Back Up/FirstTalk
我使用下面的 python 脚本(感谢 Dominate)使用上面提到的 List
文本文件填充 html 文件:
import dominate
from dominate.tags import *
doc = dominate.document(title='Dominate your HTML')
with doc.head:
link(rel='stylesheet', href='style.css')
script(type='text/javascript', src='script.js')
with doc:
with div():
with open('List') as f:
for line in f:
li(input(line.title(), type='submit', value='%s' % line, onclick='self.location.href=\'http://127.0.0.1:5000/{This must be the same as "value" part}\''))
with div():
attr(cls='body')
print doc
第一个问题:如何将value
字段的值传递给onclick
上的其余路径?
结果一定是这样的:
<input href="" onclick="self.location.href='http://127.0.0.1:5000/cameradump/2016-01-21" type="submit" value="./cameradump/2016-01-21">
以及另一个按钮的另一个值。
如您所见,:5000/
之后的其余onclick路径必须与value
字段完全相同。
第二个问题:如何将它传递给 flasks 的 main.py
文件中的路由? (例如,当用户按下每个按钮时,该按钮的值必须动态设置为路由)
main.py
目前是这样的:
from flask import Flask, render_template
import subprocess
app = Flask(__name__)
@app.route("/{value must be passed here}")
def index():
return render_template('index.html')
...
但是如果用户按下按钮 /cameradump/2016-01-21
:
它应该像下面这样
...
@app.route("/cameradump/2016-01-21")
def index():
return render_template('index.html')
...
或根据按下的按钮的其他值。
第一个:
按照与 value
相同的方式操作 - 使用 %
onclick='self.location.href="http://127.0.0.1:5000/%s"' % date
如果你不能在文件 "List"
中包含 "2016-01-21"
但你有 "/cameradump/2016-01-21"
那么你可以拆分它(使用 "/"
)并获取最后一个元素 - 日期.
# `line` is `"/cameradump/2016-01-21"`
data = line.split('/')[-1]
第二个:
阅读有关 routing 的文档
您可以在路线中使用变量来获取日期
@app.route("/cameradump/<date>")
def index(date):
print("Date:", date)
return render_template('index.html')
中间有点迷茫,希望大家帮帮我,
我有一个类似于下面的文本文件:
./Video/SetUp
./Video/NewRecordings
./Video/NewRecordings/20160113_151920
./Video/Back Up
./Video/Back Up/FirstLecDraft
./Video/Back Up/FirstTalk
我使用下面的 python 脚本(感谢 Dominate)使用上面提到的 List
文本文件填充 html 文件:
import dominate
from dominate.tags import *
doc = dominate.document(title='Dominate your HTML')
with doc.head:
link(rel='stylesheet', href='style.css')
script(type='text/javascript', src='script.js')
with doc:
with div():
with open('List') as f:
for line in f:
li(input(line.title(), type='submit', value='%s' % line, onclick='self.location.href=\'http://127.0.0.1:5000/{This must be the same as "value" part}\''))
with div():
attr(cls='body')
print doc
第一个问题:如何将value
字段的值传递给onclick
上的其余路径?
结果一定是这样的:
<input href="" onclick="self.location.href='http://127.0.0.1:5000/cameradump/2016-01-21" type="submit" value="./cameradump/2016-01-21">
以及另一个按钮的另一个值。
如您所见,:5000/
之后的其余onclick路径必须与value
字段完全相同。
第二个问题:如何将它传递给 flasks 的 main.py
文件中的路由? (例如,当用户按下每个按钮时,该按钮的值必须动态设置为路由)
main.py
目前是这样的:
from flask import Flask, render_template
import subprocess
app = Flask(__name__)
@app.route("/{value must be passed here}")
def index():
return render_template('index.html')
...
但是如果用户按下按钮 /cameradump/2016-01-21
:
...
@app.route("/cameradump/2016-01-21")
def index():
return render_template('index.html')
...
或根据按下的按钮的其他值。
第一个:
按照与 value
相同的方式操作 - 使用 %
onclick='self.location.href="http://127.0.0.1:5000/%s"' % date
如果你不能在文件 "List"
中包含 "2016-01-21"
但你有 "/cameradump/2016-01-21"
那么你可以拆分它(使用 "/"
)并获取最后一个元素 - 日期.
# `line` is `"/cameradump/2016-01-21"`
data = line.split('/')[-1]
第二个:
阅读有关 routing 的文档
您可以在路线中使用变量来获取日期
@app.route("/cameradump/<date>")
def index(date):
print("Date:", date)
return render_template('index.html')