小编Rob*_*Rob的帖子

Python argparse:默认值或指定值

我想有一个可选参数,如果只有标志存在而没有指定值,则默认为一个值,但是如果用户指定了值,则存储用户指定的值而不是默认值.是否已有针对此的行动?

一个例子:

python script.py --example
# args.example would equal a default value of 1
python script.py --example 2
# args.example would equal a default value of 2
Run Code Online (Sandbox Code Playgroud)

我可以创建一个动作,但想知道是否有现成的方法来执行此操作.

python default-value argparse

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

docker-compose volumes_from等同于版本3

我正在尝试使用docker compose创建Nginx/PHP FPM设置,并且遇到版本3卷语法/更改的问题.

我的Dockerfile:

FROM php:7-fpm
VOLUME /var/www/html
Run Code Online (Sandbox Code Playgroud)

我的docker-compose.yml:

version: "3"
services:
  php:
    build: .
    volumes:
      - ./html:/var/www/html
  web:
    image: nginx
    links:
      - php
    ports:
      - "8888:80"
    volumes:
      - php:/var/www/html
      - ./default.conf:/etc/nginx/conf.d/default.conf
volumes:
  php:
Run Code Online (Sandbox Code Playgroud)

当我添加一个index.php文件时./html,我可以通过访问http:// localhost:8888来查看,但是任何静态文件(如CSS)都返回404,因为Nginx无法在其容器中找到它们(/var/www/html在nginx容器上为空).使用版本3 docker compose文件不再具有volumes_from,这基本上就是我想要复制的内容.

如何让它与版本3一起使用?

docker docker-compose

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

在PHP中处理Soap超时

我正在开发一个项目,我正在使用SOAP Web服务验证来自用户的信息.我目前正在处理错误,假设我收到来自Web服务的响应,但还需要处理服务超时或不可用的边缘情况.

在超时或服务不可用的情况下,我需要假装请求成功(Web服务批准了该信息),但我不清楚抛出了什么异常.

一些伪代码:

