我正在尝试获取包含以下文本模式的HTML文档中的元素:#\ S {11}
<h2> this is cool #12345678901 </h2>
Run Code Online (Sandbox Code Playgroud)
所以,之前的匹配将使用:
soup('h2',text=re.compile(r' #\S{11}'))
Run Code Online (Sandbox Code Playgroud)
结果将是这样的:
[u'blahblah #223409823523', u'thisisinteresting #293845023984']
Run Code Online (Sandbox Code Playgroud)
我能够得到匹配的所有文本(见上面的行).但我希望文本的父元素匹配,因此我可以将其用作遍历文档树的起点.在这种情况下,我希望返回所有h2元素,而不是文本匹配.
想法?
说我有模特:
class Animal(models.Model):
type = models.CharField(max_length=255)
class Dog(Animal):
def make_sound(self):
print "Woof!"
class Meta:
proxy = True
class Cat(Animal):
def make_sound(self):
print "Meow!"
class Meta:
proxy = True
Run Code Online (Sandbox Code Playgroud)
让我们说我想做:
animals = Animal.objects.all()
for animal in animals:
animal.make_sound()
Run Code Online (Sandbox Code Playgroud)
我想找回一系列的Woofs和Meows.很明显,我可以在原始模型中定义一个基于animal_type分叉的make_sound,但每次我添加一个新的动物类型(想象它们在不同的应用程序中)时,我必须进入并编辑make_sound函数.我宁愿只定义代理模型并让它们自己定义行为.据我所知,没有办法返回混合的Cat或Dog实例,但我想也许我可以在主类上定义一个返回cat或dog模型的"get_proxy_model"方法.
当然你可以这样做,并传递类似主键的东西,然后只做Cat.objects.get(pk = passed_in_primary_key).但这意味着对您已经拥有的数据进行额外查询,这似乎是多余的.有没有办法以有效的方式将动物变成猫或狗的实例?做我想做的事的正确方法是什么?
除了个人偏好,是否有最佳的标签大小(2个空格?3个空格?8个空格?)以获得代码可读性?在我参与的不同项目中,人们似乎有着截然不同的标准.我似乎无法阅读2个空格缩进,但谷歌等公司将其作为标准使用.
任何人都可以指出文章,研究或有关选项卡最佳尺寸的合理论证吗?
如果我们想要具体,我主要在python中工作.这个问题的目标是为我工作的团队选择一个标准.
在高层次上,我创建了一个应用程序,让用户可以指向他或她的iPhone相机并查看已经过视觉效果处理过的视频帧.此外,用户可以点击按钮将当前预览的定格作为保存在其iPhone库中的高分辨率照片.
为此,该应用程序遵循以下过程:
1)创建AVCaptureSession
captureSession = [[AVCaptureSession alloc] init];
[captureSession setSessionPreset:AVCaptureSessionPreset640x480];
Run Code Online (Sandbox Code Playgroud)
2)使用后置摄像头连接AVCaptureDeviceInput.
videoInput = [[[AVCaptureDeviceInput alloc] initWithDevice:backFacingCamera error:&error] autorelease];
[captureSession addInput:videoInput];
Run Code Online (Sandbox Code Playgroud)
3)将AVCaptureStillImageOutput连接到会话,以便能够以Photo分辨率捕获静止帧.
stillOutput = [[AVCaptureStillImageOutput alloc] init];
[stillOutput setOutputSettings:[NSDictionary
dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA]
forKey:(id)kCVPixelBufferPixelFormatTypeKey]];
[captureSession addOutput:stillOutput];
Run Code Online (Sandbox Code Playgroud)
4)将AVCaptureVideoDataOutput连接到会话,以便能够以较低分辨率捕获单个视频帧(CVImageBuffers)
videoOutput = [[AVCaptureVideoDataOutput alloc] init];
[videoOutput setVideoSettings:[NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey]];
[videoOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()];
[captureSession addOutput:videoOutput];
Run Code Online (Sandbox Code Playgroud)
5)在捕获视频帧时,将每个新帧作为CVImageBuffer调用委托的方法:
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
[self.delegate processNewCameraFrame:pixelBuffer];
}
Run Code Online (Sandbox Code Playgroud)
6)然后委托处理/绘制它们:
- (void)processNewCameraFrame:(CVImageBufferRef)cameraFrame {
CVPixelBufferLockBaseAddress(cameraFrame, 0);
int bufferHeight = CVPixelBufferGetHeight(cameraFrame);
int bufferWidth = CVPixelBufferGetWidth(cameraFrame);
glClear(GL_COLOR_BUFFER_BIT);
glGenTextures(1, …Run Code Online (Sandbox Code Playgroud) 通常,当您想在Jinja2中将字符串输出标记为安全时,您可以执行以下操作:
{{ output_string|safe() }}
Run Code Online (Sandbox Code Playgroud)
但是,如果output_string 总是安全的呢?我不想每次都使用安全过滤器重复自己.
我有一个名为"emailize"的自定义过滤器,它会在电子邮件中为输出添加网址.&符似乎总是逃脱.我的自定义过滤器中有一种方法可以将输出标记为安全吗?
我正在处理的应用程序有一个活动源,每个用户都可以看到他们朋友的活动(很像Facebook).我正在寻找一种适度可扩展的方式来动态显示给定用户的活动流.我说"适度"因为我只想用数据库(Postgresql)来做这个,也许是 memcached.例如,我希望这个解决方案可以扩展到200k用户,每个用户有100个朋友.
目前,有一个主活动表,用于存储给定活动的呈现的html(Jim添加了朋友,George安装了应用程序等).此主活动表保留源用户,html和时间戳.
然后,有一个单独的('join')表,它只是指向应该在朋友提要中看到此活动的人的指针,以及指向主活动表中对象的指针.
所以,如果我有100个朋友,并且我做了3个活动,那么连接表将增长到300个项目.
很明显,这个表格会很快增长.但是,它具有不错的属性,即向用户显示的获取活动需要单个(相对)便宜的查询.
另一种选择是保留主活动表并通过以下方式查询:
select * from activity where source_user in (1, 2, 44, 2423, ... my friend list)
Run Code Online (Sandbox Code Playgroud)
这样做的缺点是您正在查询可能永远不会处于活动状态的用户,并且随着您的朋友列表的增长,此查询会变得越来越慢.
我看到双方的优点和缺点,但我想知道是否有些SO人可以帮助我权衡选项并建议一种方式或其他方式.我也对其他解决方案持开放态度,但我想保持简单,不要安装类似CouchDB等的东西.
非常感谢!
我目前正在Mac OS X 10.5.7盒子上使用Django 1.0.它被安装到:
/Library/Python/2.5/site-packages/django/
但是,有一些功能属于django的开发版本(1.1),我喜欢在我公司的内部工具中使用它.不幸的是,我不能只更新到开发版本,因为我仍然需要为我的生产代码开发1.0版本.
是否有一种简单的方法(在Mac OSX上)安装了两个版本的Django?安装1.1之后,如何告知给定项目使用一个版本而不是另一个版本?
非常感谢您的帮助!
更新 全部感谢您的建议.Virtualenv似乎是要走的路,这里有关于如何与Django一起使用的博客文章:http://justindriscoll.us/2008/11/setting-up-django-development-virtual.html
所以再次救援:)
基本上,我想要做的是理解如何计算沿着'曲线'的值,如photoshop曲线框中所示:

因此,给定N点,其中x在0和1之间,y在0和1之间 - 我们将创建一条穿过所有这些点的曲线.鉴于此曲线,我希望能够计算任何给定X的曲线的所有值.
换句话说,我想像曲线框那样修改颜色值,但是以编程方式.
我已经读过这些是"catmull-rom splines" - 但我看到的只是一个依赖于参数T的函数 - 我希望能够查找x的值.如果可能的话,我想在C中这样做
通常,对于给定对象,最好对单个查询与许多查询进行比较.假设我有一堆"儿子"物品,每个物品都有一个"父亲".我得到了所有'儿子'对象:
sons = Son.all()
Run Code Online (Sandbox Code Playgroud)
然后,我想让那群儿子的所有父亲.我做:
father_keys = {}
for son in sons:
father_keys.setdefault(son.father.key(), None)
Run Code Online (Sandbox Code Playgroud)
然后我可以这样做:
fathers = Father.get(father_keys.keys())
Run Code Online (Sandbox Code Playgroud)
现在,这假设son.father.key()实际上并没有获取对象.我错了吗?我有一堆代码假定object.related_object.key()实际上没有从数据存储区中获取related_object.
我这样做了吗?
考虑到时间(例如,当前星期二下午4:24),我希望能够选择目前在一组业务中开放的所有业务.
存储这些打开/关闭时间的最有效方法是什么,以便通过单个时间/星期几元组,我可以快速找出哪些业务是开放的?
我正在使用Python,SOLR和mysql.我希望能够在SOLR中进行查询.但坦率地说,我对任何建议和备选方案持开放态度.