小编Ham*_*ner的帖子

如何在vimperator中退出视图源模式?

在Vimperator中,当我点击gf它时,我需要查看源代码.如何退出查看源并返回实际网页?

firefox vimperator

17
推荐指数
1
解决办法
1622
查看次数

使用多行无法使正则表达式正常工作

我有一个来自应用程序的非常大的XML输出.我需要使用我的程序处理它,然后将其反馈给原始程序.这个XML中的部分需要填写我们的替换.有趣的部分看起来像这样:

<sys:customtag sys:sid="1" sys:type="Processtart" />
    <sys:tag>value</sys:tag>
    here are some other tags
    <sys:tag>value</sys.tag>
<sys:customtag sys:sid="1" sys:type="Procesend" />
Run Code Online (Sandbox Code Playgroud)

并且该文档包含几个这样的部分.

我需要在这些标记内部获取所有XML部分才能对其进行修改.我写了一个正则表达式来获取这些碎片,但它不起作用:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"output.xml");
Regex regExp = new Regex(@"<sys:customtag(.*?)Processtart(.*?)/>(.*?)<sys:customtag (.*?)Procesend(.*?)/>", RegexOptions.Multiline & RegexOptions.IgnorePatternWhitespace & RegexOptions.CultureInvariant);
MatchCollection matches = regExp.Matches(xmlDoc.InnerXml);
Run Code Online (Sandbox Code Playgroud)

如果我将所有内容放在一行中并在没有多行选项的情况下调用此正则表达式,它确实会发现每个出现的情况.通过保留文件并设置多行选项,它不起作用.有什么问题,我应该改变什么?或者有没有更容易的方法来获得这些标签之间的XML部分没有正则表达式?

c# regex multiline

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

什么是python的getattr的ruby等价物

我是rails的新手,并尝试进行一些重构(放置一个部分渲染器,列出app/views/shared中的标题)渲染器显示日期和标题.但是,渲染器的不同用户使用不同的日期.通过重构的一部分我有

title_date = list_titles.created_on
Run Code Online (Sandbox Code Playgroud)

对于我想要的渲染器的其他用户

title_date = list_titles.updated_on
Run Code Online (Sandbox Code Playgroud)

那么我可以使用我传递的字符串(使用:locals参数)吗?我知道在Python中我可以做到

date_wanted = 'created_on'
title_date = getattr(list_titles, date_wanted)
Run Code Online (Sandbox Code Playgroud)

但我无法弄明白如何在红宝石中做到这一点.(显然在rails中我会从调用部分渲染器的视图中传递date_wanted字符串.)

ruby ruby-on-rails

11
推荐指数
1
解决办法
2947
查看次数

配置EC2的Fabric

我正在尝试创建一个fabfile.py,以便我可以在EC2上部署.我在fabfile.py中有以下内容:

from __future__ import with_statement
from fabric.api import *


def ec2():
    env.hosts = ['111.111.111.111'] 
    env.user = 'ubuntu'
    env.key_filename = '/path/to/my/pem/key.pem'

def run_ls():
    run('ls -alt')
Run Code Online (Sandbox Code Playgroud)

'111.111.111.111'是我的实例的弹性ip,我总是用ubuntu登录,而不是root.当我运行以下命令

fab ec2 run_ls
Run Code Online (Sandbox Code Playgroud)

我看到以下输出:

[111.111.111.111] Executing task 'run_ls'
[111.111.111.111] run: ls -alt

Fatal error: Host key for 111.111.111.111 did not match pre-existing key! Server's key was changed recently, or possible man-in-the-middle attack.

Aborting.
Run Code Online (Sandbox Code Playgroud)

不知道发生了什么,但我找不到在ec2上使用fabric的任何好的教程,我不知道这是怎么回事.

谢谢

更新:

好像

env.hosts = ['111.111.111.111'] 
Run Code Online (Sandbox Code Playgroud)

无效,您需要使用实际的URL

env.hosts = ['mywebsite.com'] 
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题

python deployment ubuntu amazon-ec2 fabric

11
推荐指数
2
解决办法
5335
查看次数

铁轨上红宝石的限制是什么?

我记得与那些到目前为止使用Ruby on Rails的人交谈,然后在他们达到极限时不得不放弃它,或者发现它最终过于僵化.我忘记了细节,但它可能与使用多个数据库有关.