// $client is PHP's SoapClient class
try {
  $response = $client->SomeSoapRequest();
}
catch(SoapFault $e){
  // handle issues returned by the web service
}
catch(Exception $e){
  // handle PHP issues with the request
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到的是:

  1. 超时是一个SoapFault吗?如果是这样,区分超时错误和Web服务问题(如类型错误等)的最佳方法是什么?我发现一个页面提到了一个错误,其中消息是"错误加载标题"的效果,但没有提到这是否是Soap错误.
  2. 服务不可用性如何可能发生?PHP异常似乎有意义(从Web服务返回SoapFault,其中不可用性是套接字问题或类似问题)?
  3. 是否存在可以测试超时的现有服务(例如示例)?大多数与超时相关的讨论似乎与通过扩展默认超时设置来防止超时有关,这在这种情况下并不理想.

php error-handling soap web-services

32
推荐指数
3
解决办法
7万
查看次数

使用SQL确定文本字段的字数统计信息

我最近一直致力于一些数据库搜索功能,并希望得到一些信息,如每个文档的平均单词(例如数据库中的文本字段).到目前为止我唯一找到的东西(没有在DB之外选择的语言处理)是:

SELECT AVG(LENGTH(content) - LENGTH(REPLACE(content, ' ', '')) + 1)
FROM documents
Run Code Online (Sandbox Code Playgroud)

这似乎有效*但你有其他建议吗?我目前正在使用MySQL 4(希望尽快转移到这个应用程序的第5版),但我也对一般解决方案感兴趣.

谢谢!

*我可以想象这是一个非常粗略的方法来确定它,因为它不会在内容等中考虑HTML.对于这个特定的项目来说没关系但是还有更好的方法吗?

更新:用"更好"来定义我的意思:更准确,更高效,或更"正确"(易于维护,良好实践等).对于我可用的内容,上面的查询足够快,并且对于这个项目是准确的,但我将来可能需要类似的东西(所以我问).

mysql sql text-processing word-count

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

如何在mongo shell中查看文档字段?

有没有办法在mongo的shell中找出文档中的字段/键?举个例子,假设我们有一个类似(伪代码)的文档:

{
    "message": "Hello, world",
    "from": "hal",
    "field": 123
}
Run Code Online (Sandbox Code Playgroud)

我想在shell中运行一个命令,返回该文档中的字段/键列表.例如,像这样:

> var message = db.messages.findOne()
> message.keys()
... prints out "message, from, field"
Run Code Online (Sandbox Code Playgroud)

谢谢!

mongodb

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

使用横跨第180个子午线的传单显示GeoJSON

我正在尝试显示横跨第180个子午线的geoJSON对象(在本例中为俄罗斯的轮廓).目前,这部分国家/地区位于地图左侧,部分位于右侧:

俄罗斯和第180经络

看看传单,似乎有一个修复,但似乎不起作用:https://github.com/Leaflet/Leaflet/issues/82.我也试过添加一个coordsToLatLng函数,但似乎无法让它工作.平铺图层有一个continuousWorld我认为不适用于geoJSON对象的选项.

此数据位于:https://dl.dropboxusercontent.com/u/12085570/RUS.json.数据从shapefile生成到geojson,最后生成到topojson.转换topojson我使用的--no-stitch-poles选项让它在地图上显示"很好",这意味着它不会将右边的点连接到地图的左侧.

有没有办法让它显示为一个连续的对象而不会在子午线周围分裂?

map geojson leaflet topojson

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

Git未合并的路径

我有以下内容git status,我需要摆脱下面的两个插件:

# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   unmerged:   vendor/plugins/pluginA
#   unmerged:   vendor/plugins/pluginB
Run Code Online (Sandbox Code Playgroud)

问题是我有一个存储库,其中包含一些在我们和客户端之间共享的分支:

master(客户端版本的代码)
制作(我们的代码生成版本)
开发(我们开发的代码版本)

已经作出的变化master,我们需要开始使用,我需要离开productiondevelopment孤独.我创建了一个新的"合并"分支(基于开发)并合并了master的代码.不幸的是,它给我们留下了上面的两个插件问题.这些被删除master但仍然在development分支机构.合并时我有以下消息:

CONFLICT(目录/文件):HEAD中有一个名为vendor/plugins/pluginA的目录.添加vendor/plugins/pluginA作为vendor/plugins/pluginA~master

由于我试图获得该master版本,我怎么能删除插件?似乎大多数其他已删除的文件已正确合并.

谢谢!

git version-control merge

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

结帐过去的git子模块提交

我正在开发一个有许多子模块的项目.昨天,一切都是桃子,应用程序正在运行等等.git submodules update今天早上我跑了之后,我收到了应用程序中的错误.

$ git submodule update
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb'
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e'
Run Code Online (Sandbox Code Playgroud)

那么在等待问题得到修复的同时,如何查看以前版本的子模块呢?我已经看过几个对解决方案的引用而没有真正看到一个具体提到这个案例的例子.

谢谢!

编辑:奖金,如果你也可以帮助我理解/解决这个问题(如何获得pluginApluginB再次参考head/master):

$ git submodule status
49d5cba84dcffc061db69813162d103feef31ecb vendor/plugins/pluginA (49d5cba)
4f442f0448c1826252933d5af8fb33cd64d76f6e vendor/plugins/pluginB (4f442f0)
558fd1a762d63562689e58cac50283192fde74d5 vendor/plugins/pluginC (heads/master)
4feb2c51148ebc4d4f80f9a64b9eabbfde5b13a3 vendor/plugins/pluginD (heads/master)
19dce61e256b0fc3f05342cdd3e4d21a434c0b87 vendor/plugins/pluginE (heads/master)
Run Code Online (Sandbox Code Playgroud)

git

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

硒测试后清理数据

我正在为内部网络应用程序设置一些Selenium测试,并寻找有关测试"最佳实践"的建议.其中一个测试是通过UI添加一些无法通过UI删除的数据(例如,您可以通过Web应用程序添加记录,但删除需要在内部联系某人以在数据库级别删除它).在运行Selenium测试后,您通常如何考虑清理数据?

有问题的应用程序是用PHP编写的,我使用PHP进行测试(使用Selenium RC和SimpleTest),但我对其他工具等开放,因为这只是一个广泛的最佳实践问题.正在测试的应用程序是在我们的开发环境中,所以我并不特别担心测试带来的数据.

一些想法:

  1. 在Selenium测试中手动连接到数据库以清理数据
  2. 使用像DBUnit这样的东西来管理它?
  3. 只需添加数据,不要担心清理它(也就是说,懒惰的方法)

谢谢!

编辑:似乎大多数想法围绕着相同的结论:处理一组已知数据并在测试完成后恢复.这种机制可能会因语言,数据量等而有所不同,但这看起来应该适合我的需要.

selenium unit-testing

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

Cordova/Phonegap中的OpenAllWhitelistURLsInWebView for Android

我正在处理应用程序,它将处理一些特定于设备的事情,但随后将用户重定向到在线网页.这在iOS版本中运行良好,我试图让它在Android中运行.

目前在Android中,该应用程序会加载,但如果我有一个window.location.href = ...电话,则无效window.onload.iOS必需的设置之一是OpenAllWhitelistURLsInWebView.Android有类似的设置吗?你怎么设置它?还有其他建议吗?

android cordova

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

如果对象响应仍然会发出警告

我正在开发一个项目,我有一个UIView属性的类.我还定义了一个类,它是一个UIView定义某个方法的子类.如果我有以下代码,我在构建时会收到警告:

// In this example, myView is UIView property which *may* contain a UIView or 
// my subclassed-UIView which has the myMethod method
if([myView respondsToSelector:@selector(myMethod)]){
   [myView myMethod]
}
Run Code Online (Sandbox Code Playgroud)

警告是"UIView可能无法响应'-myMethod'".警告显然不能阻止应用程序的构建,但我只想弄清楚如何处理它.这是正确的方法吗?有办法停止这个警告吗?

xcode objective-c

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

SQL Update - 更改字符串

我有这样的表:

Users(id,name)
Run Code Online (Sandbox Code Playgroud)

我需要一个查询来查找名称以'asdf_'开头,并通过删除此前缀来更新所有行.

例如:

在查询之前,该表包含:

asdf_john
asdf_jane
Run Code Online (Sandbox Code Playgroud)

查询后我想要:

john
jane
Run Code Online (Sandbox Code Playgroud)

感谢帮助

mysql sql

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

PHP变量变量和数组/函数

我正在尝试使用变量变量,如下所示:

function keyValMyArray($nameofmyarray) {
  foreach(${$nameofmyarray} as $key => $val) {
    print "$key: $val<br>";
  } 
}

$bookPrices = Array('Catcher in the Rye' => '$2', 'Curious George' => '$4.25', 'Dracula' => '$8');

keyValMyArray('bookPrices')
Run Code Online (Sandbox Code Playgroud)

这不起作用.我得到的错误是:为foreach()提供的参数无效;

任何人都知道如何在这个实例中使用变量变量?

php variables

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