小编Mac*_*wel的帖子

数据表在按钮单击后初始化表(ajax,jquery)

我在加载数据表对象时遇到问题。当我在页面加载时初始化并填充表时,它可以正常工作。

下面的代码在页面重新加载时完美运行。

<script src="https://cdn.datatables.net/1.10.10/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" charset="utf-8">

$(document).ready(function(){
  var table = $('#dt_110x_complex').DataTable({
    paging : true,
    scrollY: 300,
    ajax: "{{ url_for('complex_data') }}"
  });

});
</script>
Run Code Online (Sandbox Code Playgroud)

但下面的代码在单击按钮时不起作用。我究竟做错了什么?

$(function() {
    $('#proces_input').on('click', function() {
        alert('Im in')
        var table = $('#dt_110x_complex').DataTable({
        paging : true,
        scrollY: 300,
        ajax: "{{ url_for('complex_data') }}"
        });

        });
    });
Run Code Online (Sandbox Code Playgroud)

按钮 id =“process_input”。单击按钮后会显示消息警报(“我正在”)。

下面是我的数据表的 html 表代码(两个示例相同):

<div class="row">
<div class="col-lg-12">
<table id="dt_110x_complex" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>id</th>
<th>code</th>
<th>date</th>
<th>blocade</th>
<th>konti</th>
<th>free</th>
<th>occ</th>
<th>origin</th>
<th>type</th>
<th>created</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div> …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery datatables

5
推荐指数
1
解决办法
1万
查看次数

创建具有附加功能的自定义namedtuple类型

我想创建自己的内置命名元组类型,它具有一些额外的功能。假设我们创建一个类:

from collections import namedtuple
MyClass = namedtuple('MyClass', 'field1 field2')
Run Code Online (Sandbox Code Playgroud)

它是一成不变的,易读的和简单的。现在,我可以创建MyClass的实例:

myobj = MyClass(field1 = 1, field2 = 3.0)
print(myobj.field1, myobj.field2)
Run Code Online (Sandbox Code Playgroud)

我的额外要求是创建实例时,我想检查的field1inttype和field2is float。例如,如果用户尝试创建MyClass实例:

obj = MyClass(field1 = 1, field2 = 3.0) # instantiates ok
obj1 = MyClass(field1 = 'sometext', field2 = 3.0) # raises TypeError
Run Code Online (Sandbox Code Playgroud)

我试图制作一个自定义的namedtuple,它可以验证数据类型(MyClass应该是不可变的),例如:

MyClass = modifiednamedtuple('MyClass', 'field1 field2', (int, float) )
Run Code Online (Sandbox Code Playgroud)

但是卡住了:(。namedtuple是函数(不能是ModifyedNamedtuple的基类),我对元类的实验失败了。

有任何提示或建议吗?

好的,我想出了一个可能不是“干净”或pythonic的解决方案。除了我的对象不是一成不变的以外,它都可以工作。如何使它们不变?有什么建议可以使它更干净,更可重用吗?

这是我的代码:

def typespecificnamedtuple(name, *attr_definitions):

    def init(self, *args, **kwargs):
        valid_types = dict(attr_definitions) # tuples2dict
        for …
Run Code Online (Sandbox Code Playgroud)

python overriding metaprogramming namedtuple

5
推荐指数
1
解决办法
1280
查看次数