我正在创建一个显示数据库/表中存在的对象列表的网页。我有一个存储过程,它从表中检索数据,并将数据与每个列关联到一个表中。
<table id="fileTable" class="display">
<thead>
<tr>
<th>Jobstream Id</th>
<th>Date</th>
<th>Server Name</th>
<th>Request Time</th>
<th>Status</th>
<th>StepStatus</th>
<th>LastUpdate</th>
<th>DeleteJob</th>
</tr>
</thead>
<tbody>
#for $i in range(0,$rows.__len__())
<tr>
<td>$rows[i].get('JobstreamName')</td>
<td>$rows[i].get('Date')</td>
<td>$rows[i].get('ServerName')</td>
<td>$rows[i].get('RequestTime')</td>
<td>$rows[i].get('Status')</td>
<td>$rows[i].get('StepStatus')</td>
<td>$rows[i].get('LastUpdate')</td>
<td><input type="submit" value="Delete"/></td>
</tr>
#end for
</tbody>
</table>
将会有一个&#34;删除&#34;每行末尾的按钮,用于删除用户希望的任何行(在数据库中)。删除行应该在存储过程中运行。 我在python中有一个执行存储过程的函数。
但是,我不知道如何连接将返回&#34; JobStream Id&#34;和&#34;日期&#34;用作执行存储过程的参数。
我使用Cheetah作为Web开发工具来运行python代码。 感谢我能得到的任何帮助,在此先感谢。
修改 让我在这里重温一下自己。因此,使用存储过程从数据库中提取在网页中生成的表的数据。我正在尝试添加一个功能(每行的末尾有一个删除按钮),允许用户删除任何行。因此,我需要将html变量传递给我的python变量来运行另一个存储过程,但我无法这样做。希望这能澄清大部分的困惑。感谢
以下是完整代码:
def getJobStreamStatus(Delete):
Delete = 'Just a random string'
user,pwd,server,db = SPCaller.parseLogin('DMClient@gpdevdb81\\dmresrchdbdev.EquityData')
db = DB.dbConn(computerName=server,databaseName=db,userName=user,password=pwd)
#results = SPCaller.readSPReturnDict('getJobStreamRerunStatus',None, 'DMClient@gpdevdb81\\dmresrchdbdev.EquityData')
cols, rs = db.getResultSetFromSP('getJobStreamRerunStatus',None)
#html = []
definition = """<br><br><br><br><br><br><HR>$title
<table id="fileTable" class="display">
<thead>
<tr>
<th>Jobstream Id</th>
<th>Date</th>
<th>Server Name</th>
<th>Request Time</th>
<th>Status</th>
<th>StepStatus</th>
<th>LastUpdate</th>
<th>DeleteJob</th>
</tr>
</thead>
<tbody>
#for $i in range(0,$rows.__len__())
<tr>
<td>$rows[i].get('JobstreamName')</td>
<td>$rows[i].get('Date')</td>
<td>$rows[i].get('ServerName')</td>
<td>$rows[i].get('RequestTime')</td>
<td>$rows[i].get('Status')</td>
<td>$rows[i].get('StepStatus')</td>
<td>$rows[i].get('LastUpdate')</td>
<td><input type="button" value="Delete" name='btnEdit' class='btnEdits' /></td>
</tr>
#end for
</tbody>
</table>
"""
return str(Template(definition, searchList=[{'cols':cols, 'rows':arrToDict(cols,rs),'Delete':Delete,'title':'Showing all jobs in the rerun queue with status <b>waiting: 0, running: 2, and failed: 3</b><br><br>'}]))
答案 0 :(得分:0)
我不懂Python,但我认为您可以为每一行创建一个表单,并添加一个隐藏字段,其中包含所显示行的ID。
当用户点击提交按钮时,您可以轻松读取请求表单集合的隐藏字段的值,并将其传递给存储过程:
#for $i in range(0,$rows.__len__())
<tr>
<form action = "....">
<input type="hidden" name="id" value="$rows[i].get('Id')">
<td>$rows[i].get('JobstreamName')</td>
<td>$rows[i].get('Date')</td>
<td>$rows[i].get('ServerName')</td>
<td>$rows[i].get('RequestTime')</td>
<td>$rows[i].get('Status')</td>
<td>$rows[i].get('StepStatus')</td>
<td>$rows[i].get('LastUpdate')</td>
<td><input type="submit" value="Delete"/></td>
</form>
</tr>
#end for
上面的代码假设您的数据中有id
字段。