小编sma*_*art的帖子

sqlalchemy动态过滤

我正在尝试使用SQLAlchemy ORM实现动态过滤.

我正在浏览StackOverflow并发现了非常类似的问题:SQLALchemy dynamic filter_by

它对我有用,但还不够.

所以,这是一些代码示例,我正在尝试写:

# engine - MySQL engine
session_maker = sessionmaker(bind=engine)
session = session_maker()

# my custom model
model = User

def get_query(session, filters):
    if type(filters) == tuple:
        query = session.query(model).filter(*filters)
    elif type(filters) == dict:
        query = session.query(model).filter(**filters)
    return query
Run Code Online (Sandbox Code Playgroud)

然后我试图用非常相似的东西重用它:

filters = (User.name == 'Johny')
get_query(s, filters) # it works just fine

filters = {'name': 'Johny'}
get_query(s, filters)
Run Code Online (Sandbox Code Playgroud)

第二次运行后,有一些问题:

TypeError: filter() got an unexpected keyword argument 'name'
Run Code Online (Sandbox Code Playgroud)

当我试图改变我filters的时候:

filters = {User.name: 'Johny'} …
Run Code Online (Sandbox Code Playgroud)

python filtering sqlalchemy dynamic

7
推荐指数
2
解决办法
5459
查看次数

Python 3.6:从 aiohttp 请求中获取 JSON

我有一些使用 aiohttp 的应用程序。

我将 POST 请求发送到适当的端点,例如:

POST mysite.com/someendpoind/
Run Code Online (Sandbox Code Playgroud)

数据类似于:

{"param1": "value1", "param2": "value2", ..., "paramn": None}
Run Code Online (Sandbox Code Playgroud)

然后在后端,我想在这个请求中添加一些额外的条件:

data = await request.json()
data["additional_conditional"] = True
Run Code Online (Sandbox Code Playgroud)

request.json()失败并出现错误:

[ERROR] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/aiohttp/web_protocol.py", line 422, in start
resp = yield from self._request_handler(request)
File "/usr/local/lib/python3.5/dist-packages/aiohttp/web.py", line 306, in _handle
resp = yield from handler(request)
File "/usr/local/lib/python3.5/dist-packages/aiohttp_session/__init__.py", line 129, in middleware
response = yield from handler(request)
File "/opt/bikeamp/auth/__init__.py", line 57, in wrapped
return (yield from f(request, user)) …
Run Code Online (Sandbox Code Playgroud)

json http-post request aiohttp python-3.6

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

Pip:找不到版本.找不到匹配的分布

我正在尝试安装Flask-ACL:https: //mikeboers.github.io/Flask-ACL

$ pip search acl | grep -i flask

Flask-ACL (0.0.1) - Access control lists for Flask.
flask-miracle-acl (0.2) - The fabric between the Flask framework and Miracle ACL

Flask-Sandbox (0.1.0)- ACL Route controls for Flask
Flask-SimpleACL (1.2)- Simple ACL extension


$ pip install Flask-ACL

Collecting Flask-ACL
Could not find a version that satisfies the requirement Flask-ACL (from versions: )
No matching distribution found for Flask-ACL
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

PS Pip几分钟前升级了.

更新:

$ python --version
Python 2.7.3
Run Code Online (Sandbox Code Playgroud)

我在virtualenv下运行它.

pip …
Run Code Online (Sandbox Code Playgroud)

python packages pip

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

AWS CodeDeploy:服务角色不能承担提供的角色

我正在尝试使用我的GitHub设置CodeDeploy,但我发现了一些问题.

我已经在政策service role文档中提到过了AWSCodeDeployRole.

在我的代码部署应用程序创建过程中,我遇到了一个问题:

Cannot assume role provided.
Run Code Online (Sandbox Code Playgroud)

