我在visual c#2005中创建一个简单的程序,在Yahoo!上查找股票代码 财务,下载历史数据,然后绘制指定股票代码的价格历史记录.
我知道获取数据所需的确切URL,如果用户输入现有的股票代码(或者至少有一个有关Yahoo! Finance的数据),它的工作完全正常.但是,如果用户编写了一个股票代码,我会遇到运行时错误,因为该程序试图从不存在的网页中提取数据.
我正在使用WebClient类,并使用DownloadString函数.我查看了WebClient类的所有其他成员函数,但没有看到任何可用于测试URL的内容.
我怎样才能做到这一点?
所以我有两个模型,一个排名模型和一个UserRanking模型.该应用程序以人们列出项目并对其进行排名为中心(例如:"2008年最佳电影").排名模型是总排名列表,它是根据人们为该列表创建的所有不同UserRankings计算的.因此,对于每个排名,有一堆不同的UserRankings,每个用户通过提交他们的排名版本的列表给出他/她的意见.UserRanking模型有一个名为"ranking"的ForeignKey字段,它指向Ranking模型.
无论如何,我正在努力收集流行的排名.我的第一步是使用以下代码行获得与他们相关联的大多数UserRankings的排名:
popular = Ranking.objects.all().annotate(num_user_rankings=Count('userranking')).order_by('num_user_rankings')[:50]
Run Code Online (Sandbox Code Playgroud)
但是,Django给了我一个NameError并说:"全局名称'Count'未定义".它没有抱怨注释(只在Django Development版本中可用),这意味着Django开发工作正常吗?"计数"在Django文档中清楚地描述为几个可用作注释arg的聚合函数之一.这绝对没有意义.
事实上,我只是测试了它,并且我能够使用没有参数的注释来显示我的页面,并且它没有给我任何错误(显然我也删除了order_by).因此注释确实有效!
所以我试图将Cheetah模板引擎与Django Web框架结合使用,这实际上工作正常.我做了一些简单的测试,我能够渲染页面和诸如此类的东西.
但是,除了在Cheetah模板中使用非常简单的变量/属性/方法之外,每当做任何事情时都会出现问题.它生气了,并说:你没有安装NameMapper的C版本!我正在禁用Cheetah的useStackFrames选项,因为使用Python版本的NameMapper会非常慢.您应该使用已编译的NameMapper C版本获取Cheetah的副本."\n你没有安装NameMapper的C版本!"
然后它将无法找到我试图在Cheetah模板中调用的任何属性或方法.
我试图下载Namemapper的C版本并安装它,但我不知道如何'安装'.pyd文件(当我在网上查找'.pyd'文件时它说它们只是动态python模块可以与import语句一起使用).此外,Cheetah网站只有C版本的Namemapper用于python 2.4和2.5,而我使用的是python 2.6.1,所以这可能也是一个问题.
有人有解决方案吗?谢谢.
根据我的搜索,这不应该那么难,到目前为止,我已经尝试过许多没有运气的东西.我有一个在Heroku上运行的Node.js服务器,它创建了一个socket.io服务器(我也试过在Nodejitsu上托管它,但没有帮助).如果我从我想要创建websocket连接的实际Node.js服务器提供页面,socket.io套接字连接没有问题,但是我无法使我的任何跨域套接字连接尝试工作.
我曾尝试过几种方式跨域连接到这个socket.io服务器:
(1)一个简单的本地HTML文件,其中包含一些脚本,可以从节点服务器(使用$ .getScript)成功获取客户端socket.io库,然后尝试创建套接字连接(var socket = io.connect('nodejs_server_hostname:port_num) ');),失败了.
(2)在本地运行rails app服务器(开发模式),它提供对包含javascript的客户端的响应,试图以与方法(1)相同的方式形成websocket连接,并且失败
(3)在Heroku中托管rails应用程序,并执行与方法(2)相同的操作.这也失败了.我确保启用Heroku文档(https://devcenter.heroku.com/articles/heroku-labs-websockets)中指定的websockets .如果请求是从客户端尝试与其建立socket.io连接的实际Node.js服务器提供的,那么一切都会正常工作.
在所有三次尝试中都触发了socket.socket.on('error')事件.
我尝试使用以下代码修改rails应用程序中的http响应标头:
response.headers['Access-Control-Allow-Origin'] = '*'
Run Code Online (Sandbox Code Playgroud)
这会正确设置标头(我在从rails服务器请求页面后检查),但它不能解决套接字连接问题.
我在Node.js服务器上创建了一个执行日志记录的socket-io授权回调,看起来这个回调根本就没有用于跨域套接字连接尝试.所以似乎Node.js服务器甚至从未看到websocket连接尝试,这对我来说非常困惑.
下面我将粘贴所有相关的代码文件.
Node.js服务器文件:
var http = require('http'),
express = require('express'),
whiskers = require('whiskers'),
redis = require('redis'),
port = process.env.PORT || 5000,
app = express(),
server = http.createServer(app).listen(port),
io = require('socket.io').listen(server);
console.log('---- ' + port);
console.log(port);
console.log('---- ' + port);
io.configure(function () {
io.set('authorization', function (handshakeData, callback) {
console.log("-- inside io.set('authorization, cb)")
console.log('-- handshakeData:');
console.log(handshakeData);
console.log('-- end of handshakeData logging --'); …Run Code Online (Sandbox Code Playgroud) 我想创建一个垂直列表,其中每行缩小其宽度以完美地包含其内部内容(相对于div扩展其宽度以填充容器的默认行为).
我想每行只有一个 HTML元素(没有额外的包装div).
下面的代码完全符合我的要求,但它在Safari中不起作用(bug?).
.container {
margin: 10px;
border: 2px solid #999;
padding: 5px;
display: flex;
flex-direction: column;
width: 300px
}
.row-item {
padding: 5px;
margin: 5px;
border: 1px solid green;
/* this will shrink the width to the inner content
in Chrome and Firefox, but not in Safari */
margin-right: auto;
}Run Code Online (Sandbox Code Playgroud)
<div class='container'>
<div class='row-item'>Item #1</div>
<div class='row-item'>Another Item...</div>
<div class='row-item'>Item No. 3</div>
</div>Run Code Online (Sandbox Code Playgroud)
这是一个带有上述代码的codepen:http://codepen.io/anon/pen/woKYqx
我知道通过添加包装div然后display: inline-block在内部元素(或其他几个类似的解决方案)上使用来解决这个问题是微不足道的.
但是,似乎应该可以在不添加额外HTML元素的情况下解决此问题.这是一个相当简单的布局.
是否有跨浏览器方式来为每行使用一个HTML元素?
我正在使用Visual C#2005编写一个俄罗斯方块游戏.这是我设计的最广泛的程序.
我创建了一个形状类和一个块类来控制不同俄罗斯方块的位置,移动和显示.我有每个形状的moveDown(),moveLeft()和moveRight()函数(和相应的canMoveDown(),canMoveLeft(),canMoveRight()布尔函数,验证它可以移动).这一切都很美妙.
我想使用向下,向右和向左箭头键让用户移动块,除了使用计时器使形状每隔几毫秒自动下降一行.
我正在使用KeyDown事件处理程序来检查用户何时按下向下,向左和向右箭头键.这不是那么难.问题是我想允许对角线运动,我希望它能够顺利运行.我已经尝试了一系列不同的方法来解决这个问题,并取得了不同程度的成功.但我不能说得对......
我最成功的方法是使用三个布尔变量来跟踪向下,向左和向右箭头键被按下的时间.我会在KeyDown事件中将布尔值设置为true,在KeyUp事件中将布尔值设置为false.在KeyDown事件中,我还将告诉块如何移动,使用布尔变量来检查当前正在按下哪个组合.除了一件事,它的效果非常好.
如果我按下其中一个箭头键并按住,然后按下第二个箭头键然后释放第二个键,该块将完全停止移动,而不是继续向第一个箭头键的方向移动,而第一个箭头键尚未释放然而.我认为这是因为第二个键触发了KeyDown事件,并且在释放时,KeyUp事件被触发,并且KeyDown事件完全停止触发,即使第一个键被触发.
我不能为我的生活找到一个满意的解决方案来解决这个问题.
任何帮助将不胜感激=)
我正在尝试在Python中读取二进制文件(代表Matlab中的矩阵).但我无法读取文件并将字节转换为正确的值.
二进制文件由一系列4字节数组成.前两个数字分别是行数和列数.我的朋友给了我一个Matlab函数,他用fwrite编写了这个函数.我想做这样的事情:
f = open(filename, 'rb')
rows = f.read(4)
cols = f.read(4)
m = [[0 for c in cols] for r in rows]
r = c = 0
while True:
if c == cols:
r += 1
c = 0
num = f.read(4)
if num:
m[r][c] = num
c += 1
else:
break
Run Code Online (Sandbox Code Playgroud)
但每当我使用f.read(4)时,我会得到类似'\ x00\x00\x00\x04'的内容(此具体示例应代表4),我无法弄清楚将其转换为正确的数字(使用int,hex或类似的东西不起作用).我偶然发现了struct.unpack,但这似乎没什么帮助.
下面是一个示例矩阵和相应的二进制文件(当我使用python函数f.read()读取整个文件时没有任何大小参数),Matlab函数为它创建:
4 4 2 4
2 2 2 1
3 3 2 4
2 2 6 2
'\x00\x00\x00\x04\x00\x00\x00\x04@\x80\x00\x00@\x00\x00\x00@@\x00\x00@\x00\x00\x00@\x80\x00\x00@\x00\x00\x00@@\x00\x00@\x00\x00\x00@\x00\x00\x00@\x00\x00\x00@\x00\x00\x00@\xc0\x00\x00@\x80\x00\x00?\x80\x00\x00@\x80\x00\x00@\x00\x00\x00'
Run Code Online (Sandbox Code Playgroud)
所以前4个字节和第5个8字节都应该是4,因为矩阵是4x4.然后它应该是4,4,2,4,2,2,2,1等...
多谢你们!