小编Mih*_*ika的帖子

无法在正则表达式中检测到" - "字符

我试图测试一个角色是否是一个特殊角色.

当我编写以下代码时,它的' - '字符失败:

import re

s = '-'
regex = re.compile('[!@#$%^&*()-+]')

if regex.search(s) == None:
    print("Not found")
else:
    print("Found")
Run Code Online (Sandbox Code Playgroud)

输出>>未找到

但是,如果我在模式中更改' - '字符的位置如下(代码的第3行),它可以正常工作

import re 

s = '-'
regex = re.compile('[!@#$%^&*()+-]')

if regex.search(s) == None:
    print("Not found")
else:
    print("Found")
Run Code Online (Sandbox Code Playgroud)

输出>>找到

造成这种差异的原因是什么?我如何确保检测到这些字符?

python regex

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

单独蓝图中的错误处理程序不起作用

我目前正在使用 Flask 开发一个应用程序。每当遇到错误时,我都会使用 abort 引发错误,例如 abort(404)。

我创建了一个新的错误处理蓝图,并在错误蓝图中包含以下文件:

应用程序/错误/__init__.py

from flask import Blueprint

bp = Blueprint('errors', __name__)

from app.errors import handlers
Run Code Online (Sandbox Code Playgroud)

应用程序/错误/handlers.py

from app.errors import bp
from flask import jsonify, make_response


@bp.errorhandler(404)
def not_found_error():
    return make_response(jsonify({"error: ", "Not found"}), 404)
Run Code Online (Sandbox Code Playgroud)

我还注册了蓝图,如下:

应用程序/__init__.py

from app.errors import bp as errors_bp
app.register_blueprint(errors_bp)
Run Code Online (Sandbox Code Playgroud)

但是,当我遇到错误时,我收到的是 HTML 响应而不是 JSON 响应。如果我将错误处理程序包含在与 API 相同的蓝图中,它就可以正常工作。如何拥有单独的错误处理程序蓝图?

flask python-3.7

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

如何自定义 Kaminari URL 以仅包含某些参数?

我目前在我的项目中使用 kaminari 进行分页。除了页面参数之外,生成的 url 还包含其他参数。

例如,我使用以下内容生成下一页网址:

path_to_next_page(items, params: params)
Run Code Online (Sandbox Code Playgroud)

这给了我如下内容:

/items?param1=value1&page=1

但是,我只希望页面参数可见,而不是其他参数:

/项目?页=1

我尝试了以下代码,但它仍然为我提供了包含所有参数的 URL:

path_to_next_page(items, params: {page: params['page']})
Run Code Online (Sandbox Code Playgroud)

我也解决了这个问题,并对各个页面链接尝试了以下操作:

paginate items, params: {page: params['page']}
Run Code Online (Sandbox Code Playgroud)

但是,这也会生成包含所有参数的 URL。

有没有办法生成只包含页面参数的 URL?

ruby-on-rails kaminari

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

AttributeError: 模块“asyncio”没有属性“run”

我正在尝试使用 asyncio 运行以下程序:

import asyncio

async def main():
    print('Hello')
    await asyncio.sleep(1)
    print('World')

asyncio.run(main())
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

AttributeError: 模块“asyncio”没有属性“run”

python --version 给出:Python 2.7.8

python3 --version 给出:Python 3.7.1

我将脚本作为python3 script.py运行

关于如何在没有任何错误的情况下运行此程序的任何想法?

python-asyncio python-3.7

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

什么'null?','程序?' 和'符号?' 在下面的代码中表示什么?

我将通过以下文档来实现Python中的Lisp Interpreter:http://norvig.com/lispy.html

standard_env函数中,已经定义了一个字典,用于将某些符号或变量映射到它们相应的函数或值.但是,我无法理解env词典中的以下条目:

env = {}
env.update({
    'equal?':  op.eq, 
    'list?':   lambda x: isinstance(x,list),
    'null?':   lambda x: x == [], 
    'number?': lambda x: isinstance(x, (int, float)),   
    'procedure?': callable,
    'symbol?': lambda x: isinstance(x, str),
})
Run Code Online (Sandbox Code Playgroud)

什么是'?' 在关键意义的最后?您能否提供一些使用这些条目的例子?

lisp python

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