1

我正在创建一个网页,该网页显示数据库/表中存在的对象列表。我有一个存储过程,它从表中检索数据并将数据与将解析到表中的每一列相关联。

<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>

每行末尾都会有一个“删除”按钮,用于删除用户希望的任何行(在数据库中)。行的删除应该在存储过程中运行。我在 python 中有一个函数可以执行存储过程。

但是,我不知道如何连接将返回“JobStream Id”和“日期”的按钮,该按钮用作执行存储过程的参数。

我使用 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>'}]))
4

1 回答 1

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您的数据中有一个字段。

于 2015-05-06T20:37:49.287 回答