关于从vim运行shell程序有很多SO问题.我想知道的是,是否有可能反过来 - 即
$ vim :BundleInstall
Run Code Online (Sandbox Code Playgroud)
例如,允许我作为脚本的一部分运行BundleInstall,而不是必须打开Vim并在首次运行时手动运行它?这可能吗?
我已将tmux $TERM
设置为screen-256color
正确设置.这工作正常,颜色设置正确,但它阻止我发送HOME
和END
键到终端,而是打印为F\n
和H\n
.
我应该补充说,家似乎在irssi工作,但不是vim.家似乎送(据Ctrl+v <HOME>
),^[OH
可能值得补充的是,我很清楚能够使用^
和$
移动到行的开头和结尾,但是$
没有结束,而是倒数第二个字符,我更喜欢使用HOME
和END
(因为我能在其他$ TERM设置下).
任何人都可以解释为什么这样,以及我如何解决它?
作为一个部分修复,我设置vim键绑定将a <Home>
和keypress映射<End>
到<Esc>OH
和<Esc>OF
.这不是理想的,但暂时起作用!有关详细信息,请参阅https://github.com/jvc26/dotfiles/blob/master/.vimrc.
谢谢!
所以,通过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日志中?
我正在努力在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)
我是否需要编写一整套不同的选项或者是否有更简单优雅的方法?
正如问题所示,锁定的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项目中使用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)
我该如何实现这一目标?
人们如何倾向于在docker上的Web部署中处理静态资产?
例如,在部署在容器中的django应用程序中,您是否让应用程序服务器从容器中提供静态文件,或者您是将它们同步到另一台服务器以供Web服务器使用,还是使用CDN?
如果没有从应用程序容器提供服务,何时将文件推送到CDN或Web服务器:作为容器构建的一部分,或作为构建中的第二个进程,以及如何确保两个步骤保持同步?
所以,我有一个烧瓶视图,它将一个芹菜任务添加到队列中,并向用户返回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) 我希望能够收集匿名用户和登录用户使用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的其他部分产生不可预见的后果 - 人们有什么建议吗?
目前正在运行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) django ×6
python ×4
bash ×2
docker ×2
mocking ×2
unit-testing ×2
amazon-iam ×1
amazon-s3 ×1
c++ ×1
celery ×1
containers ×1
flask ×1
logging ×1
raspberry-pi ×1
rethinkdb ×1
session ×1
shell ×1
supervisord ×1
terminal ×1
tmux ×1
vim ×1
zsh ×1