小编RED*_*KEY的帖子

如何限制Django中的登录重试次数

我想在django中获取一个登录表单,只允许三次登录尝试,然后重定向到"登录帮助"页面.我目前正在使用内置的"django.contrib.auth.views.login"视图和自定义模板.在n次登录尝试失败后如何强制它重定向到另一个页面?

python django

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

识别Postgres中的连接ID

我有一个Postgres数据库(9),我正在编写触发器.我希望触发器设置修改时间和记录的用户ID.在Firebird中,您有一个可以在触发器中使用的CONNECTIONID,因此您可以在连接到数据库时向表中添加值(这是一个桌面应用程序,因此连接在应用程序的生命周期内是持久的),类似于这个:

UserId | ConnectionId
---------------------
544    | 3775

然后在触发器中查找connectionid 3775属于用户ID 544并使用544作为修改记录的用户.

我可以在Postgres中使用类似的东西吗?

delphi postgresql database-connection

6
推荐指数
2
解决办法
6647
查看次数

在Delphi中实现接口时,实现方法不在公共部分有关系吗?

鉴于以下界面:

ITest = interface ['guidhere']
  procedure TestMethod;
end;
Run Code Online (Sandbox Code Playgroud)

是否有任何理由在实现类中TestMethod()声明为 as public?我已经把它放在privateprotected部分,它似乎没有什么区别。我只是想知道是否有任何指导方针,从设计角度(或任何角度),使该public部分成为实现该方法的正确部分。

delphi interface

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

DUnitX 整数测试始终为真

我有一个这样定义的测试:

[Test]
 [TestCase('TestSetAsInteger 001.', '0')]
 [TestCase('TestSetAsInteger 002.', '666')]
 procedure TestSetAsInteger(IntVal : integer);
Run Code Online (Sandbox Code Playgroud)

并像这样实现:

procedure TTestKeyValueList.TestSetAsInteger(IntVal: integer);
begin
  FKVL.AsInteger['testkey'] := IntVal;
  Assert.AreEqual(IntVal, FKVL.AsInteger['testkey']);
end;
Run Code Online (Sandbox Code Playgroud)

FKVL 中的方法是存根,因此它们应该失败。问题是,他们总是过去。

现在,如果我将测试实现更改为:

procedure TTestKeyValueList.TestSetAsInteger(IntVal: integer);
begin
  FKVL.AsInteger['testkey'] := IntVal;
  Sleep(1);  //This can be anything really, I can call FKVL.Count or other some such
  Assert.AreEqual(IntVal, FKVL.AsInteger['testkey']);
end;
Run Code Online (Sandbox Code Playgroud)

现在测试按预期进行。诡异的。我在这里做错了什么吗?

delphi testing dunitx

0
推荐指数
1
解决办法
113
查看次数