小编Mat*_*att的帖子

Flask PyMongo 字符串返回 ObjectID

我正在使用带有 pymongo 的烧瓶,并且有一个案例,我的对象 ID 被转换为字符串。如何将其改回对象 ID 以便我可以使用 if 进行查询?

From : 59d7ef576cab3d6118805a20
type is <class 'str'>

To: ObjectId("59d7ef576cab3d6118805a20")
type is <class 'bson.objectid.ObjectId'>
Run Code Online (Sandbox Code Playgroud)

mongodb pymongo flask pymongo-3.x flask-pymongo

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

Flask Celery 任务锁定

我正在将 Flask 与 Celery 一起使用,并且我正在尝试锁定特定任务,以便一次只能运行一个任务。在 celery 文档中,它给出了执行此Celery 文档的示例,确保一次只执行一个任务。给出的这个例子是针对 Django 的,但是我正在使用 Flask 我已尽力将其转换为与 Flask 一起使用,但是我仍然看到具有锁的 myTask1 可以多次运行。

我不清楚的一件事是我是否正确使用缓存,我以前从未使用过它,所以所有这些对我来说都是新的。提到但未解释的文档中的一件事是

文档注释:

In order for this to work correctly you need to be using a cache backend where the .add operation is atomic. memcached is known to work well for this purpose.

我不确定这意味着什么,我应该将缓存与数据库结合使用,如果是这样,我该怎么做?我正在使用 mongodb。在我的代码中,我只是为缓存设置了这个设置,cache = Cache(app, config={'CACHE_TYPE': 'simple'})因为这就是 Flask-Cache 文档的Flask-Cache Docs 中提到的

我不清楚的另一件事是,当我myTask1从 Flask 路线内打电话给我时,我是否需要做任何不同的事情task1

这是我正在使用的代码示例。

