小编Mar*_*ski的帖子

在PHP中验证Cyrillic输入

有没有办法(正则表达式?)检查一个字符串是否只由西里尔字母数字字符组成?

我需要验证输入是否在西里尔字母的范围内,加上数字,短划线和空格

php localization

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

如何更改Amazon Redshift中的列排序

有没有办法在Amazon Redshift(或Postgres,因为它基于它)中更改列排序?或者也许在特定位置添加一列?

在mysql中你可以做到:

ALTER TABLE MY_TABLE
ADD COLUMN {NEW_COL} AFTER {EXISTING_COL}
Run Code Online (Sandbox Code Playgroud)

但这在Redshift中不起作用.有任何想法吗?

amazon-redshift

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

将生产中的所有python包升级到最新版本是一个好习惯吗?

我正在运行一个相当复杂的Django应用程序,大约一年了.它在requirements.txt中有大约50个包

每当我需要一个新包时,我用pip安装它,然后手动将它添加到requirements.txt文件中,并带有固定版本:

SomeNewModule==1.2.3

这意味着我的大部分套餐现在都在一年后过时了.当我特别需要一个新功能时,我已手动更新了其中几个.

我开始认为可能存在我错过的安全补丁,但由于后向不兼容,我不愿盲目地更新它们.

有没有标准的最佳做法?

python deployment pip backwards-compatibility

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

通过 API 获取 Heroku dyno 指标

我正在尝试编写一个 Heroku 自动缩放脚本。我想根据仪表板上提供的内存使用情况、动态负载和响应时间指标来进行自动缩放。

但是,我无法在他们的文档中找到可以为我提供指标数据的 API 端点。

我能找到的最接近的东西是log-runtime-metrics,这是一个 Heroku Labs 模块,它每 20 秒在系统日志中写入 CPU 和内存使用情况。

然后我需要获取并解析日志以获得一些有意义的数据。看到这个答案

有这方面的API吗?或者更好的方法?

heroku-api

6
推荐指数
0
解决办法
262
查看次数

Heroku 部署时出错。错误:RPC 失败;HTTP 504 curl 22 请求的 URL 返回错误:504

过去我通过 HTTP 传输部署到 Heroku 没有任何问题,但最近我无法部署。

这是我收到的错误:

Enumerating objects: 58668, done.
Counting objects: 100% (57434/57434), done.
Delta compression using up to 16 threads
Compressing objects: 100% (16705/16705), done.
Writing objects: 100% (57124/57124), 50.77 MiB | 76.23 MiB/s, done.
Total 57124 (delta 44149), reused 52353 (delta 40249)
error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504
fatal: the remote end hung up unexpectedly
fatal: the remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

我尝试切换到 SSH 传输,它可以工作,但 Heroku 正在淘汰 SSH 传输,所以我需要找出这个错误。

我还尝试根据 …

python git django heroku

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

使用带有IAM角色的bo​​to3连接到Amazon S3

我试图从python boto转移到较新的boto3模块,用于操作Amazon S3上的文件.

我还需要使用Amazon IAM角色,就像我使用旧的boto模块一样.我不确定如何在服务器上设置IAM角色,但我所要做的就是:

s3_conn = S3Connection()
Run Code Online (Sandbox Code Playgroud)

我可以访问服务器可以访问的所有存储桶.

这在boto3中似乎有所不同:

s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
     print(bucket.name)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/boto3/resources/collection.py", line 83, in __iter__
  for page in self.pages():
File "/usr/local/lib/python2.7/dist-packages/boto3/resources/collection.py", line 161, in pages
  pages = [getattr(client, self._py_operation_name)(**params)]
