小编Jas*_*n S的帖子

如何判断上下文管理器是可重用还是可重入?

Python contextlib文档指出,上下文管理器可以是单一用途,可重用或可重入的.可重入的with语句可用于多个语句,包括嵌套语句; 可重用但不可重入的可以在多个with语句中使用但不能嵌套.提到了几个例子.

https://docs.python.org/3/library/contextlib.html#reentrant-context-managers

但是,其他上下文管理器的文档并不总是提到它们是什么.例如,patch上下文管理器的文档unittest.mock根本没有提到这一点.

通常,您会在源代码中查看以确定上下文管理器是单用,可重用还是可重入?

python

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

在一个语句中打印多行而不使用前导空格

因此,对于我的第一个项目,它是一个简单的程序,可以打印您所在的名称课程以及您去过的高中.弄乱我的一件事就是其中一个我必须使用一个print()语句来完成所有这些并且我需要格式化它以便每条信息都在不同的行上.

我想要的格式:

first_name, last_name
course_id, course_name, email
school
Run Code Online (Sandbox Code Playgroud)

但我得到的是

first_name, last_name
 course_id, course_name, email
 school
Run Code Online (Sandbox Code Playgroud)

如何删除空间?

我的代码如下:

first_name = 'Daniel'
last_name = 'Rust'
course_id = 'Csci 160'
course_name = 'Computer Science 160'
email = 'blah@gmail.com'
school= 'Red River Highschool'

#variables printed for B
print(first_name, last_name, '\n', course_id, course_name, email, '\n', school, '\n')
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

Python对PEM + RSA + DES3的支持在哪里?

我需要一个支持PEM文件以及RSA签名和DES3加密的Python库.pycrypto似乎不支持PEM,它的加载现有密钥的机制没有文档和含义.m2crypto似乎不支持DES/DES3,奇怪的是.

我一直在运行一个openssl子进程,但我宁愿有一些内置的东西,最好是快速的.这存在吗?

(如果不这样,我就会犹豫不决,但是有没有足够高级别的C apis,我可以编写一个特殊用途的扩展而不会自杀/引入漏洞?)

python cryptography m2crypto pycrypto

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

从 Django 缓存中删除所有匹配的键

我需要遍历我的服务器缓存,它是一个LocMemCache对象,并删除缓存中以 string 开头的每个键'rl:'。据我了解,缓存 API django 提供的唯一功能是 get、set 和 delete。这是我正在尝试做的一个粗略的例子:

def clear_ratelimit_cache():
    if any('rl:' in s for s in cache.get(s)): 
        log.info(
            'FOUND SOMETHING') 
        cache.delete(*something else here*)
Run Code Online (Sandbox Code Playgroud)

但是,尝试这样做会给我一个NameError,说明global name 's' is not defined. 另外必须注意的是缓存是不可迭代的。有没有人以类似的方式使用缓存,并有建议?

python django caching

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

如何在 Flask 应用程序中运行后台控制任务?

语境

我在一家逃脱游戏公司工作。

我们目前有一个控制游戏的 Windows 应用程序:

  • 它运行一个大循环,检查所有传感器的所有状态(通过查询 PC 的串行端口),做出决策并向同一串行端口发送命令。
  • 它有一个 GUI,游戏管理员可以在其中监视游戏的状态并在需要时发送手动命令以绕过某些游戏逻辑。

它工作得很好,但出于稳定性、更新噩梦等原因,我们希望针对该特定应用程序放弃 Windows。我们希望在 Linux 上运行这一切。

该项目

理想的系统是运行游戏的 PC 是无头的,并且逃生室软件使用网络界面进行远程控制。这比目前运营商必须使用Windows远程桌面远程控制游戏PC的情况要好。

我想要某种 RESTful API,可以通过某些 JS 网页查询来显示系统状态并向其发送命令。

我必须用 Python 来完成服务器部分。

但是,我不知道如何处理该系统。

一方面,我将拥有一个控制现实世界事物的软件,并且显然在给定时间仅管理一款游戏。基本上是一个大的、非阻塞的、始终运行的循环。

另一方面,我将有一个 REST API 来向正在运行的游戏发送命令。如果我看一下 Web 框架,例如 Flask,它提供 RESTful API,但它被设计为同时处理多个连接,并使它们基本上相互隔离。

我不知道如何使该网络部分与游戏系统部分进行讨论。

正如您所猜到的,我根本不是专家。我希望系统尽可能简单,以使其易于管理和理解。

这里最好的(就简单性而言)方法应该是什么?

我很难拥有两个应用程序,一个运行游戏,另一个运行网络服务器,通过某种进程间通信发送命令和接收状态。但看起来很复杂。

一个梦想是能够在运行游戏、发送串行端口请求并遵循游戏脚本的 Flask 框架内执行某种后台任务。同时,当收到REST请求时,请求的回调函数将访问后台任务的变量来收集游戏的状态并做出相应的回复。

但我不知道如何做到这一点。我什至不知道谷歌搜索什么关键字才能知道如何做到这一点。这里是否有一个常见的模式,并且受到基本框架的支持?还是我在重新发明轮子?

python linux rest flask

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

标签 统计

python ×5

caching ×1

cryptography ×1

django ×1

flask ×1

linux ×1

m2crypto ×1

pycrypto ×1

python-3.x ×1

rest ×1