小编Jim*_*mmy的帖子

避免在每个页面上运行 GeoIP

这是我正在使用的模块: http: //wiki.nginx.org/HttpGeoipModule

据我所知,由于它是在 nginx 配置和 uwsgi 上配置的,所以看起来别无选择,只能让它在每个页面上运行 geoip,然后仅在需要时收集和使用变量。

从性能的角度来看,我宁愿拥有它,所以我仅在需要时请求 geoip,将其缓存在 cookie 或会话中,然后不再请求它以加快站点速度。

有人能告诉我这是否可能吗?

python cookies session nginx geoip

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

PostgreSQL数据库 - 仅在记录不存在时插入

可能重复:
无法从postgres中的UPDATE RETURNING子句中选择

我正在使用一个postgreSQL数据库,它有一个"公司"表和一个"国家"表,每个表都有一个唯一ID.

我想要一个设置,如果我尝试将公司添加到数据库,它只会将公司添加到具有新唯一ID的数据库(如果它尚不存在).

如果有人能够对此有所了解,我会非常感激,

詹姆士

sql database postgresql

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

Amazon SNS Python Boto - 如何创建要发送的消息

我正在使用SNS将消息从一个服务器发送到另一个服务器.我想创建一个消息,使用Python和Boto发送到其他服务器,所以我想知道是否有人可以查看此代码旨在发送消息"刮":

import boto
sns = boto.connect_sns()

# Create Topic
t = sns.create_topic("scraped")
t
{u'CreateTopicResponse': {u'ResponseMetadata': {u'RequestId': u''}, u'CreateTopicResult': {u'TopicArn': u'arn:aws:sns:us-east-1:your-account-id:Test'}}}
Run Code Online (Sandbox Code Playgroud)

然后另一方面,我想要一些代码在第二台服务器上检查此消息,所以我有这样的事情:

import boto
sns = boto.connect_sns()

# Read Topics
sns.get_all_topics()
{u'ListTopicsResponse': {u'ResponseMetadata': {u'RequestId': u''}, u'ListTopicsResult': {u'Topics': [{u'TopicArn': u'arn:aws:sns:us-east-1:your-account-id:Test'}], u'NextToken': None}}}
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是,我有没有正确的结束?这对我来说是一个全新的概念,我很难理解它.

我的第二个问题是为了检查我是否每隔5分左右在python检查脚本上运行一个cronjob?

python linux debian amazon-web-services amazon-sns

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

Google Geocoding - 抓取地址和坐标

所以这就是我所追求的,我被告知这不可能,但我不会放弃!

假设用户在"伦敦"中键入我的位置搜索框并单击"地理编码"我能够得到该位置的坐标,就像这个例子:

http://gmaps-samples-v3.googlecode.com/svn/trunk/geocoder/v3-geocoder-tool.html

但是我要说我有以下字段:

Town:
City:
Country:
Long:
Lat:
Run Code Online (Sandbox Code Playgroud)

是否可以通过此请求填写所有这些字段,而不仅仅是坐标?例如,我将获得以下信息,然后我可以将其存储在cookie中:

Town: -
City: London
Country: UK
Long: 123.45
Lat: 123.45
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-maps google-maps-api-3

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

清单 - 宽度始终为100%

基本上我正在制作一些按钮,但即使通过我将宽度设置为自动和设置填充,列表仍然延伸100%的页面.我不想以像素为单位设置宽度,我只想在任一侧设置填充.

任何人都可以解释我出错的地方:http: //jsfiddle.net/spadez/KYdnJ/5/

#nav li { 
    color: #333; 
    line-height: 28px; 
    background-color: #F8F8F8; 
    border: 1px solid #D3D3D3; 
    padding: 0px 9px 0px 9px; 
    font-family: arial, sans-serif; 
    font-size: 11px; 
    width: auto;
}
Run Code Online (Sandbox Code Playgroud)

html css

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

AngularJS onload - 未捕获的ReferenceError:未定义$ scope

我正在使用angularJS来加载加载警报的不同方法.我看到这个方法记录在案:

http://jsfiddle.net/AQ533/9/

JS

$scope.init = function () {
  ($window.mockWindow || $window).alert('Hello');
};
Run Code Online (Sandbox Code Playgroud)

HTML