from flask import (Flask, render_template, flash, redirect, …
Run Code Online (Sandbox Code Playgroud)

python celery flask celery-task flask-cache

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

GitHub API 获取前 100 名以外的所有贡献者提交活动

我正在使用下面的 GitHub API 调用,该调用从我们的存储库之一返回统计信息。该请求正在返回我需要的数据,但我遇到了此 API 调用的已知限制,即它只会显示存储库的前 100 位贡献者。我们有大约 500 名贡献者,所以我需要知道任何已知的解决方法来获取前 100 名贡献者之外的类似数据?我尝试附加?page=2但我也没有看到该工作。

这是我正在阅读的get-all-contributor-commit-activity的 GitHub 文档,以提出此​​请求。

获取请求 /repos/{owner}/{repo}/stats/contributors

JSON 返回:

[
    {
        "total": 10,
        "weeks": [
            {
                "w": 1483833600,
                "a": 0,
                "d": 0,
                "c": 0
            }
        ],
        "author": {
            "login": "<some user>"
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

git rest github github-api

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

python 导入作为变量名

我想使用带有变量名的导入。例如我想做这样的事情

from var import my_class
Run Code Online (Sandbox Code Playgroud)

我浏览了 python文档,但似乎有点令人困惑。我还看到了一些关于堆栈溢出的其他帖子,给出了这样的例子

import importlib
my_module = importlib.import_module("var, my_class)
Run Code Online (Sandbox Code Playgroud)

第二个例子在一定程度上确实有效。我在这里看到的唯一问题 var 是导入的,但我在 python 的命名空间中没有看到 my_class 的属性。我如何将这等同于我的原始示例

from var import my_class
Run Code Online (Sandbox Code Playgroud)

python-import python-3.x

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

Flask python 列表到 javascript

我正在使用 python Flask Temple 来构建一个网站。我有一个例子,我想将 python 列表发送到 java 脚本。python 列表包含三个对象,但是当我在 java 脚本环境中执行 list1.length 时,我看到该列表的长度是 23。这很可能是因为 java 脚本将其识别为字符串。我的问题是如何让 python 列表在传递到 javascript 后保持列表状态?

# my route with python list1
@app.route('/chart_sandbox')
def chart_sandbox():

    list1 = ['abc', 'def', 'hij']

    return render_template("chart_sandbox.html", list1=json.dumps(list1))




# My Java script
<script type="text/javascript">

    var list1 = '{{list1|tojson}}'
    var listLength = list1.length


    document.write(listLength)
    document.write(list1)

</script>

# this is what is returned to me. As you can see java script length is seen 
#as 23 instead of 3
23"["abc", "def", "hij"]"
Run Code Online (Sandbox Code Playgroud)

javascript python flask

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

mongodb 通配符匹配特定键的所有值

我想弄清楚如何匹配一个键并返回该键的所有值。是否可以将值作为通配符给出?我想在值上使用通配符返回该特定键的所有内容。

db.collection.find({"key" :"*"})
Run Code Online (Sandbox Code Playgroud)

此外,我希望这也能返回整个集合,该集合的键也与通配符值匹配。

mongodb pymongo mongodb-query pymongo-3.x

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

python3.4 安装 Flask 给出与 Jinja2 要求相关的错误消息

我正在尝试安装 Flask,但是出现以下错误。它似乎与 Jinja2 有关,但是当我在 Jinja 上执行 pip list 和 grep 时,您可以看到我已经手动安装了它,但仍然收到此错误消息。任何人都知道出了什么问题以及为什么我无法安装 Flask

  Could not find a version that satisfies the requirement Jinja2>=2.10 (from flask) (from versions: 2.7.3, 2.8)
No matching distribution found for Jinja2>=2.10 (from flask)
Run Code Online (Sandbox Code Playgroud)

完整安装消息

pip install flask
Looking in indexes: http://pyats-pypi.cisco.com/simple
Collecting flask
  Downloading https://files.pythonhosted.org/packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl (91kB)
    100% |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 92kB 9.3MB/s 
Collecting Werkzeug>=0.14 (from flask)
  Downloading https://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl (322kB)
    100% |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 327kB 12.5MB/s 
Collecting Jinja2>=2.10 (from flask)
  Could not find a version that satisfies the requirement Jinja2>=2.10 (from flask) …
Run Code Online (Sandbox Code Playgroud)

python jinja2 flask python-3.x

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

访问 Templete 内的 Jinja2 dict_keys 值

我试图找出为什么在 Jinja2 中以下代码不起作用。我正在 Jinja2 中设置字典的键,该字典只有一个键,我想访问键名称,但是调用tc_class_nameJinja2 中的变量仅返回以下内容dict_keys(['TestEVPNSingleFlow']))我尝试使用列表索引{{tc_class_name[0]}),但由于某些原因什么也不返回。不过,我尝试在 Python 中执行此操作,并且使用列表索引有效。另外,如果我执行 Jinja2 for 循环,tc_class_name它确实有效,但更喜欢更好的解决方案,因为如果我使用 Jinja2 for 循环,我会遇到其他问题

Jinja2 代码

{% set tc_class_name = chart_data[0]['TestCaseData'].keys() %}
{{tc_class_name})

# returning the following when i print out tc_class_name variable inside the HTML
# dict_keys(['TestEVPNSingleFlow']))
Run Code Online (Sandbox Code Playgroud)

普通Python代码

In [17]: tc_class_name = chart_data[0]['TestCaseData'].keys()

# This is what I am trying to do via Jinja2 not sure why this is not working for Jinja
In [19]: tc_class_name[0]
Out[19]: 'TestEVPNSingleFlow'
Run Code Online (Sandbox Code Playgroud)

python jinja2 flask

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

在c代码的for循环中重置变量

我正在尝试编写一些C代码来增加IP地址.我希望其中一个变量"j"在达到256后重置为0,因为每个八位字节只有255个ip地址.我的问题是我似乎无法让"j"回到0.任何想法我做错了什么?

int main()
{

    int breakCount = 300;

    int j = 0;
    int x = 0;

    for(int i = 0; i < breakCount; i++) 
    {
        printf("class-map type traffic match-all cm%d\n",i);
        printf("match source-address ipv4 100.%d.%d.0\n",x,j);

        j++;

        if (j == 256)
        {
            x++;

            int j = 0;
        }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

/*代码片段输出*/

match source-address ipv4 100.0.253.0
class-map type traffic match-all cm254
match source-address ipv4 100.0.254.0

class-map type traffic match-all cm255
match source-address ipv4 100.0.255.0

class-map type traffic match-all cm256
match source-address …
Run Code Online (Sandbox Code Playgroud)

c pointers for-loop

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