小编Mav*_*ave的帖子

我是否需要使用Android支持库

更新:现在经过几个月的Android使用经验,我了解支持库是更高API级别的新功能的后端.例如,支持lib v4仅使用API​​ <= 4实现一些新功能.

谢谢您的帮助.

android android-support-library

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

Python是否是线程安全的?

我尝试谷歌搜索,但没有得到权威的答案.

有人可以确认re模块http://docs.python.org/2/library/re.html 是线程安全的吗?

更具体地说,哪些功能是哪些功能?

另外,我可以重复使用一个单一的全球重新编译对象做sub,search等安全地跨线程?

好像还没有明确的答案?

好的,一个更具体的例子:

  class MyClass:
     GLOBAL_VAR = re.compile(...)

     def clean(self, value):
        return MyClass.GLOBAL_VAR.sub('', value) 
Run Code Online (Sandbox Code Playgroud)

当多个线程同时调用干净时,这是否会按预期工作?

python regex

14
推荐指数
1
解决办法
2007
查看次数

Django模型空白= False不起作用?

我在Django 1.5中有以下模型:

class Person(models.Model):
    name = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)

请注意,根据https://docs.djangoproject.com/en/dev/ref/models/fields/,name.blank 默认为False,这意味着必须指定它.

但是,我可以成功创建一个Person对象,如下所示:

Person.objects.create()
Run Code Online (Sandbox Code Playgroud)

请注意,未指定名称.到底是怎么回事?

好的,文档的答案是:

请注意,这与null不同.null纯粹与数据库相关,而blank与验证相关.如果字段为空= True,则表单验证将允许输入空值.如果字段为空= False,则将需要该字段.

另一个问题:

请注意,保存模型时不会自动运行验证程序,但如果您使用的是ModelForm,它将在表单中包含的任何字段上运行验证程序.

如果您没有使用表单,则在保存之前调用干净方法是您的责任.

django django-models

12
推荐指数
1
解决办法
3946
查看次数

C++检测模板化类

template<typename T>
struct check
{
  static const bool value = false;
};
Run Code Online (Sandbox Code Playgroud)

我想要做的是有check<T>::value真当且仅当T是一个std::map<A,B>std::unordered_map<A,B>两者ABstd::string.所以基本上check可以启用类型的编译时检查T.我该怎么做呢?

c++ templates template-meta-programming c++11

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

Django ValidationError

根据https://docs.djangoproject.com/en/dev/ref/forms/validation/

   # Good
   ValidationError(
        _('Invalid value: %(value)s'),
        params={'value': '42'},
   )

   # Bad
   ValidationError(_('Invalid value: %s') % value)
Run Code Online (Sandbox Code Playgroud)

文档并没有真正解释为什么它是坏/好.有人能给出一个具体的例子吗?

此外,当我检查时form.errors,我会得到类似的东西'Invalid: %(value)s'.如何从验证错误中获取参数并将其插入到错误消息中?

编辑

那么这被认为是好的吗?

   ValidationError(
        _('Invalid value: %(value)s') % {'value': '42'},
   )
Run Code Online (Sandbox Code Playgroud)

我认为真正的问题是:为什么要通过参数分别传递变量params?为什么不直接插入错误消息msg(暂时忽略命名或位置插值)???

编辑

好的,从源@ https://github.com/django/django/blob/stable/1.5.x/django/forms/forms.py 我认为没有办法检索ValidationError的参数,因为表格确实如此甚至没有保存ValidationError对象本身.见下面的代码.

class ValidationError(Exception):
    """An error while validating data."""
    def __init__(self, message, code=None, params=None):
        import operator
        from django.utils.encoding import force_text
        """
        ValidationError can be passed any object that can be printed (usually
        a string), a list of objects …
Run Code Online (Sandbox Code Playgroud)

django django-forms

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

何时使用表单与模型验证?

只是好奇。什么时候使用表单与模型验证的最佳实践是什么?据我目前了解,表单验证应用于:

  • AJAX / HTTP请求参数
  • 与模型不相关的表格?

另一个问题是:我有一个与模型实例大致相关的HTML表单,我是否使用ModelForm?

django django-forms

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

处理内存缓存中的陈旧数据

假设在数据库前使用内存缓存(例如redis/memcache)的策略是:

  1. 阅读:客户端将首先尝试从缓存中读取.在缓存未命中时,从数据库读取并将数据放入缓存中.

  2. 写入:首先更新数据库,然后删除缓存条目.

假设发生以下序列:

  1. 客户端A从缓存中读取并得到遗漏.
  2. 客户端A从数据库中读取.
  3. 客户端B更新数据库中的相同条目.
  4. 客户端B删除(不存在的)高速缓存条目.
  5. 客户端A将(陈旧)条目放入缓存中.
  6. 然后,客户端C将读取缓存中的陈旧数据.

是否有任何避免这种情况的策略?我知道我们可以在每个缓存条目上放置一个到期时间,但是仍然有可能读取陈旧数据,这在某些情况下可能是不合需要的.

database caching

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

flake8错误E901

flake8 xxx --ignore=E501,E128,E701,E261,E301,E126,E127,E131

xxx.py:1:40: E901 SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

任何人都知道语法错误在哪里?

Python == 2.6,文件的第一行是,没有字节顺序标记:

from __future__ import absolute_import
Run Code Online (Sandbox Code Playgroud)

虽然可以在Python 2.7和3+中正常工作。

python pep8 python-2.6 flake8

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

这是否适用于夏令时?

// someTime is epoch in millis (UTC)

final long timeNow = new Date().getTime();
final long midnight = timeNow - timeNow % (3600 * 24 * 1000L);
final long yesterdayMidnight = midnight - (3600 * 24 * 1000L);


// check if same day.
if (someTime >= midnight)
   // do something

// check if yesterday
if (someTime >= yesterdayMidnight)
Run Code Online (Sandbox Code Playgroud)

编辑:我的目的是检查someTime是在同一天还是在前一天没有做太多重量级的东西.

这是否可以节省日光?为什么?如果没有,最简单的逻辑是什么?

java

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

单击操作栏项目时显示弹出菜单

在此处输入图片说明

单击操作栏项时如何添加菜单弹出窗口(请参见屏幕截图)?我希望菜单项显示一个图标。

我尝试过的

  1. 为操作栏项设置actionProvider(支持lib v7)。在actionProvider中,为onCreateActionView返回null。在onPrepareSubMenu中,填充子菜单。这适用于Android 2.x,但不适用于Android 4.0,对于Android 2.x,则没有图标。

  2. 在actionProvider中,创建一个imageview并单击以显示PopupMenu,但是当我专门使用setIcon进行显示时,弹出菜单没有图标。

我不明白为什么PopupMenu不显示任何图标。我尽可能严格地遵循“官方”代码,但无济于事。

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/widget/ShareActionProvider.java#195

请帮忙!谢谢!

android

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

UITextView链接无法点击iOS 8

我遵循这个:UILabel和NSLinkAttributeName:链接不可点击, UITextView链接是可点击的,但当我点击它时,Safari不会打开 但无济于事.

我有 :

uitextView.attributedText = ... some attributed string "http://google.com" ...
Run Code Online (Sandbox Code Playgroud)

启用"链接检测","可选"和"启用用户交互"."可编辑"已禁用.

我也实施了 UITextViewDelegate

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange
{

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

但是,链接显示为蓝色,但是当我点击时,没有任何反应.

uitextview ios

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