javascript表单不适合设计为

时间:2018-02-11 20:52:01

标签: javascript python

Javascript创建我的html模板表。下面的函数代码在TABLE的for循环中调用,该循环位于ROUND的for循环内。这两个循环由变量(NumberOf)tables和(NumberOf)rounds确定,因此它们随使用而变化。数据库需要为每个ROUND中的每个TABLE维护6个字段的记录,但由于多种原因,这些字段名称尚未编程(但是?)从一个ROUND / TABLE实例到另一个实例:不清楚如何这样做以某种方式与jeehaw一起使用python数据模型;我希望有一个更容易的选择;我想不要在javascript中使用jinja类型的代码使服务器负担过重,例如在stackoverflow上的其他地方已经提到过。

function round1(ROUND,TABLE){
        var tt;
        tt  =   '   <div class="table">Table '+ TABLE +''
        tt +=   '       <div class="flex-container partners1">'
            tt +=   '       partners1'
            tt +=   '       <input type="text"  maxlength="8" name="partner1" value="name' + Number(1+4*(TABLE-1)) + '"></input>'
            tt +=   '       <input type="text"  maxlength="8" name="partner2" value="name' + Number(2+4*(TABLE-1)) + '"></input>'
            tt +=   '       <input type="number" name="score1" >score1</input>  '
            tt +=   '       </div>'
        tt +=   '       <p>'
        tt +=   ''
        tt +=   '       </p>'
        tt +=   '       <div class="flex-container partners2">'
            tt +=   '       partners2'
            tt +=   '       <input type="text" maxlength="8" name="partner3" value="name' + Number(3+4*(TABLE-1)) + '"></input>'
            tt +=   '       <input type="text" maxlength="8" name="partner4" value="name' + Number(4+4*(TABLE-1)) + '"></input>'
            tt +=   '       <input type="number" name="score2" >score2</input>  '
            tt +=   '       </div>'
        tt +=   '   </div>'
        return tt;
    }

数据模型如下。我担心将数据发回服务器并将结果返回到模板的处理负担。但我也对如何有效地解析和处理数据项感到困扰。

class Parties(ndb.Model):
    email = ndb.StringProperty()
    page = ndb.KeyProperty(kind=Pages)
    name = ndb.StringProperty()
    tables = ndb.IntegerProperty(default=0)
    rounds = ndb.IntegerProperty(default=0)

class Rounds(ndb.Model):
    party = ndb.KeyProperty(kind=Pages)
    number = ndb.IntegerProperty(default=0)

class Tables(ndb.Model):
    party = ndb.KeyProperty(kind=Pages)
    number = ndb.IntegerProperty(default=0)
    partner1 = ndb.StringProperty(default="")
    partner2 = ndb.StringProperty(default="")
    partner3 = ndb.StringProperty(default="")
    partner4 = ndb.StringProperty(default="")
    score1 = ndb.IntegerProperty(default=0)
    score2 = ndb.IntegerProperty(default=0)

所以我正在寻找关于如何重写javascript或重新设计数据库的想法,以及如何构建python get和post template_values来协调这两者。

1 个答案:

答案 0 :(得分:0)

经过进一步分析,我将尝试重写我的Python代码,以完成现在使用javascript完成的大部分处理,希望可以最小化数据和代码的不匹配。我希望通过提出这个问题来获得避免这种重写的方法。

或者为了最大限度地减少Python重新编码,因为有很多javascript代码未显示也必须重做,我可能会修改javascript代码,以便每个输入名称包含其圆形和表值:例如,而不是{{1第1轮和第1页中的parent1,name="parent1" .Python代码应该能够解析self.request.get这样的名称,并希望jinja2模板响应不会太麻烦,无法创建和解析,但我不期待开发额外的jinja2。也许可以使用suggested here的想法。我欢迎任何进一步的建议。