我在 Tornado 框架中使用 WebSockets 并且无法以 html 形式获取要发送到 Tornado 类的数据。
这是我的代码:
class MainHandler(tornado.web.RequestHandler):
event = []
def get(self):
self.render('main.html')
def post(self):
MainHandler.event = self.get_argument('event')
Run Code Online (Sandbox Code Playgroud)
当我尝试将事件发送到 WebSocketHandler 类时。没有从表单收到数据:
class WSHandler(tornado.websocket.WebSocketHandler):
def open(self):
print "tailing..."
db = Connection().blah
coll = db.blah_tail
event = MainHandler.event
print 'Filtered', event
Run Code Online (Sandbox Code Playgroud)
'Filtered' 只打印一个空列表:“Filtered []”。
html表单:
<form action="/" method="post">
<input type="text" name="event" />
<input type="submit" id="open" value="Submit Query" />
</form>
Run Code Online (Sandbox Code Playgroud)
如何将表单数据发送到 WSHandler 类?
谢谢
用于创建 websocket 的 js:
<script>
$(document).ready(function() {
var ws;
$("#open").click(function(evt){
evt.preventDefault();
ws = new …Run Code Online (Sandbox Code Playgroud) 我想知道我是否可以将D3库与我的服务器通过websockets发送的实时数据一起使用.我看不到任何证明这一点的文档或示例.我最初的期望是通过以下代码示例来实现:
ws = new WebSocket(ws://localhost:8888/ma");
some more code....
ws.onmessage = function(evt) {
d3.json("evt.data", function(json) {
......
.......More code.....
......
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用,但我知道客户端通过检查控制台日志来接收数据.
此外,还有一个递归函数可以展平JSON文档:
// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(root) {
var classes = [];
function recurse(name, node) {
if (node.children) node.children.forEach(function(child) { recurse(node.name, child); });
else classes.push({packageName: name, className: node.name, value: node.size});
}
recurse(null, root);
return {children: classes};
}
console.log(evt.data);
};
ws.onclose = function (evt) {
alert("Connection terminated")};
});
});
Run Code Online (Sandbox Code Playgroud)
如果我的JSON文档已经是平的那么我认为它不是必需的,即:
{ID: …Run Code Online (Sandbox Code Playgroud) 我正在尝试删除此数组中的以下dict:
{
"ProjectID": "8ToGTAUjT+CbcH68ZYuW8Q=="
"Tasks": [
{
"description": "",
"title": "testcounter",
"notes": "",
"percentComplete": "100",
"completedDate": {
"hour": "12",
"year": "2014",
"day": "14",
"minute": "43",
"month": "11"
},
"completed": "",
"ProjectID": "8ToGTAUjT+CbcH68ZYuW8Q==",
"TaskID": "JxHddpQNSguzOqg1sdsdKtyQ=="
},
......
],
......
}
Run Code Online (Sandbox Code Playgroud)
Tasks 是此记录中的子文档.
我试着用这个删除:
db.projects.update({'ProjectID': "8ToGTAUjT+CbcH68ZYuW8Q=="},
{'$pull': {'Tasks.TaskID': "JxHddpQNSguzOqg1sdsdKtyQ=="}})
Run Code Online (Sandbox Code Playgroud)
但是,这不会删除此子文档.如何删除数组中的dict?
我正在使用一个可以使用的mongodb上限集合.我想将其大小设置为最大值,因为我不希望根据FIFO规则删除最旧的记录.
我希望尽可能长时间地保持数据,同时保持封顶集合的功能.
谢谢
我正在尝试查找可以在Web浏览器中创建条形图的示例或工具.我将通过Web套接字从服务器发送数据,并且在收到数据时,我希望每个条的"高度"发生变化,反映收到的数据.
因此,用户可以在收到数据时看到图表发生变化.
我已经看过很多例子,但我看不到会有上述例子.像D3这样的东西看起来非常好,但似乎有一个陡峭的学习曲线,似乎有很多在那里它变得非常混乱.
我正在寻找简单快捷的事情.
谢谢
我正在尝试将数字转换为1215464565到12-15-46-45-65.我正在尝试这样做:
var num = 1215464565;
num = num.toString();
num.replace(/(.{2)/g,"-1");
Run Code Online (Sandbox Code Playgroud)
然而,JSFiddle并没有反映出这种变化.
dicts我有一个由服务器在 ajax 请求中返回的数组,如下所示:
var obj = [{'id': '111', 'name': 'test1'}, {'id': '1975', 'name': 'test2'}]
Run Code Online (Sandbox Code Playgroud)
当我尝试访问每个字典时:
$.each(obj,function(index,value){
alert(index + " : " + value);
});
Run Code Online (Sandbox Code Playgroud)
我收到错误:
未捕获的类型错误:无法使用 'in' 运算符在 [{'id': '111', 'name': 'test1'}, {'id': '1975', 'name': 'test2 中搜索 '193' '}]
如何访问数组中的每个字典?
我有子组件从父母接收道具,但在一个孩子的事件(按钮点击)我想setState再次使用新的道具.因此,父级将列表中的所有项目传递给子级.在子prop中,按钮删除列表中的项.但是如何更新状态以便列表项也从视图中删除.这是我的代码:
const Parent = React.createClass({
getInitialState:function(){
return {
items: []
};
},
componentWillMount:function(){
axios.get('/comments')
.then(function(response) {
this.setState({
items: response.data
})
}.bind(this));
},
render() {
return (
<div>
<Child1 data={this.state.items}/>
</div>
);
}
});
export default Parent;
export default function Child1(props){
return(
<div>
{ props.data.map((comment,id) =>(
<p key={id}>
{comment.name}<Delete data={comment.id}/>
</p>
)
)}
</div>
)
}
class Delete extends React.Component {
constructor() {
super();
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
Purchase.Action(this.props.data,'remove');
axios.post('/comments', {
item: this.props.data
})
.then(function (response) { …Run Code Online (Sandbox Code Playgroud) 我有一个条件,我正在检查列表中的每个元素,如果条件变为真,我想在几个变量之一中增加一个计数器的值.这是我的例子:
for el in elements:
if sum(x, el) < 5:
.........DO SOMETHING: Increment variable age
Run Code Online (Sandbox Code Playgroud)
现在,如果我想增加与元素中的el相关的变量,我该怎么做呢.因此,例如,如果el是年龄,然后我想增加一个年龄变量,这将如何做?
我可以通过编写大量的switch语句来做到这一点,但是最好的方法是做什么.
谢谢
编辑
我要做的是每个元素是一组城市的坐标(Long,Lat),每个元素我都在计算距事件的距离.我将使用geopy.
现在因为每个元素都是坐标而不是城市名称.我想说的是,如果事件距纽约坐标不到5公里,可以增加纽约变量,或者距离伦敦5公里,以增加伦敦变量.
希望这会让它更清晰.
我有一个collection包含的list,dicts我想搜索是否有dict包含两个特定的key:values。
因此,例如,我想find_one在字典中包含特定的姓氏和名字。这是我的收藏:
{
"names": [
{
"firstName": "bob",
"lastName": "jones",
"age": "34",
"gender": "m"
},
{
"firstName": "alice",
"lastName": "smith",
"age": "56",
"gender": "f"
},
{
"firstName": "bob",
"lastName": "smith",
"age": "19",
"gender": "m"
},
]
}
Run Code Online (Sandbox Code Playgroud)
我想查看是否有以鲍勃·史密斯为名字和姓氏的记录,我将其搜索为:
first = 'bob'
last = 'smith'
nameExists = db.user.find_one({'$and':[{'names.firstName':first,'names.lastName':last}]})
Run Code Online (Sandbox Code Playgroud)
此查询会检索鲍勃·史密斯的一条记录吗?