var inputDate = '20/4/2010'.split('/');
var dateFormatted = new Date(parseInt(inputDate[2]), parseInt(inputDate[1]), parseInt(inputDate[0]));
var expiryDate = (dateFormatted.getDate() - 1) + '/' + dateFormatted.getMonth() + '/' + (dateFormatted.getFullYear() + year);
Run Code Online (Sandbox Code Playgroud)
这是我用来根据用户输入日期计算到期日期的Javascript代码.目前,到期日是original date minus one day and original year minus X.
这段代码存在问题,首先,它没有考虑无效日期.例如,如果用户提供的日期是"2010年1月10日",则到期日期将为"0/10/2013"(假设有效期为+ 3年).
我可以这样做:
var inputDate = '20/4/2010'.split('/');
var day = parseInt(inputDate[0]);
var month = parseInt(inputDate[1]);
var year = parseInt(inputDate[2]);
if (day < 1)
{
if (month == ...)
{
day = 31
month = month - 1;
}
else
{
day …Run Code Online (Sandbox Code Playgroud) 我需要一种方法来执行某种'whileonmouseover'功能,以便在鼠标覆盖元素时继续动画...
例如,给定此功能:
$(document).ready(function()
{
function doAlert()
{
alert(1);
}
$('#button').hover(function()
{
doAlert();
});
});
Run Code Online (Sandbox Code Playgroud)
当鼠标悬停在#button上时,警报将触发一次.当鼠标停留在#button上时,我需要一种方法来继续发出警报
我已经尝试做某种函数递归来继续警报,直到设置一个触发器导致它停止:
$(document).ready(function()
{
var doLoop = true;
function doAlert()
{
if (!doLoop) return;
alert(1);
doAlert();
}
$('#button').hover(function()
{
doAlert();
}, function()
{
doLoop = false;
});
});
Run Code Online (Sandbox Code Playgroud)
但那失败了.似乎该函数完全忽略'hover off'中的'doLoop = false'赋值.
有没有办法实现这个目标?
我在从数据库中删除行然后添加新行时遇到一些问题.这是代码:
for positionid in form_result['responsibilities']:
inputdata = form_result['responsibilities'][positionid]
self.__deleterow(dbmyaccount.Responsibilities, session['authed']['userid'])
for resp in (i.strip() for i in inputdata.split(',')):
resp_q = dbmyaccount.Responsibilities(session['authed']['userid'])
resp_q.positionid = positionid
resp_q.responsibility = resp
Session.add(resp_q)
Session.commit()
def __deleterow(self, table, user):
delete_q = Session.query(table).filter_by(userid=user).first()
if delete_q:
Session.query(table).filter_by(userid=user).delete()
Session.commit()
Run Code Online (Sandbox Code Playgroud)
基本上,我从表中擦除所有用户数据,然后添加他们的新选项.问题是,代码产生了这个错误:
ObjectDeletedError: Instance '<Responsibilities at ...>' has been deleted.
Run Code Online (Sandbox Code Playgroud)
我不知道为什么......从什么我的谷歌搜索已经止跌回升,是因为我已经删除了所有从数据库的数据修改后的职责类产生的误差.虽然用新数据重新初始化它,但我无法弄清楚如何"放手".
我究竟做错了什么?
编辑
这是责任类:
class Responsibilities(Base):
__tablename__ = 'responsibilities'
id = Column(Integer, primary_key=True)
userid = Column(Integer, ForeignKey('users.id'))
positionid = Column(Integer)
responsibility = Column(String(50))
def __init__(self, user=None):
if user:
self.userid = user …Run Code Online (Sandbox Code Playgroud) 我认为每个Python代码都见过PEP 8.对我说的部分是:
Limit all lines to a maximum of 79 characters.
Run Code Online (Sandbox Code Playgroud)
我坐在宽屏显示器上并在屏幕上编码.我不是在终端编码,也不打算在终端编码.因此我对字符行限制没有任何问题.
有多少人真正遵循这个限制?如果你没有在80字符限制终端编码,你还会遵循它吗?我不遵守它是不是很糟糕?
我讨厌这种限制是如何区分Python的"风格指南".<
我现在已经在Pylons开发了一段时间,并且最近了解到他们正在与另一个框架合并以创建金字塔.
我一直在查看示例代码以查看差异,这会引起一些混乱......
例如,控制器已被视图替换.不是一个大问题...但我觉得有趣的是没有这些目录.它只是一个文件:views.py.
这个新的MVC结构如何工作?我是否将所有操作都写入此文件?当我有类似命名的动作(例如多个索引)时,这可能会变得相当烦人:/
你能指点我一些关于如何使用这个框架的好教程/文档的方向吗?
这是一些说明我的问题的代码:
def blocking1():
while True:
yield 'first blocking function example'
def blocking2():
while True:
yield 'second blocking function example'
for i in blocking1():
print 'this will be shown'
for i in blocking2():
print 'this will not be shown'
Run Code Online (Sandbox Code Playgroud)
我有两个包含while True循环的函数.这些将生成数据,然后我会在某处(最有可能是sqlite数据库)登录.
我一直在玩线程并让它运行起来.但是,我真的不喜欢它...我想做的是使我的阻塞函数异步.就像是:
def blocking1(callback):
while True:
callback('first blocking function example')
def blocking2(callback):
while True:
callback('second blocking function example')
def log(data):
print data
blocking1(log)
blocking2(log)
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Python中实现这一目标?我已经看到标准库带有asyncore,这个游戏中的大牌是Twisted,但这两个似乎都用于套接字IO.
如何异步我的非套接字相关的阻塞函数?
我的ini文件中有以下内容:
cache.regions = default_term, second, short_term, long_term
cache.type = memory
cache.second.expire = 1
cache.short_term.expire = 60
cache.default_term.expire = 300
cache.long_term.expire = 3600
Run Code Online (Sandbox Code Playgroud)
这在我的__init__.py:
from pyramid_beaker import set_cache_regions_from_settings
set_cache_regions_from_settings(settings)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何在我的视图/处理程序中执行实际缓存.有装饰师吗?我认为responseAPI中会有一些东西cache_control可用 - 它指示用户缓存数据.不缓存服务器端.
有任何想法吗?
我正在编写一个用于查找附近WiFi客户端设备的Python模块.我当前所有的扫描程序都是侦听Probe Requests并记录客户端的MAC地址.
我遇到的问题是我完全依赖设备广播探测请求让我发现它.
我想知道是否有其他方式来发现设备.使用此站点作为802.11指南,我想出了这些想法:
我还没有测试过这两个想法.只是吐球.
思考?
我有一个运行Joomla的网站,TinyMCE设置为编辑器.其中一个网站编辑现在正试图将媒体播放器嵌入到文章中,但TinyMCE一直在搞乱HTML.
我已经尝试在插件配置中设置扩展有效元素,*[*]以允许任何内容和所有内容,但它不起作用.
我想要的是禁用TinyMCE中的代码剥离"功能".我不希望它尝试验证我的HTML或类似的东西.
如何禁用代码剥离?
import threading
import Queue
import urllib2
import time
class ThreadURL(threading.Thread):
def __init__(self, queue):
threading.Thread.__init__(self)
self.queue = queue
def run(self):
while True:
host = self.queue.get()
sock = urllib2.urlopen(host)
data = sock.read()
self.queue.task_done()
hosts = ['http://www.google.com', 'http://www.yahoo.com', 'http://www.facebook.com', 'http://stackoverflow.com']
start = time.time()
def main():
queue = Queue.Queue()
for i in range(len(hosts)):
t = ThreadURL(queue)
t.start()
for host in hosts:
queue.put(host)
queue.join()
if __name__ == '__main__':
main()
print 'Elapsed time: {0}'.format(time.time() - start)
Run Code Online (Sandbox Code Playgroud)
我一直试图了解如何执行线程,经过一些教程后,我想出了上述内容.
它应该做的是:
首先我想知道的是,我这样做是否正确?这是处理线程的最佳方法吗?
其次,我的程序未能退出.它打印Elapsed time …
python ×7
pylons ×3
asynchronous ×2
pyramid ×2
caching ×1
coding-style ×1
datetime ×1
event-driven ×1
frameworks ×1
hover ×1
javascript ×1
joomla ×1
jquery ×1
loops ×1
math ×1
network-scan ×1
networking ×1
nonblocking ×1
orm ×1
pep8 ×1
queue ×1
sql ×1
sqlalchemy ×1
tinymce ×1
twisted ×1
wifi ×1
wireless ×1