小编dal*_*ler的帖子

何时使用以及何时不使用Python 3.5`await`?

我正在使用asyncioPython 3.5中的使用流程,但我还没有看到我应该做什么await以及我不应该做的事情或者可以忽略不计的事情的描述.我是否必须在"这是一个IO操作,因此应该await编辑" 方面使用我的最佳判断?

python python-asyncio python-3.5

19
推荐指数
1
解决办法
7242
查看次数

通过Python请求模块发出HTTP请求不能通过curl的代理工作吗?为什么?

使用此curl命令,我能够从Bash中获取我正在寻找的响应

curl -v -u z:secret_key --proxy http://proxy.net:80  \
-H "Content-Type: application/json" https://service.com/data.json
Run Code Online (Sandbox Code Playgroud)

我已经在使用Requests模块的代理上看到过这篇文章

它帮助我在Python中制定我的代码,但我需要通过代理提出请求.但是,即使在提供适当的代理时,它也无法正常工作.也许我只是没有看到什么?

>>> requests.request('GET', 'https://service.com/data.json', \
>>> headers={'Content-Type':'application/json'}, \ 
>>> proxies = {'http' : "http://proxy.net:80",'https':'http://proxy.net:80'}, \
>>> auth=('z', 'secret_key'))
Run Code Online (Sandbox Code Playgroud)

此外,在同一个python控制台上,我可以使用urllib发出请求,使其成功.

>>> import urllib
>>> urllib.urlopen("http://www.httpbin.org").read()
---results---
Run Code Online (Sandbox Code Playgroud)

即使只在非https地址上尝试请求也无法正常工作.

>>> requests.get('http://www.httpbin.org')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.6/site-packages/requests/api.py", line 79, in get
   return request('get', url, **kwargs)
File "/Library/Python/2.6/site-packages/requests/api.py", line 66, in request
    prefetch=prefetch
File "/Library/Python/2.6/site-packages/requests/sessions.py", line 191, in request
    r.send(prefetch=prefetch)
File "/Library/Python/2.6/site-packages/requests/models.py", line 454, …
Run Code Online (Sandbox Code Playgroud)

python proxy get http-request python-requests

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

简化Flask中的日志记录

我目前将此作为我的Flask应用程序的基本记录器.虽然我看到有一个Flask.logger对象.如何使用本机Flask记录器?或者我正在做什么就好了?

我对于不同的日志记录状态的位置也有点困惑,例如记录到信息而不是记录到错误?

LOG_FILENAME = 'app_access_logs.log'

info_log = logging.getLogger('app_info_log')
info_log.setLevel(logging.INFO)

handler = logging.handlers.RotatingFileHandler(
    LOG_FILENAME,
    maxBytes=1024 * 1024 * 100,
    backupCount=20
    )

info_log.addHandler(handler)

...

@app.before_request
def pre_request_logging():
    #Logging statement
    if 'text/html' in request.headers['Accept']:
        info_log.info('\t'.join([
            datetime.datetime.today().ctime(),
            request.remote_addr,
            request.method,
            request.url,
            request.data,
            ', '.join([': '.join(x) for x in request.headers])])
        )
Run Code Online (Sandbox Code Playgroud)

python logging flask

9
推荐指数
1
解决办法
6441
查看次数

通过旋转将Presto列转换为行

这是所需的输入和所需的输出.我不熟悉SQL或Presto中使用的术语,文档似乎指向使用,map_agg但我认为这里的问题是动态创建列,但是如果a, b, ...列可以知道且有限的话,这很奇怪.

我很高兴在SQL或Presto中了解它的正确功能,当然如果可行的话.优选地,以不涉及每个所需行=>列手动添加子句的方式.必须有一种方法可以自动执行此操作,或者通过提供值列表来过滤转换为标题的行(如'a'以下将如何移动为列标题)

table_a:

id | key | value

 0 |   'a'  |   1
 1 |   'b'  |   2
Run Code Online (Sandbox Code Playgroud)

然后成为desired:

id | 'a' | 'b' 
 0    1    2
Run Code Online (Sandbox Code Playgroud)

我能得到的最接近的是使用map_agg一组key: values可以在输出中一次拉出一组.然而,理想的解决方案是不必明确列出key我想要输出的每一个,而是爆炸或推出所有键kvs:

with subquery_A as (
  select 
    id,   
    map_agg(A.key, A.value) as "kvs"
  from A as a
  group by 1
)

select 
  sub_a.id,
  sub_a.kvs['a'],
  sub_a.kvs['b']

from subquery_A as sub_a
Run Code Online (Sandbox Code Playgroud)

