小编Han*_*Gay的帖子

是否有可能在Django项目中重新定义反向?

我有一些自定义逻辑需要在每次反转URL时执行,即使对于第三方应用程序也是如此.我的项目是一个多租户Web应用程序,并根据URL识别租户.没有一个有效的URL不包含租户标识符.

我已经有了一个包装函数reverse,但现在我需要一种方法来告诉每个已安装的应用程序使用它.包装器reverse使用线程本地将标识符注入到生成的URL中.我可以把这个函数写成装饰器reverse,但我不知道在哪里做实际的装饰.

适度坚定的约束:我已经使用了3个第三方应用程序,我可能会添加更多.解决方案不应要求我修改所有这些第三方应用程序的源代码.如果有更简单的方法,我不喜欢在多个第三方源树之上维护补丁的想法.我可以清楚地说明reverse装饰过的文件.

原始问题:我可以在哪里进行这样的更改以保证它适用于每次调用reverse

可能的替代问题:确保每个URL(包括第三方应用程序生成的URL)获取租户标识符的更好方法是什么?顺便说一句,除了在URL中嵌入tenant-id之外,我还有更好的办法处理这些问题.这个决定现在已经很好了.谢谢.

谢谢.

python django reverse monkeypatching decorator

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

如何只为Python中使用的实现支付依赖惩罚?

我有一套相当简单的功能,我有多个实现,例如,可以由Redis,MongoDB或PostgreSQL支持的数据存储.我应该如何构造/编写我的代码,以便想要使用其中一个实现的代码只需要该实现的依赖项,例如,psycopg2如果他们使用Redis后端,则不需要安装它们.

这是一个例子.假设以下模块,example.py.

class RedisExample(object):
    try:
        import redis
    except ImportError:
        print("You need to install redis-py.")

    def __init__(self):
        super(RedisExample, self).__init__()

class UnsatisfiedExample(object):
    try:
        import flibbertigibbet
    except ImportError:
        print("You need to install flibbertigibbet-py")

    def __init__(self):
        super(UnsatisfiedExample, self).__init__()
Run Code Online (Sandbox Code Playgroud)

这是我的Python shell体验:

>>> import example
You need to install flibbertigibbet-py
Run Code Online (Sandbox Code Playgroud)

交替:

>>> from example import RedisExample
You need to install flibbertigibbet-py
Run Code Online (Sandbox Code Playgroud)

我真的宁愿我没有得到那个错误,直到我试图实例化一个UnsatisfiedExample.是否有任何一种常见的方法来解决这个问题?我已经考虑过制作example一个包,每个后端都有自己的模块并使用工厂函数,但我想确保我没有错过更好的东西.

谢谢.

python import dependencies

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

关键字排序算法

我有超过1000个调查,其中许多包含开放式回复.

我希望能够"解析"所有单词并获得最常用单词的排名(忽略常用单词)以发现趋势.

我怎样才能做到这一点?我有可以使用的程序吗?

编辑如果没有第三方解决方案,如果我们只能继续讨论微软技术,那就太棒了.干杯.

c# sorting nlp ranking data-mining

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

"campaign_ $"是SQL列的错误名称吗?

PostgreSQL允许我将列命名为"campaign_ $".我喜欢这个名字,因为它是短和对点,而像"campaign_receipts"其他潜在的名字似乎更不清晰.

但是,我不知道我是否会最终遗憾把$符号的列名,无论是在PHP或架构的一些其他遥远的一部分.我应该坚持使用字母和下划线吗?

谢谢!

sql postgresql

3
推荐指数
2
解决办法
178
查看次数

可插拔通信模块的设计模式

我正在设计我的应用程序,有几个插件,将提供不同的通信方法,如蓝牙,TCP,UDP,XMPP等.

目前我在项目中包含了一些通信方法.我使用简单的开关盒以脏的方式调用其中一种方法.

你能推荐一些我可以申请的设计模式吗?

先感谢您!:)

java design-patterns

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

Bit Twiddle执行此转换

好奇,如果有人可能对如何对二进制数进行以下操作有一些见解:

兑换

   01+0 -> 10+1 (+ as in regular expressions, one or more)
    01 -> 10  
    10 -> 01  
