小编Han*_*pan的帖子

PDO - 使用表前缀

我喜欢为我的表添加前缀,以防我需要将应用程序安装到只有一个数据库的主机上.我想知道是否有一种使用PDO类处理表前缀的简单方法?

目前,我不得不覆盖我自己的数据库中的每个方法,用前缀替换%p,并调用super方法.这是有效的,但它不漂亮!

php mysql pdo

7
推荐指数
1
解决办法
4336
查看次数

Django - 自定义包含模板标签MEDIA_URL?

我有以下自定义包含标记:

from django.template import Library
from django.db.models import Count

register = Library()

@register.inclusion_tag('projects/work_part.html', takes_context=True)
def project_list(context):
    return {'projects':context['projects']}
Run Code Online (Sandbox Code Playgroud)

我的设置如下:

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'context_processors.default_processors',
    )
Run Code Online (Sandbox Code Playgroud)

我需要在work_path.html模板中访问MEDIA_URL,但似乎上下文处理器不适用于自定义模板.

如何在模板标签中访问MEDIA_URL?我看到这篇文章:从自定义包含模板标签中访问STATIC_URL,但我没有使用STATIC_URL,是否有另外一组标签我应该加载?

django django-templates

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

PHP使用isset设置输入值

我想知道是否有更短的方式编写以下代码:

<input type="text" name="username" value="<?if(isset($_POST['username'])){ echo $_POST['username']; }?>" />
Run Code Online (Sandbox Code Playgroud)

我讨厌必须这样做将我的所有形式,因为isset()检查真的搞砸了我的HTML并吓跑了前端.

php

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

Django - 持久缓存

有没有办法可以使用默认的django缓存框架无限期地设置缓存密钥?我尝试将超时设置为0,但不幸的是,这根本没有设置密钥.

django django-cache

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

Django-不带标题的单模型内联

我有一个通用内联,将其附加到某些模型。它工作正常,但管理界面看起来有点丑陋:

http://i.stack.imgur.com/dI3UH.png

如您所见,相同的标题重复了几次。在这种情况下,我只会向内联添加一个条目,我的设置如下:

class PageMetaInline(generic.GenericStackedInline):
    model = PageMeta
    extra = 1
    max_num = 1
Run Code Online (Sandbox Code Playgroud)

有什么方法可以删除不必要的标题“ Page Meta:#1”?

django django-admin

5
推荐指数
1
解决办法
1117
查看次数

Python - 从导入的模块中获取类的类

我试图从具有动态名称的文件中导入一个类.这是我的文件导入程序:

def get_channel_module(app, method):
    mod_name = 'channel.%s.%s' % (app, method)
    module = __import__(mod_name, globals(), locals(), [method])
    return module
Run Code Online (Sandbox Code Playgroud)

这会导入特定的python文件,例如some_file.py,如下所示:

class SomeClassA(BaseClass):
    def __init__(self, *args, **kwargs):
        return

class SomeClassB():
    def __init__(self, *args, **kwargs):
        return
Run Code Online (Sandbox Code Playgroud)

我想要做的只是从导入的文件中返回扩展BaseClass的类,所以在这个实例中,SomeClassA.有没有办法做到这一点?

python

5
推荐指数
1
解决办法
4592
查看次数

Python正则表达式多重搜索

我需要在字符串中搜索多个单词.

import re

words = [{'word':'test1', 'case':False}, {'word':'test2', 'case':False}]

status = "test1 test2"

for w in words:
    if w['case']:
        r = re.compile("\s#?%s" % w['word'], re.IGNORECASE|re.MULTILINE)
    else:
        r = re.compile("\s#?%s" % w['word'], re.MULTILINE)
    if r.search(status):
        print "Found word %s" % w['word']
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这只会找到"test2"而从不"test1".为什么是这样?

我知道我可以使用| 划分搜索,但可能有数百个单词,这就是我使用for循环的原因.

python regex

5
推荐指数
1
解决办法
5063
查看次数

Python - 动态类导入

我有以下文件夹结构:

- MyProject
    - App1
        - some_module1.py
        - some_module2.py
    - App2
        - some_other_module1.py
        - some_other_module2.py
Run Code Online (Sandbox Code Playgroud)

在每个模块(例如some_module1.py)中,有一个类从基类扩展,在我的例子中是Producer.

我想要做的是在这个类中动态加载.为此,我有一个"已安装的应用程序"列表,如下所示:

INSTALLED_APPS = (
    'App1',
    'App2',
)
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个函数来检查特定生成器类的每个"app"包,并确保它从生成器基类扩展.像这样的东西:

module_class = 'some_module1.SomeClass'

# Loop through each package in the INSTALLED_APPS tuple:
for app in INSTALL_APPS:
    try:
        #is the module_class found in this app?
        #App1.some_module1.SomeClass - Yes
        #App2.some_module1.SomeClass - No

        # is the class we found a subclass of Producer?
    exception ImportError:
        pass
Run Code Online (Sandbox Code Playgroud)

我尝试过使用imp和importlib,但它似乎没有处理这种导入.无论如何我能够做到这一点吗?

python python-import

5
推荐指数
1
解决办法
1113
查看次数

Python Regex - 删除特殊字符但保留撇号

我试图从一些文本中删除所有特殊字符,这是我的正则表达式:

pattern = re.compile('[\W_]+', re.UNICODE)
words = str(pattern.sub(' ', words))
Run Code Online (Sandbox Code Playgroud)

超级简单,但不幸的是,当使用撇号(单引号)时它会导致问题.例如,如果我有"不"字样,则此代码返回"doesn".

有没有办法调整这个正则表达式,以便它不会删除这样的实例中的撇号?

编辑:这是我所追求的:

doesn't this mean it -technically- works?
Run Code Online (Sandbox Code Playgroud)

应该:

这不意味着它在技术上有效

python regex

5
推荐指数
1
解决办法
1万
查看次数

Django Compressor - CloudFront和manifest.json

我在让django压缩器与CloudFront一起工作时遇到了一些麻烦.我正在运行offline compress命令来生成我的压缩文件和manifest.json文件.在此之后,我运行collectstatic将压缩文件上传到我的S3存储桶.

然后从CloudFront提供这些静态文件,因此我的设置如下所示:

STATIC_ROOT = ''
STATIC_URL = 'http://<my-cloudfront-domain>/somebucket/'

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

COMPRESS_OFFLINE = True
Run Code Online (Sandbox Code Playgroud)

问题是,CloudFront正在提供旧版本的manifest.json,这意味着压缩器正在抛出一个OfflineGenerationError.

即使有一个缓存后端,我担心如果缓存服务器出于某种原因离线/刷新我的清单文件将是不正确的.

我在这里遗漏了一些东西以确保我没有遇到OfflineGenerationError吗?

amazon-cloudfront django-compressor

5
推荐指数
1
解决办法
857
查看次数