正如我所看到的,我的角色AWSCodeDeployRole拥有很多自动缩放权限,但我不希望这样:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "autoscaling:CompleteLifecycleAction",
        "autoscaling:DeleteLifecycleHook",
        "autoscaling:DescribeAutoScalingGroups",
        "autoscaling:DescribeLifecycleHooks",
        "autoscaling:PutLifecycleHook",
        "autoscaling:RecordLifecycleActionHeartbeat",
        "autoscaling:CreateAutoScalingGroup",
        "autoscaling:UpdateAutoScalingGroup",
        "autoscaling:EnableMetricsCollection",
        "autoscaling:DescribeAutoScalingGroups",
        "autoscaling:DescribePolicies",
        "autoscaling:DescribeScheduledActions",
        "autoscaling:DescribeNotificationConfigurations",
        "autoscaling:DescribeLifecycleHooks",
        "autoscaling:SuspendProcesses",
        "autoscaling:ResumeProcesses",
        "autoscaling:AttachLoadBalancers",
        "autoscaling:PutScalingPolicy",
        "autoscaling:PutScheduledUpdateGroupAction",
        "autoscaling:PutNotificationConfiguration",
        "autoscaling:PutLifecycleHook",
        "autoscaling:DescribeScalingActivities",
        "autoscaling:DeleteAutoScalingGroup",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceStatus",
        "ec2:TerminateInstances",
        "tag:GetTags",
        "tag:GetResources",
        "sns:Publish",
        "cloudwatch:DescribeAlarms",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:DescribeInstanceHealth",
        "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
        "elasticloadbalancing:DeregisterInstancesFromLoadBalancer"
      ],
      "Resource": "*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