所以我想要知道的是Ruby on Rails之外的特性/要求是什么,或者至少需要这样的扭曲,以便使用另一个更灵活的框架更好,即使你可能不得不失去一些优雅或额外写样板代码.

ruby ruby-on-rails

8
推荐指数
2
解决办法
5231
查看次数

需要正则表达式来排除某些字符串

我正在尝试获得匹配的正则表达式:

somefile_1.txt
somefile_2.txt
somefile_{anything}.txt
Run Code Online (Sandbox Code Playgroud)

但不匹配:

somefile_16.txt
Run Code Online (Sandbox Code Playgroud)

我试过了

somefile_[^(16)].txt
Run Code Online (Sandbox Code Playgroud)

没有运气(甚至包括"16"记录)

regex

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

是否可以禁用django haystack进行某些测试?

我们使用django-haystack作为搜索索引.通常很棒,但在测试期间,它会增加每个模型对象创建和保存的开销,并且对于大多数测试来说,它不是必需的.所以我想避免它.所以我想我会使用override_settings来使用一个什么都不做的假人.但我现在已经尝试过BaseSignalProcessorSimpleEngine和我一样,我仍然可以看到我们的搜索索引(elasticsearch)受到了很大的影响.

我试过的两个版本是:

首先使用没有数据准备的SimpleEngine:

from django.test import TestCase
from django.test.utils import override_settings

HAYSTACK_DUMMY_INDEX = {
    'default': {
        'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
    }
}

@override_settings(HAYSTACK_CONNECTIONS=HAYSTACK_DUMMY_INDEX)
class TestAllTheThings(TestCase):
    # ...
Run Code Online (Sandbox Code Playgroud)

然后使用BaseSignalProcessor,这意味着要保存的信号没有连接起来:

from django.test import TestCase
from django.test.utils import override_settings

@override_settings(HAYSTACK_SIGNAL_PROCESSOR='haystack.signals.BaseSignalProcessor')
class TestAllTheThings(TestCase):
    # ...
Run Code Online (Sandbox Code Playgroud)

我正在使用pytest作为测试运行器以防万一.

知道我有什么遗失的吗?

django unit-testing django-haystack

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

python的csv读者可以留下引号吗?

我想使用python CSV阅读器,但我想留下引号.这就是我想要的:

>>> s = '"simple|split"|test'
>>> reader = csv.reader([s], delimiter='|', skipinitialspace=True)
>>> reader.next()
['"simple|split"', 'test']
Run Code Online (Sandbox Code Playgroud)

但我实际得到:

['simple|split', 'test']
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我希望引用的字符串仍然被引用传递.

我知道CSV阅读器正在按预期工作,我的用例是滥用它,但是有什么方法可以将它弯曲到我的意愿吗?或者我是否必须编写自己的字符串解析器?

python csv quotes

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

Django - 用户管理员 - 将组添加到list_display

众所周知,ManytoMany关系不能列在list_display中.是否有任何工作可以使它像group1,group2等?

django django-admin django-authentication

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

如何编写迁移以使用ManyToManyField更改模型的主键

我有一个UserProfile模型,它引用我的User模型并带有OneToOneField. 我还使用信号在创建用户时post_save自动创建。UserProfile除了通过管理员创建用户(我使用内联)时,当我收到有关重复配置文件的错误时,这非常有效。 此答案建议将主键设置为引用 user 的 OneToOneField

所以之前:

class UserProfile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)
    # ...
    subjects = models.ManyToManyField(Subject, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

class UserProfile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, primary_key=True)
    # ...
    subjects = models.ManyToManyField(Subject, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 Django 1.7 中的迁移来做到这一点,但由于配置文件有很多,所以事情变得很复杂ManyToManyField- 所以它们都引用id模型的字段UserProfile。使用makemigrations创建迁移以使用户成为主键并删除旧的 id 字段,但它忽略了 ManyToManyField。

我目前正在陷入一个困境,即RunSQL在迁移中使用大量语句来修改ManyToManyField. 我刚刚遇到另一个错误,其中一个表中的约束名称与另一个表中的约束名称不同。

所以我的问题是:Django 迁移中是否有一种方法可以完成更改贯穿表的工作,以便它引用新的主键,更新所有约束、键等?如果不是,处理这种情况的最佳方法是什么?

我正在使用 Django 1.7 和 MySQL。

mysql django django-models manytomanyfield django-migrations

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