在python web

时间:2015-05-06 19:12:46

标签: python html sql-server stored-procedures cheetah

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

<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>'}]))

1 个答案:

答案 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字段。