在一些谷歌搜索期间,我发现CodeDeploy应用程序可能期望类似于:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [ …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services aws-code-deploy

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

Python opencv:如何使用卡尔曼滤波器

我正在使用 Python 进行人脸识别。

我有以下代码:

from sklearn.externals import joblib
clf = joblib.load('model/svm.pkl')
pca = joblib.load('model/pca.pkl')
face_cascade = cv2.CascadeClassifier("classifier/haarcascade_frontalface_alt.xml")
webcam = cv2.VideoCapture(0)
ret, frame = webcam.read()
while ret:
    start = time()
    origin = frame
    gray = cv2.cvtColor(origin, cv2.COLOR_BGR2GRAY)
    cv2.equalizeHist(gray,gray)

    faces = face_cascade.detectMultiScale(
        origin,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.cv.CV_HAAR_SCALE_IMAGE
    )
    for (x, y, w, h) in faces:
        cv2.rectangle(origin, (x, y), (x+w, y+h), (0, 255, 0), 2)
        face = gray[y:y+h , x:x+w]
        cv2.equalizeHist(face,face)

        face_to_predict = cv2.resize(face,(100, 100),interpolation = cv2.INTER_AREA)

        img = face_to_predict.ravel()
        principle_components = …
Run Code Online (Sandbox Code Playgroud)

python opencv face-recognition kalman-filter

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

Python正则表达式:仅精确匹配

我有一个非常简单的问题,但我找不到答案.

我有一些字符串:

test-123
Run Code Online (Sandbox Code Playgroud)

smart如果此字符串与我的条件完全匹配,我想要一些正则表达式进行验证.

我希望有一个像这样的字符串:

test-<number>
Run Code Online (Sandbox Code Playgroud)

数字应包含数字上1到*的元素.

我正在尝试做这样的事情:

import re
correct_string = 'test-251'
wrong_string = 'test-123x'
regex = re.compile(r'test-\d+')
if regex.match(correct_string):
    print 'Matching correct string.'
if regex.match(wrong_string):
    print 'Matching wrong_string.'
Run Code Online (Sandbox Code Playgroud)

所以,我可以看到两个消息(匹配正确和错误的字符串),但我真的希望只匹配正确的字符串.

此外,我试图使用search方法而不是match没有运气.

想法?

python regex

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

检查命令错误是否包含子字符串

我有很多bash命令.其中一些因各种原因而失败.我想检查一些错误是否包含子字符串.

这是一个例子:

#!/bin/bash

if [[ $(cp nosuchfile /foobar) =~ "No such file" ]]; then
    echo "File does not exist. Please check your files and try again."
else
    echo "No match"
fi
Run Code Online (Sandbox Code Playgroud)

当我运行它时,错误被打印到屏幕上,我得到"不匹配":

$ ./myscript
cp: cannot stat 'nosuchfile': No such file or directory
No match
Run Code Online (Sandbox Code Playgroud)

相反,我希望捕获错误并符合我的条件:

$ ./myscript
File does not exist. Please check your files and try again.
Run Code Online (Sandbox Code Playgroud)

如何正确匹配错误消息?

PS我找到了一些解决方案,您对此有何看法?

out=`cp file1 file2 2>&1`
if [[ $out =~ "No such file" ]]; then
    echo "File does not exist. Please …
Run Code Online (Sandbox Code Playgroud)

bash

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

Python setup.py:缺少一些文件

我的项目结构如下所示:

package1/  # a lot of files, submodules here.
package2/  # a lot of files, submodules here.
package3/  # a lot of files, submodules here.
tests/
setup.py
Run Code Online (Sandbox Code Playgroud)

我有一个setup.py类似的测试:

setup(
    name='MyPackage',
    packages=find_packages(exclude=['tests']),
    package_data={
        'package': ['./path/*.xsd'],
    },
    include_package_data=True,
    py_modules=['package1'],
    version=__version__,
    description='My description',
    classifiers=[
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3',
    ],
    zip_safe=False,
    author='Me',
    author_email='example@example.com',
    url='http://www.example.com/',
    keywords=['Keyword1', 'Keyword2'],
    scripts=['./script1.py', './script2.py'],
    install_requires=[
        'isodate',
        'pycurl',

    ],
    extras_require={':python_version < "3.0"': ['enum34', 'future']}
)
Run Code Online (Sandbox Code Playgroud)

我按以下方式使用它:

python setup.py bdist_wheel -d . …
Run Code Online (Sandbox Code Playgroud)

python pip package python-wheel

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

Dockerfile:跳过私钥的密码

我正在使用私钥从我的 Docker 文件中的 Github 下载我的存储库。我有这样的事情:

RUN mkdir -p /root/.ssh && echo "$MY_PRIVATE_KEY" >/root/.ssh/id_rsa &&    chmod 0600 /root/.ssh/id_rsa &&    ssh-keyscan github.com >> /root/.ssh/known_hosts &&    cat /root/.ssh/known_hosts &&    ssh -vvv git@github.com &&    pip install git+ssh://git@github.com/my_project.git@v1.0.0 &&    rm /root/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

哪里MY_PRIVATE_KEY有争论。我无法重新创建此密钥。我的问题是在连接过程中出现以下错误: key_load_private_type: incorrect passphrase supplied to decrypt private key

是否有可能以某种方式跳过密码?

github ssh-keys docker dockerfile

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

AWS:代码部署安装失败

我正在尝试通过AWS从github存储库设置部署。

在这些步骤中,我遇到了一个问题:

http://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html#codedeploy-agent-operations-install-linux
Run Code Online (Sandbox Code Playgroud)

该命令失败:

wget https://bucket-name.s3.amazonaws.com/latest/install
Run Code Online (Sandbox Code Playgroud)

它返回:

[ec2-user@ip-172-31-11-55 ~]$ wget https://bucket-name.s3.amazonaws.com/latest/install
--2017-06-04 10:18:18--  https://bucket-name.s3.amazonaws.com/latest/install
Resolving bucket-name.s3.amazonaws.com (bucket-name.s3.amazonaws.com)... 54.231.114.146
Connecting to bucket-name.s3.amazonaws.com (bucket-name.s3.amazonaws.com)|54.231.114.146|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2017-06-04 10:18:18 ERROR 403: Forbidden.
Run Code Online (Sandbox Code Playgroud)

我已为我的实例允许所有端口用于入站/出站流量。

怎么了?

rhel amazon-web-services aws-code-deploy

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

MySQL 容器:授予访问权限并创建新映像

我正在尝试在我的主机系统中使用 MySQL docker 容器来使安装和配置过程更加轻松快捷。

所以,我从以下位置提取了一个图像:https : //hub.docker.com/r/mysql/mysql-server/

然后基于此图像启动容器..

容器启动正常,但我无法从我的主机系统连接到这个数据库(如果我尝试从容器连接,一切正常)。它失败并显示一条消息:

ERROR 1130 (HY000): Host '<here goes my IP>' is not allowed to connect to this MySQL server
Run Code Online (Sandbox Code Playgroud)

所以,据我所知,我的root用户没有足够的权限。

我已经进入了我的容器:

docker exec -it mysql bash
Run Code Online (Sandbox Code Playgroud)

连接到数据库:

mysql -uroot -ppassword
Run Code Online (Sandbox Code Playgroud)

更新了我的 root 用户的权限:

use mysql;
UPDATE user SET Host="%" WHERE User='root';
Run Code Online (Sandbox Code Playgroud)

更新好了

比我决定以某种方式保存我更新的图像......我找到了这个指南:

http://docs.oracle.com/cd/E52668_01/E75728/html/section_c5q_n2z_fp.html
Run Code Online (Sandbox Code Playgroud)

执行后:

docker stop mysql
docker commit -m "Fixed permissions for root user" -a "Few words about author" `docker ps -l -q` myrepo/mysql:v1
docker rm mysql
docker …
Run Code Online (Sandbox Code Playgroud)

mysql docker dockerhub

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