Run Code Online (Sandbox Code Playgroud)

所以,

10101000010100011100
01010100101010100010
Run Code Online (Sandbox Code Playgroud)

并澄清这不是一个简单的反转:

000000100000000000
000001010000000000
Run Code Online (Sandbox Code Playgroud)

我正在考虑正则表达式,但我正在使用二进制数,并希望保持这种状态.这个讨厌的黑客页面也没有给我任何见解.这显然具有细胞自动机的一些本质.那么,任何人都有一些可以解决这个问题的操作吗?(不需要代码,我知道该怎么做).

bits bit-manipulation

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

您将什么部署到客户端SVN分支或标记

不久前,我们使用Microsoft VSS作为我们的版本控制工具,并在每个版本结束后用于创建代码的分支,并将其部署到我们的客户端.

现在我们已经转移到SVN,最近有很多关于标签/分支的讨论,我们应该在开发特定版本后标记/分支我们的代码吗?

SVN实际上为此目的推荐"标签",但也建议不要对此进行任何更改,那么我们将在哪里为此版本提供令人发指的错误修复?

另外一件事就是创建标签和分支,将标签部署到客户端,并填写任何错误,修复将分支,然后再次标记:-(

其他人做什么?

svn tags branch release-management

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

程序正确执行,然后是段错误

我正在尝试学习C编程,并花了一些时间练习指针今天早上,通过编写一个小函数来将字符串中的小写字符替换为大写字母.这就是我得到的:

#include <stdio.h>
#include <string.h>

char *to_upper(char *src);

int main(void) {
    char *a = "hello world";
    printf("String at %p is \"%s\"\n", a, a);
    printf("Uppercase becomes \"%s\"\n", to_upper(a));
    printf("Uppercase becomes \"%s\"\n", to_upper(a));
    return 0;
}

char *to_upper(char *src) {
    char *dest;
    int i;
    for (i=0;i<strlen(src);i++) {
        if ( 71 < *(src + i) && 123 > *(src + i)){
            *(dest+i) = *(src + i) ^ 32;
        } else {
            *(dest+i) = *(src + i);
        }
    }
    return dest;
}
Run Code Online (Sandbox Code Playgroud)

这样可以正常运行并打印出应有的内容(包括重复"HELLO WORLD"行),但之后以Segmentation故障结束.我无法理解的是,该功能正在清楚地编译,执行和返回成功,并且主流继续.那么分段错误发生在 …

c

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

我应该使用什么样的设计模式来完成下面的任务

我需要能够有条件地执行一个方法.我希望在我的代码中没有一堆IF语句有几个原因,最值得注意的是,在将来的某个时刻,该方法将不再使用.

我不确定这样做的最佳方式或我应该选择哪种模式来完成这项任务.

我所指的应用程序是一个将取代遗留系统的应用程序.遗留代码将被关闭,并且在某些时候不再使用.一旦这个时间点到来,我不想回去更改任何代码(如果可能的话).

以下是我所说的psuedo中的一个虚构的概念示例:

NewSystemEmployee.Save(Employee e)

if (Legacy System Is Running)
{
    LegacySystemEmployee.Save(Employee e)
}
Run Code Online (Sandbox Code Playgroud)

该方法NewSystemEmployee.Save总是需要执行.我只想LegacySystemEmployee.Save在Legacy系统运行时执行.Legacy系统关闭后,我不想再执行了LegacySystemEmployee.Save

遗留系统消失后,我不知道如何在没有遗传的情况下完成我想要的东西:

  1. 在调用LegacySystemEmployee.SaveOR 之前创建IF语句
  2. 删除对LegacySystemEmployee.Save方法OR的每次调用
  3. 更改LegacySystemEmployee.Save方法,使其成为存根,仅此而已

我还要求该NewSystemEmployee课程不以任何方式提及该LegacySystemEmployee课程.

有什么建议?

非常感谢

design-patterns

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

HTML和CSS中的注释是否会产生渲染问题?

HTML和/或CSS注释是否可能导致渲染问题?

HTML评论: <!-- some info -->

CSS: /* some info */

html css comments

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