<div data-ng-controller="myCtrl" data-ng-init="init()">
<span id="logo">Just a</span><span id="small" >PREVIEW</span>    
</div>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未捕获的ReferenceError:未定义$ scope

有人能告诉我这个实现我做错了吗?

javascript angularjs

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

仅当行以结果开始时,awk才匹配

我有以下代码:

function replaceappend() {
    awk -v old="$2" -v new="$3" '
        sub(old,new) { replaced=1 }
        { print }
        END { if (!replaced) print new }
    ' "$1" > /tmp/tmp$$ &&
    mv /tmp/tmp$$ "$1"
}

replaceappend "/etc/ssh/sshd_config" "Port" "Port 222"
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我希望修改它,以便awk命令只在行以该结果开头时才找到匹配项.所以,如果它正在寻找"端口"这个词:

Port 123 # Test   <- It would match this one
This is a Port    <- It would not match this one
Run Code Online (Sandbox Code Playgroud)

我试着看看其他帖子,询问有关"awk行开头"的帖子,比如这个,但我无法理解它:

awk,打印以四位数字开头的行

linux bash shell awk debian

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

没有可行的重载运算符用于引用映射

我正在尝试使用地图,因此我可以将标签名称设为参考编号.当我尝试使用它时,就像在这段代码中我得到错误(每次我引用地图时总共6个):

src/main.cpp:25:45: error: no viable overloaded operator[] for type
      'std::map<std::string, std::string>'
                const char* idcs = node.child_value(tagMap[3]);
Run Code Online (Sandbox Code Playgroud)

这是代码:

#include "pugi/pugixml.hpp"

#include <iostream>
#include <string>
#include <map>

int main()
{
    pugi::xml_document doca, docb;
    std::map<std::string, pugi::xml_node> mapa, mapb;
    std::map<std::string, std::string> tagMap {{"1", "data"}, {"2", "entry"}, {"3", "id"}, {"4", "content"}};

    if (!doca.load_file("a.xml") || !docb.load_file("b.xml")) {
        std::cout << "Can't find input files";
        return 1;
    }

    for (auto& node: doca.child(tagMap[1]).children(tagMap[2])) {
        const char* id = node.child_value(tagMap[3]);
        mapa[id] = node;
    }

    for (auto& node: docb.child(tagMap[1]).children(tagMap[2])) {
        const …
Run Code Online (Sandbox Code Playgroud)

c++ xml xml-parsing c++11

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

从Google Drive Python API获取创建日期以进行下载

我想创建一个Python脚本来备份Google云端硬盘文件,这很有趣/很有趣,但是我遇到了麻烦。我下面的脚本可以正常工作,但是它只是备份了本地驱动器上所有文件的最后修改日期和创建日期作为备份的日期,并且没有保留原始的创建日期/修改日期在Google云端硬盘上。

这是我的脚本:

from __future__ import print_function
import sys, httplib2, os, datetime, io
from time import gmtime, strftime
from apiclient import discovery
import oauth2client
from oauth2client import client
from oauth2client import tools
from datetime import date

#########################################################################
# Fixing OSX el capitan bug ->AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlencode'
os.environ["PYTHONPATH"] = "/Library/Python/2.7/site-packages"
#########################################################################

CLIENT_SECRET_FILE = 'client_secrets.json'
TOKEN_FILE="drive_api_token.json"
SCOPES = 'https://www.googleapis.com/auth/drive'
APPLICATION_NAME = 'Drive File API - Python'
OUTPUT_DIR=str(date.today())+"_drive_backup"

try:
    import argparse
    flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
    flags = None

def …
Run Code Online (Sandbox Code Playgroud)

python google-drive-api

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

修剪文件名仅保留最后 5 个字符

想知道你是否可以帮忙。我有数千个这样的文件名:

\n
2016-IMG123\nIMG124\n2018-13727-IMG123\n
Run Code Online (Sandbox Code Playgroud)\n

I\xe2\x80\x99m 尝试在终端中创建一个衬垫来重命名文件夹中的所有这些文件,只保留最后 6 个字符。

\n
 for f in *; do mv "$f" "${f%?????}"; done\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的出发点,但我发现使用 for 循环有点令人困惑。大多数示例代码都讨论从前面删除 x 个字符,而不是通过从开头删除任何附加字符来仅留下 6 个字符。

\n

bash terminal

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