更新:现在经过几个月的Android使用经验,我了解支持库是更高API级别的新功能的后端.例如,支持lib v4仅使用API <= 4实现一些新功能.
谢谢您的帮助.
我尝试谷歌搜索,但没有得到权威的答案.
有人可以确认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)
当多个线程同时调用干净时,这是否会按预期工作?
我在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,它将在表单中包含的任何字段上运行验证程序.
如果您没有使用表单,则在保存之前调用干净方法是您的责任.
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>两者A并B有std::string.所以基本上check可以启用类型的编译时检查T.我该怎么做呢?
根据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) 只是好奇。什么时候使用表单与模型验证的最佳实践是什么?据我目前了解,表单验证应用于:
另一个问题是:我有一个与模型实例大致相关的HTML表单,我是否使用ModelForm?
假设在数据库前使用内存缓存(例如redis/memcache)的策略是:
阅读:客户端将首先尝试从缓存中读取.在缓存未命中时,从数据库读取并将数据放入缓存中.
写入:首先更新数据库,然后删除缓存条目.
假设发生以下序列:
是否有任何避免这种情况的策略?我知道我们可以在每个缓存条目上放置一个到期时间,但是仍然有可能读取陈旧数据,这在某些情况下可能是不合需要的.
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+中正常工作。
// 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是在同一天还是在前一天没有做太多重量级的东西.
这是否可以节省日光?为什么?如果没有,最简单的逻辑是什么?

单击操作栏项时如何添加菜单弹出窗口(请参见屏幕截图)?我希望菜单项显示一个图标。
我尝试过的
为操作栏项设置actionProvider(支持lib v7)。在actionProvider中,为onCreateActionView返回null。在onPrepareSubMenu中,填充子菜单。这适用于Android 2.x,但不适用于Android 4.0,对于Android 2.x,则没有图标。
在actionProvider中,创建一个imageview并单击以显示PopupMenu,但是当我专门使用setIcon进行显示时,弹出菜单没有图标。
我不明白为什么PopupMenu不显示任何图标。我尽可能严格地遵循“官方”代码,但无济于事。
请帮忙!谢谢!
我遵循这个: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)
但是,链接显示为蓝色,但是当我点击时,没有任何反应.