File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 310, in _api_call
  return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 407, in _make_api_call
  raise ClientError(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied
Run Code Online (Sandbox Code Playgroud)

我正在浏览boto3文档,但我不确定我需要做什么来设置IAM角色:

http://boto3.readthedocs.org/en/latest/

python amazon-s3 amazon-iam boto3

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

如何使用一个SQL查询在Laravel(Eloquent)中获取两个相关对象

我试图在Laravel中根据文档使用预先加载来获取两个相关对象.

https://laravel.com/docs/5.4/eloquent-relationships#eager-loading

我的模特是:

class Lead extends Model {
  public function session() {
    return $this->hasOne('App\LeadSession');
  }
}

class LeadSession extends Model {
  public function lead() {
    return $this->belongsTo('App\Lead');
  }
}
Run Code Online (Sandbox Code Playgroud)

我想通过一个SQL查询获取两个对象.基本上我想执行:

select * from lead_sessions as s 
inner join lead as l 
on l.id = s.lead_id 
where s.token = '$token';
Run Code Online (Sandbox Code Playgroud)

然后能够访问LeadSession和Lead对象.这是我正在尝试的PHP代码:

$lead = Lead::with(['session' => function ($q) use ($token) {
  $q->where('token','=',$token);
}])->firstOrFail();

print($lead->session->id);
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

$lead = Lead::whereHas('session', function($q) use ($token) {
  $q->where('token','=',$token);
})->firstOrFail();

print($lead->session->id);
Run Code Online (Sandbox Code Playgroud)

$session = LeadSession::with('lead')->where('token',$token)->firstOrFail();

print($session->lead->id);
Run Code Online (Sandbox Code Playgroud)

在所有这三种情况下,我都会执行两个查询,一个用于leads …

laravel eloquent

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

使用 Django Storages 设置每个对象的 AWS S3 ACL

我正在使用 django 存储并将其AWS_DEFAULT_ACL设置为public read.

但是我希望能够使用default_storage.save()ACL手动保存文件private

有没有办法用default_storage来做到这一点?

就像是:

default_storage.save(file_name, ContentFile(content), acl='private')
Run Code Online (Sandbox Code Playgroud)

django amazon-s3 django-storage

5
推荐指数
0
解决办法
306
查看次数

Django ORM 加入原始查询

我想将一个相当复杂的子查询加入到 Django ORM 查询集中:

结果查询应该是这样的:

select id from webshop_product
left outer join (
    select product_id, count(extra_col) as quantity from (
        select product_id, col1 as extra_col from xyz where x = 123 and y = 456
        union
        select product_id, col2 as extra_col from abc where a = 234 and y = 534
     ) as t1
) as t2 on t2.product_id = webshop_product.id
Run Code Online (Sandbox Code Playgroud)

左外连接子句中的连接子查询非常复杂,它涉及从不同表的联合进行聚合,我无法将其写在ORM中。我尝试在 ORM 中编写它,但是我无法在不同的表上实现 UNION...所以我想将它作为原始子查询加入,并注释数量列。

就像是:

Product.objects.all().join("my complex raw subquery")
Run Code Online (Sandbox Code Playgroud)

这在 Django ORM 中可能吗?

django django-orm

5
推荐指数
0
解决办法
1299
查看次数

使用COPY导入时,Redshift添加列

在Amazon Redshift中,我有一个表,需要在其中从多个CSV文件加载数据:

create table my_table (
  id integer,
  name varchar(50) NULL
  email varchar(50) NULL,
  processed_file varchar(256) NULL
);
Run Code Online (Sandbox Code Playgroud)

前三列引用文件中的数据。最后一列processed_filed指示从哪个文件导入记录。

我在Amazon S3中有文件,并且我不想使用COPY命令导入它们。就像是:

COPY {table_name} FROM 's3://file-key' 
WITH CREDENTIALS 'aws_access_key_id=xxxx;aws_secret_access_key=xxxxx' 
DATEFORMAT 'auto' TIMEFORMAT 'auto' MAXERROR 0 ACCEPTINVCHARS '*' DELIMITER '\t' GZIP;
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以processed_file使用COPY命令自动填充第四列,以插入文件名。

我可以在COPY之后执行UPDATE语句,但是我正在处理大量数据,因此理想情况下,如果可能的话,我希望避免这种情况。

import amazon-redshift

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