小编Naf*_*war的帖子

Django 注释添加时间间隔

我在 Django 2.2 中使用 postgres 数据库。我需要在模型中组合日期和时间字段并在其中添加一天的间隔。我已经完成了这样的第一部分。

Model.objects.annotate(
    end_dt=models.ExpressionWrapper(
        models.F('date') + models.F('end'),
        output_field=models.DateTimeField()
    )
)
Run Code Online (Sandbox Code Playgroud)

现在我必须将 1 天添加到end_dt. 我已经用这样的普通 sql 做到了这一点。

SELECT 
       "db_shift"."id",
       (("db_shift"."date" + "db_shift"."end") + INTERVAL '1 day') AS "end_dt"
FROM 
     "db_shift";
Run Code Online (Sandbox Code Playgroud)

如何使用 django ORM 实现这一目标?或者它甚至可以实现?

python sql django postgresql annotations

6
推荐指数
1
解决办法
1634
查看次数

python 中的 __name__ 有什么重要的?

__name__每个python函数都分配了一个属性。例如

>>> def f(*args, **kwargs):
...     pass
... 
>>> f.__name__
'f'
Run Code Online (Sandbox Code Playgroud)

现在,如果我们用一些装饰器来装饰这个函数,我们本质上就是返回另一个不同的函数 __name__

>>> def d(f):
...     def w(*args, **kwargs):
...         f(*args, **kwargs)
...     return w
... 
>>> f = d(f)
>>> f.__name__
'w'
Run Code Online (Sandbox Code Playgroud)

强烈推荐使用wrapsfromfunctools来修饰返回的函数,这样可以将__name__和 之类的信息__doc__复制到原始函数中。

>>> from functools import wraps
>>> def d(f):
...     @wraps(f)
...     def w(*args, **kwargs):
...         f(*args, **kwargs)
...     return w
... 
>>> f = d(f)
>>> f.__name__
'f' 
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我们不使用wraps复制信息,我们会遇到哪些严重的问题?简单地说__name__,它有什么重要的地方应该被复制?简单的代码,就像我的例子一样,如果我们不使用wrap. …

python function decorator

6
推荐指数
0
解决办法
132
查看次数

如何获取被点击元素的索引?

我的导航中有五个锚元素。我想用 jQuery 获取点击元素的索引。我尝试了这段代码。

$('.navigation ul li a').click(function(e) {

  e.preventDefault();

  var el = $(this).index();
  console.log(el);

 })
Run Code Online (Sandbox Code Playgroud)

但每次我在控制台中得到零。

https://jsfiddle.net/2hg2fkda/小提琴在这里。

任何帮助将不胜感激。谢谢,

html javascript css jquery

3
推荐指数
1
解决办法
5683
查看次数

在Javascript中的截断词后截断字符串

我想在javascript中某些字符长度后截断字符串。当达到字符长度时,不应在单词中间切入字符串,而应将单词补全,然后截断字符串。我尝试过的直到现在都在切割词之前切割了字符串。我想在返回的字符串中包含切割词。这是我的代码:

function truncateString(yourString, maxLength) {
  var trimmedString = yourString.substr(0, maxLength);
  trimmedString = trimmedString.substr(0, Math.min(trimmedString.length, trimmedString.lastIndexOf(" ")));
  return trimmedString;
}
Run Code Online (Sandbox Code Playgroud)

现在,当我使用以下参数调用此函数时:

truncateString('The quick brown fox jumps over the lazy dog',6)
Run Code Online (Sandbox Code Playgroud)

输出为'The' rather than 'The quick

请指出我需要更改的地方。谢谢

javascript

3
推荐指数
1
解决办法
79
查看次数

Python create_task 在运行事件循环时不起作用

我有一段简单的代码让我发疯了一段时间。几天前我发布了这个问题,询问create_task是否与input. 现在我想出了一些与此相关的事情。我在一个单独的线程中运行事件循环并在其中推送任务。非常直接的代码。

import asyncio
import threading


async def printer(message):
    print(f'[printer] {message}')


def loop_runner(loop):
    loop.run_forever()


if __name__ == '__main__':
    event_loop = asyncio.get_event_loop()
    t = threading.Thread(target=loop_runner, args=(event_loop,))
    t.start()

    for m in ['hello', 'world', 'foo', 'bar']:
        print(f'[loop running ?] {event_loop.is_running()}')
        event_loop.create_task(printer(m))
Run Code Online (Sandbox Code Playgroud)

除了这些日志消息外,什么都不会打印。

[loop running ?] True
[loop running ?] True
[loop running ?] True
[loop running ?] True
Run Code Online (Sandbox Code Playgroud)

现在,如果我在事件循环线程中阻塞并让它在像这样暂停后运行。

def loop_runner(loop):
    time.sleep(1 / 1000)
    loop.run_forever()
Run Code Online (Sandbox Code Playgroud)

一切正常,这被打印出来

[loop running ?] False
[loop running ?] False
[loop running ?] …
Run Code Online (Sandbox Code Playgroud)

python multithreading event-loop python-asyncio

2
推荐指数
1
解决办法
4991
查看次数

如何在不同的位置保存python文件?

我在我的硬盘驱动器中使用python编程语言创建了一个文件.我使用的代码是:

file = open('test.txt','w')

file.write('Blah Blah')

file.close()
Run Code Online (Sandbox Code Playgroud)

此代码test.txt在硬盘驱动器中创建文件,但文件保存在项目的默认位置.我想将文件保存在其他位置,如桌面或其他位置.任何人都可以告诉我如何做到这一点.

我使用的是python 3.5

提前致谢,

python

0
推荐指数
2
解决办法
4198
查看次数

如何计算小数点前后的位数?

今天在我的c ++课堂测试中提出了一个问题."编写一个输入浮点数的程序,并计算小数点前后的位数."

我用这段代码计算了小数点前的数字:

float n;

cin>>n;

float temp = n;

int count = 0;

while(temp1 > 1) {

    count++;

    temp = temp/10;
}

cout<<count;
Run Code Online (Sandbox Code Playgroud)

部分之后我坚持了下来.谁能告诉我怎么做?或者可以提供整个程序?

提前致谢,

c++ loops decimal-point

-4
推荐指数
1
解决办法
1249
查看次数