sql presto

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

在 Firefox 中单击某个选项会立即导致选项下拉菜单关闭

由于某种原因,仅在 Firefox 中,单击选择后,具有多个选项的选择框将立即消失。

选择的内容不会被不断重写,并且只有一个用于更改的事件处理程序。我基本上使用 Bootstrap 进行样式设计。

对于为什么会发生这种情况有什么想法吗?

firefox select twitter-bootstrap drop-down-menu

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

如何在Angular CLI中添加自定义构建步骤?

似乎没有一种方法可以绑定到Angular CLI正在使用的任何工具来构建/服务网站。

我想运行自己的图像优化脚本,却找不到运行脚本和给定时间点或将代码添加到默认构建脚本的方法。

有没有推荐的/规范的方法来做到这一点?

angular-cli angular

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

将单个文件从 NFS docker 卷挂载到容器中

示例(为简洁起见,省略了许多选项):

version: "3"
volumes:
  traefik:
    driver: local
    driver_opts:
      type: nfs
      o: "addr=192.168.1.100,soft,rw,nfsvers=4,async"
      device: ":/volume/docker/traefik"
services:
  traefik:
    volumes:
      - traefik/traefik.toml:/traefik.toml
Run Code Online (Sandbox Code Playgroud)

由于没有具有该名称的卷,这traefik/traefik.toml意味着卷名必须是文件的完整路径(即您不能将路径附加到卷名),因此会出现错误?

尝试设置device: ":/volume/docker/traefik/traefik.toml"只会返回not a directory错误。

有没有办法获取单个文件并将其安装到容器中?

nfs docker docker-compose

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

使用Pisa/xhtml2pdf在Python中创建pdf

我知道基于Python中的pdf创建有很多问题,但我没有看到任何基于使用Pisa或xhtml2pdf创建pdf的内容.

这是我的代码.

pisa.pisaDocument(cStringIO.StringIO(a).encode('utf-8'),file('mypdf.pdf','wb'))
Run Code Online (Sandbox Code Playgroud)

然后

pisa.startViewer('mypdf.pdf')
Run Code Online (Sandbox Code Playgroud)

我在几个不同的教程和示例中汇编了这个,但是我尝试的每一件事总是导致pdf被破坏,并且在尝试打开pdf时我得到了这个消息.

"Adobe Reader无法打开'awesomer.pdf',因为它不是受支持的文件类型,或者因为文件已损坏(例如,它是作为电子邮件附件发送的,并且未正确解码)."

即使我不在字符串上使用.encode('utf-8'),也会出现此消息.

我究竟做错了什么?我的Mac上的编码是否与此有关?

python pdf pisa xhtml2pdf

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

我应该'浏览'所有文件然后`concat`他们为我的gulp管道?还是逆?

我开始打破一个Javascript客户端库,index.js并有一个额外的文件,我现在正在require顶部做一个.

...
require("./other_file")
...
Run Code Online (Sandbox Code Playgroud)

然后我gulpfile.js看起来像这样:

function compile(watch) {
  var bundler = watchify(browserify({
    entries: ['./src/index.js'],
    debug: true,
    sourceType: module,
  })
  .transform(babelify));

function rebundle() {
    bundler.bundle()
      .on('error', function(err) { console.error(err); this.emit('end'); })
      .pipe(source('build.js'))
      .pipe(buffer())
      .pipe(sourcemaps.init({ loadMaps: true }))
      .pipe(sourcemaps.write('./'))
      .pipe(gulp.dest('./dist'));
  }

  if (watch) {
    bundler.on('update', function() {
      console.log('-> bundling...');
      rebundle();
    });
  }

  rebundle();
}
Run Code Online (Sandbox Code Playgroud)

我不确定我是否应该使用concat我需要的所有文件,然后浏览更大的concatted文件或只是browserify主文件,它require会起作用吗?

(我在这里遵循gulpfile示例)

javascript browserify gulp babeljs

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

为什么CreateContainerOptions的卷采用map [string] struct {}?

我一直在使用fsouzago-dockerclient]创造的伟大,但我很困惑,为什么是字符串结构的地图?docker.CreateContainerOptions.Volumes

文档没有解释为什么会这样,但我想你只需要map [string] => string来将主机卷映射到容器卷?或者将值保留为空,表示主机卷将安装在容器内的同一路径上.

我查看了Github上的一堆开放代码,人们创建了容器,但我刚看到很多人安装Volumes时只有一个字符串和一个空结构作为值.

我也是Go的新手,所以我可能会遗漏一些完全明显的东西.

go docker

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