小编Dir*_*uin的帖子

Perl Regex:at符号@是否需要转义?

我无法确定为什么我的正则表达式失败了.这是我的代码:

my $email = "rise@dawn.com";
my ($found) = $email =~ /(rise@dawn\.com)/;
print "Found: $found";
Run Code Online (Sandbox Code Playgroud)

这导致输出:

C:\scripts\perl\sandbox>regex.pl
Found: rise.com
Run Code Online (Sandbox Code Playgroud)

如果我逃避@符号,那么我根本就没有输出:

my $email = "rise@dawn.com";
my ($found) = $email =~ /(rise\@dawn\.com)/;
print "Found: $found";

C:\scripts\perl\sandbox>regex.pl
Found:
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我我的错误.

regex perl

5
推荐指数
3
解决办法
5631
查看次数

如何在 Django 模板中使用 Jquery/Ajax 正确刷新 div

我已经尝试在这里实现该解决方案,但我似乎无法使其正常工作。

我有一个 div,它是使用 Django 模板内的循环填充的。就在其下方,有一个输入框,我可以在其中输入一些文本,然后单击“提交”。Submit 操作应该触发一个 Jquery 脚本,该脚本从服务器获取模型对象。然后应将此模型对象提供给 div,并且随后应“刷新”div。这里的目的是,一旦 div 被“刷新”,for 循环访问的变量就会被更新,从而显示额外的新结果。

我的模板代码:

<h1> This is a Test Ajax Page</h1>
<div id="refresh-this-div">
    {% for comment in question.comment_set.all %}
        <p class="">{{ comment.body }}</p>
    {% endfor %}
        <input id="my-text-input-id" type="text" />
        <button type="submit" class="add-comment-button">Add</button>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的 Jquery:

