小编jvc*_*c26的帖子

从命令行运行vim命令

关于从vim运行shell程序有很多SO问题.我想知道的是,是否有可能反过来 - 即

$ vim :BundleInstall
Run Code Online (Sandbox Code Playgroud)

例如,允许我作为脚本的一部分运行BundleInstall,而不是必须打开Vim并在首次运行时手动运行它?这可能吗?

vim bash shell zsh

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

在tmux下使用$ TERM ='screen-256color',HOME和END键不起作用.为什么?

我已将tmux $TERM设置为screen-256color正确设置.这工作正常,颜色设置正确,但它阻止我发送HOMEEND键到终端,而是打印为F\nH\n.

我应该补充说,家似乎在irssi工作,但不是vim.家似乎送(据Ctrl+v <HOME>),^[OH

可能值得补充的是,我很清楚能够使用^$移动到行的开头和结尾,但是$没有结束,而是倒数第二个字符,我更喜欢使用HOMEEND(因为我能在其他$ TERM设置下).

任何人都可以解释为什么这样,以及我如何解决它?

作为一个部分修复,我设置vim键绑定将a <Home>和keypress映射<End><Esc>OH<Esc>OF.这不是理想的,但暂时起作用!有关详细信息,请参阅https://github.com/jvc26/dotfiles/blob/master/.vimrc.

谢谢!

bash terminal tmux

22
推荐指数
1
解决办法
5558
查看次数

Docker,Supervisord和logging - 如何整合docker日志中的日志?

所以,通过uWSGI试验Docker + Supervisord + Django应用程序.我整个堆栈工作正常,但需要整理日志记录.

如果我以非守护进程模式启动主管,

/usr/bin/supervisord -n
Run Code Online (Sandbox Code Playgroud)

然后我将主管的日志记录输出播放到docker logs stdout中.但是,如果supervisord处于守护进程模式,它自己的日志会被隐藏在容器文件系统中,并且其应用程序的日志也会在自己的app__stderr/stdout文件中执行.

我想要的是将supervisor和application stdout记录到docker日志中.

在非守护进程模式下启动监督是一个明智的想法,还是会导致意想不到的后果?另外,如何将应用程序日志也播放到docker日志中?

python django logging supervisord docker

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

Django过滤今天发生的事件

我正在努力在Django过滤器中逻辑地表示以下内容.我有一个'事件'模型和一个位置模型,可以表示为:

class Location(models.Model):
    name = models.CharField(max_length=255)

class Event(models.Model):
    start_date = models.DateTimeField()
    end_date = models.DateTimeField()
    location = models.ForeignKeyField(Location)

    objects = EventManager()
Run Code Online (Sandbox Code Playgroud)

对于给定的位置,我想选择今天发生的所有事件.我已经通过EventManager中的'bookings_today'方法尝试了各种策略,但正确的过滤器语法使我不知所措:

class EventManager(models.Manager):
    def bookings_today(self, location_id):
        bookings = self.filter(location=location_id, start=?, end=?)
Run Code Online (Sandbox Code Playgroud)

date()失败,因为这会缩短时间,白天的时间对应用程序至关重要,日期的最小值和最大值也是如此,并将它们用作书挡.此外,还有多种可能的有效配置:

start_date < today, end_date during today
start_date during today, end_date during today
start_date during today, end_date after today
Run Code Online (Sandbox Code Playgroud)

我是否需要编写一整套不同的选项或者是否有更简单优雅的方法?

python django

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

django-storage对s3 IAM用户有什么权限?

正如问题所示,锁定的s3 IAM用户成功使用django-storages所需的最低权限是多少?目前我用过类似的东西

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListAllMyBuckets"],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket",
                 "s3:GetBucketLocation",
                 "s3:ListBucketMultipartUploads",
                 "s3:ListBucketVersions"],
      "Resource": "arn:aws:s3:::bucket-name"
    },
    {
      "Effect": "Allow",
      "Action": ["s3:*Object*",
                 "s3:ListMultipartUploadParts",
                 "s3:AbortMultipartUpload"],
      "Resource": "arn:aws:s3:::bucket-name/*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这可能实际上是矫枉过正.还有什么想法?

django amazon-s3 django-storage amazon-iam

12
推荐指数
1
解决办法
2391
查看次数

Python mock,django和requests

所以,我刚刚开始在Django项目中使用mock.我正在尝试模拟一个视图的一部分,该视图向远程API发出请求以确认订阅请求是真实的(根据我正在努力的规范进行验证的形式).

我有什么相似之处:

class SubscriptionView(View):
    def post(self, request, **kwargs):
        remote_url = request.POST.get('remote_url')
        if remote_url:
            response = requests.get(remote_url, params={'verify': 'hello'})

        if response.status_code != 200:
            return HttpResponse('Verification of request failed')
Run Code Online (Sandbox Code Playgroud)

我现在想要做的是使用mock来模拟requests.get调用以更改响应,但我无法弄清楚如何为补丁装饰器执行此操作.我以为你做的事情如下:

@patch(requests.get)
def test_response_verify(self):
    # make a call to the view using self.app.post (WebTest), 
    # requests.get makes a suitable fake response from the mock object
Run Code Online (Sandbox Code Playgroud)

我该如何实现这一目标?

python django unit-testing mocking django-testing

10
推荐指数
1
解决办法
7752
查看次数

Docker,web app静态文件.最佳做法?

人们如何倾向于在docker上的Web部署中处理静态资产?

例如,在部署在容器中的django应用程序中,您是否让应用程序服务器从容器中提供静态文件,或者您是将它们同步到另一台服务器以供Web服务器使用,还是使用CDN?

如果没有从应用程序容器提供服务,何时将文件推送到CDN或Web服务器:作为容器构建的一部分,或作为构建中的第二个进程,以及如何确保两个步骤保持同步?

django containers web-deployment docker

10
推荐指数
1
解决办法
1163
查看次数

单元测试Flask视图嘲笑芹菜任务

所以,我有一个烧瓶视图,它将一个芹菜任务添加到队列中,并向用户返回200.

from flask.views import MethodView
from app.tasks import launch_task

class ExampleView(MethodView):
    def post(self):
        # Does some verification of the incoming request, if all good:
        launch_task(task, arguments)
        return 'Accepted', 200
Run Code Online (Sandbox Code Playgroud)

问题在于测试以下内容,我不想要有芹菜实例等等.我只想知道在所有验证都没问题后,它会向用户返回200.芹菜launch_task()将在别处测试.

所以我很想模仿那个launch_task()调用,所以基本上什么都不做,使我的单元测试独立于芹菜实例.

我尝试过各种各样的化身:

@mock.patch('app.views.launch_task.delay'):
def test_launch_view(self, mock_launch_task):
    mock_launch_task.return_value = None
    # post a correct dictionary to the view
    correct_data = {'correct': 'params'}
    rs.self.app.post('/launch/', data=correct_data)
    self.assertEqual(rs.status_code, 200)

@mock.patch('app.views.launch_task'):
def test_launch_view(self, mock_launch_task):
    mock_launch_task.return_value = None
    # post a correct dictionary to the view
    correct_data = {'correct': 'params'}
    rs.self.app.post('/launch/', data=correct_data) …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking celery flask

8
推荐指数
1
解决办法
2189
查看次数

Django会话为匿名用户

我希望能够收集匿名用户和登录用户使用webapp的基本统计信息.

这里的共性是使用会话ID,我可以为登录和注销的用户存储数据,并且仍然能够将存储的统计信息链接到给定的会话(会话所属的人是无关紧要的).

但是,我session_key遇到了收集问题的问题,因为当匿名用户进入网站时似乎没有设置(可能是因为Django会话只在修改时保存).

当我使用登录用户测试视图时:

def create(request, *args, **kwargs):
    print request.session.session_key
Run Code Online (Sandbox Code Playgroud)

对于登录用户,将session_key打印.对于已注销的用户或匿名用户,这是None.在第一次请求到站点时,会话不存在,因此对视图不可用.

我目前的计划是创建一个自定义中间件作为官方会话中间件的子类,但是process_request()为那些没有一个via的人重写实例化会话session.save().

我对这种方法的唯一关注是,我不确定它是否会对Django的其他部分产生不可预见的后果 - 人们有什么建议吗?

django session django-sessions

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

为Raspberry Pi交叉编译rethinkdb

目前正在运行Ubuntu 14.04 x86_64.我想为我的RPi交叉编译rethinkdb用于实验目的,这在1.12中得到支持(人们显然已成功编译).

我已经安装了工具链:

sudo apt-get install g++-4.7-arm-linux-gnueabi gcc-arm-linux-gnueabi

export CXX=/usr/bin/arm-linux-gnueabi-g++-4.7
export CC=/usr/bin/arm-linux-gnueabi-gcc-4.7
export AR=/usr/bin/arm-linux-gnueabi-ar
export LD=/usr/bin/arm-linux-gnueabi-ld
Run Code Online (Sandbox Code Playgroud)

配置运行:

./configure --ccache --allow-fetch --without-tcmalloc
* Detecting system configuration
Bash:                           4.3.8(1)-release
Use ccache:                     yes
C++ Compiler:                   GCC 4.7 (/usr/bin/arm-linux-gnueabi-g++-4.7)
Host System:                    arm-linux-gnueabi
Build System:                   Linux 3.13.0-24-generic x86_64
Cross-compiling:                yes
Host Operating System:          Linux
Without tcmalloc:               yes
Build client drivers:           no
Build Architecture:             x86_64
Precompiled web assets:         no
Protobuf compiler:              /usr/bin/protoc
Node.js package manager:        /usr/bin/npm
LESS css:                       external/less_1.6.2
CoffeeScript:                   external/coffee-script_1.7.1
Handlebars:                     external/handlebars_1.3.0
Browserify:                     external/browserify_3.24.13 …
Run Code Online (Sandbox Code Playgroud)

c++ cross-compiling raspberry-pi rethinkdb

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