小编sot*_*ips的帖子

使用BeautifulSoup查找包含特定文本的HTML标记

我正在尝试获取包含以下文本模式的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元素,而不是文本匹配.

想法?

python regex beautifulsoup html-content-extraction

61
推荐指数
3
解决办法
7万
查看次数

从Django中的基本模型实例返回代理模型实例的正确方法?

说我有模特:

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).但这意味着对您已经拥有的数据进行额外查询,这似乎是多余的.有没有办法以有效的方式将动物变成猫或狗的实例?做我想做的事的正确方法是什么?

python django proxy-classes django-models

26
推荐指数
3
解决办法
6382
查看次数

代码可读性的最佳选项卡大小

除了个人偏好,是否有最佳的标签大小(2个空格?3个空格?8个空格?)以获得代码可读性?在我参与的不同项目中,人们似乎有着截然不同的标准.我似乎无法阅读2个空格缩进,但谷歌等公司将其作为标准使用.

任何人都可以指出文章,研究或有关选项卡最佳尺寸的合理论证吗?

如果我们想要具体,我主要在python中工作.这个问题的目标是为我工作的团队选择一个标准.

python readability

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

iOS CVImageBuffer使用AVCaptureSessionPresetPhoto从AVCaptureSessionDataOutput失真

在高层次上,我创建了一个应用程序,让用户可以指向他或她的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)

iphone opengl-es image-processing ios opengl-es-2.0

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

如何在Jinja2的视图(或模板)中将字符串标记为"安全"?

通常,当您想在Jinja2中将字符串输出标记为安全时,您可以执行以下操作:

{{ output_string|safe() }}
Run Code Online (Sandbox Code Playgroud)

但是,如果output_string 总是安全的呢?我不想每次都使用安全过滤器重复自己.

我有一个名为"emailize"的自定义过滤器,它会在电子邮件中为输出添加网址.&符似乎总是逃脱.我的自定义过滤器中有一种方法可以将输出标记为安全吗?

django django-templates jinja2

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

以适度可扩展的方式提供活动源项

我正在处理的应用程序有一个活动源,每个用户都可以看到他们朋友的活动(很像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等的东西.

非常感谢!

database database-design social-networking

16
推荐指数
1
解决办法
3642
查看次数

如何在同一台机器上为不同的项目使用两个不同版本的Django?

我目前正在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

所以再次救援:)

django

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

如何在photoshop曲线背后重现数学

基本上,我想要做的是理解如何计算沿着'曲线'的值,如photoshop曲线框中所示:

Photoshop曲线

因此,给定N点,其中x在0和1之间,y在0和1之间 - 我们将创建一条穿过所有这些点的曲线.鉴于此曲线,我希望能够计算任何给定X的曲线的所有值.

换句话说,我想像曲线框那样修改颜色值,但是以编程方式.

我已经读过这些是"catmull-rom splines" - 但我看到的只是一个依赖于参数T的函数 - 我希望能够查找x的值.如果可能的话,我想在C中这样做

math graphics

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

访问相关对象键而不在App Engine中获取对象

通常,对于给定对象,最好对单个查询与许多查询进行比较.假设我有一堆"儿子"物品,每个物品都有一个"父亲".我得到了所有'儿子'对象:

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.

我这样做了吗?

python google-app-engine google-cloud-datastore

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

根据营业时间有效确定企业是否开放

考虑到时间(例如,当前星期二下午4:24),我希望能够选择目前在一组业务中开放的所有业务.

  • 我有一周中每一天的每个业务的开放和关闭时间
  • 我们假设一个企业只能在每小时的00,15,30,45分钟开启/关闭
  • 我假设每周都有相同的时间表.
  • 我最感兴趣的是能够快速查找在特定时间开放的一组业务,而不是数据的空间要求.
  • 请注意,有些我一天晚上11点开门,第二天凌晨1点关门.
  • 假期并不重要 - 我会分开处理

存储这些打开/关闭时间的最有效方法是什么,以便通过单个时间/星期几元组,我可以快速找出哪些业务是开放的?

我正在使用Python,SOLR和mysql.我希望能够在SOLR中进行查询.但坦率地说,我对任何建议和备选方案持开放态度.

python mysql performance solr

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