<script type="text/javascript">
    $(document).ready(function() {
        $("button.add-comment-button").click(function() {
            var com_body = $('#my-text-input-id').val();
            $.ajax({
                    url: '/test_login_url',
                    success: function(data) {
                    $('#refresh-this-div').html(data);
                    }
                  });
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我的看法:

def test_login_url(request):
    question = Question.objects.get(id=1)
    com = Comment(question=question, body='This …
Run Code Online (Sandbox Code Playgroud)

javascript django ajax jquery

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

内存不足:杀死进程(gunicorn)得分或牺牲孩子

我正在 DigitalOcean VPS(512 MB RAM、1 个 CPU、20GB SSD)上运行 Django 1.8 项目。我有 Nginx 将流量代理到gunicorn。这是我的gunicorn命令(通过主管运行):

gunicorn my_web_app.wsgi:application --worker-class gevent --bind 127.0.0.1:8001 --timeout=1200
Run Code Online (Sandbox Code Playgroud)

我注意到,当我将大约 3-5 MB 的图像上传到我的网络应用程序时,gunicorn 工作线程崩溃并出现以下错误:

Jan 16 12:39:46 dev-1 kernel: [663264.917312] Out of memory: Kill process 31093 (gunicorn) score 589 or sacrifice child
Jan 16 12:39:46 dev-1 kernel: [663264.917416] Killed process 31093 (gunicorn) total-vm:560020kB, anon-rss:294888kB, file-rss:8kB
Run Code Online (Sandbox Code Playgroud)

我监控了 top 的输出,它显示内存使用量稳步增加:

上传图像之前的顶部输出(基线):

top - 13:19:45 up 7 days, 16:54,  2 users,  load average: 0.00, 0.03, 0.05
Tasks:  96 total,   1 running,  95 …
Run Code Online (Sandbox Code Playgroud)

django nginx gevent python-2.7 gunicorn

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

正确实现Python多处理

我在这里经历了多处理教程:http://pymotw.com/2/multiprocessing/basics.html

我在下面写了一个脚本作为练习.该脚本似乎正在工作,我确实看到在taskmgr中运行了5个新的python进程.但是,我的print语句输出多次搜索的同一文件夹.

我怀疑不是在不同进程之间拆分工作,而是让每个进程都承担整个工作负载.我很确定我做错了什么,效率低下.有人可以指出我的错误吗?

到目前为止我所拥有的:

def email_finder(msg_id):
    for folder in os.listdir(sample_path):
        print "Searching through folder: ", folder
        folder_path = sample_path + '\\' + folder
        for file in os.listdir(os.listdir(folder_path)):
            if file.endswith('.eml'):
                file_path = folder_path + '\\' + file
                email_obj = email.message_from_file(open(file_path))
                if msg_id in email_obj.as_string().lower()
                    shutil.copy(file_path, tmp_path + '\\' + file)
                    return 'Found: ', file_path
    else:
        return 'Not Found!'

def worker():
    msg_ids = cur.execute("select msg_id from my_table").fetchall()
    for i in msg_ids:
        msg_id = i[0].encode('ascii')
        if msg_id != '':
            email_finder(msg_id) …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing python-2.7

4
推荐指数
1
解决办法
6556
查看次数

如何按数组大小对数组的哈希进行排序

我有一个数组哈希,我想按数组大小排序.

到目前为止,这是我的代码:

use strict;
use warnings;

my %hash_array = (
    "array_1" => ["apple", "ball", "cat"],
    "array_2" => ["def", "leppard", "rocks", "too"],
    "array_3" => ["italian", "pastry", "missing", "cherry", "top"],
);

# Length of array_1
my $array_1_size = @{$hash_array{"array_1"}};
print "Should print three: $array_1_size\n";

# Found this here: https://stackoverflow.com/questions/15722286
# But my result remains unsorted
foreach my $key ( sort { $hash_array{$b} <=> $hash_array{$a}} keys %hash_array ) {
    print "key: $key\n";
}
Run Code Online (Sandbox Code Playgroud)

我理解如何获得单个数组的大小,但我不确定如何将它与sort函数结合起来.

我从这里复制了最后一个foreach块,但该解决方案对我不起作用,因为我的输出没有被订购.我对最后一段代码有一些疑问:

  1. 我没有看到前面提到的$ b和$ a.这是sort函数理解的内置引用吗?
  2. 解决方案似乎适用于原始海报,但在我的情况下不起作用.然而我们最初的目标是相似的.为了获得基于数组大小的有序输出,我缺少什么?
  3. 按数组大小按升序和降序对数组哈希值进行排序的最佳方法是什么?

perl

3
推荐指数
1
解决办法
1001
查看次数

Django:django-tables2 更改默认排序行为

我正在试验 django-tables2。我创建了一个测试站点,显示一列日期(创建者timezone.now())。默认情况下,日期顺序为最旧-> 最新。如果我单击列标题,日期会以相反的顺序显示(所需的默认行为)。

我玩过这个order_by论点,但我做错了什么。我的tables.py:

class OrderTable(tables.Table):
    order_date = tables.Column(order_by=("Order Date",))
Run Code Online (Sandbox Code Playgroud)

我的意见.py:

def index(request):
    table = OrderTable(Order.objects.all())
    RequestConfig(request, paginate={"per_page": 10}).configure(table)
    return render(request, 'orders_app/index.html', {'table': table})
Run Code Online (Sandbox Code Playgroud)

如何订购“订购日期”列,使其显示为最新->最旧?

python django django-tables2

3
推荐指数
1
解决办法
6094
查看次数

Perl:将数据转储器读回/反转到数组中

我的目标是将字符串读回到数组引用中。

我修改了这里的示例代码。该网站上的示例使用哈希,在我的例子中我想使用数组。这是我尝试过的:

use strict;
use warnings;

# Build an array with a hash inside
my @test_array = ();
my %test_hash = ();
$test_hash{'ding'} = 'dong';
push @test_array, \%test_hash;

# Get the Dumper output as a string
my $output_string = Dumper(\@test_array);

# eval_result should be an array but is undef
my @eval_result = @{eval $output_string};
Run Code Online (Sandbox Code Playgroud)

运行此代码会产生此错误:

Can't use an undefined value as an ARRAY reference at
        /var/tmp/test_dumper.pl line 30 (#1)
    (F) A value used as either a hard reference or …
Run Code Online (Sandbox Code Playgroud)

perl

3
推荐指数
1
解决办法
957
查看次数

Django - 模型中的自定义保存方法

(使用Django 1.11.5)

传统上,我总是创建一个这样的模型:

class Animal(models.Model):
    is_hungry = models.BooleanField(default=True)
Run Code Online (Sandbox Code Playgroud)

然后进行如下更改:

animal = Animal()
animal.save()

animal.is_hungry = True
animal.save()
Run Code Online (Sandbox Code Playgroud)

最近,我看到一位朋友用自定义保存方法定义模型:

class Animal(models.Model):
    is_hungry = models.BooleanField(default=True)

    def feed_animal(self):
        self.is_hungry = False
        self.save()
Run Code Online (Sandbox Code Playgroud)

调用此方法似乎按预期工作:

>>> from testapp.models import Animal
>>> a = Animal()
>>> a.save()
>>> a.is_hungry
True
>>>
>>> a.feed_animal()
>>> a.is_hungry
False
Run Code Online (Sandbox Code Playgroud)

在模型定义中定义这样的自定义保存方法有什么好处/缺点吗?是否有理由更喜欢.save()直接调用该对象?

django

3
推荐指数
1
解决办法
2844
查看次数

Perl:正确传递数组以供线程处理

我正在学习如何在Perl中进行线程化.我在这里查看示例代码并稍微调整了解决方案代码:

#!/usr/bin/perl
use strict;
use warnings;
use threads;
use Thread::Semaphore;

my $sem = Thread::Semaphore->new(2); # max 2 threads
my @names = ("Kaku", "Tyson", "Dawkins", "Hawking", "Goswami", "Nye");
my @threads = map {
    # request a thread slot, waiting if none are available:
    foreach my $whiz (@names) {
        $sem->down;
        threads->create(\&mySubName, $whiz);
    }
} @names;

sub mySubName {
    return "Hello Dr. " . $_[0] . "\n";
    # release slot:
    $sem->up;
}

foreach my $t (@threads) {
    my $hello = $t->join(); …
Run Code Online (Sandbox Code Playgroud)

perl multithreading

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

Flask-SQLAlchemy:没有链接这些表的外键

我正在使用 Flask-SQLAlchemy 和以下内容models.py

class DomainRoot(db.Model):
    # Int/Float fields
    id      = db.Column(db.Integer, primary_key=True)

    # String fields
    domain  = db.Column(db.String(64), index=True, unique=True)

    # DateTime fields
    created = db.Column(db.DateTime)
    updated = db.Column(db.DateTime)

    # ForeignKey relationships
    domain_paths = db.relationship('DomainPath', backref='domain_root', lazy='dynamic')

    def __repr__(self):
        return '<DomainRoot %r>' % (self.domain)

class DomainPath(db.Model):
    # Int/Float fields
    id          = db.Column(db.Integer, primary_key=True)

    # String fields
    domain_path = db.Column(db.String(256), index=True, unique=True)

    # DateTime fields
    created     = db.Column(db.DateTime)
    updated     = db.Column(db.DateTime)

    # ForeignKey fields
    domainroot_id = db.Column(db.Integer, db.ForeignKey('domainroot.id'))

    def …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy

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