小编And*_*ara的帖子

为什么\ x00没有被repr转换为\ 0

这是关于Python的repr的一个有趣的奇怪之处:

制表符\x09表示为\t.但是,此约定不适用于null终止符.

为什么\x00表示为\x00,而不是\0

示例代码:

# Some facts to make sure we are on the same page
>>> '\x31' == '1'
True
>>> '\x09' == '\t'
True
>>> '\x00' == '\0'
True

>>> x = '\x31'
>>> y = '\x09'
>>> z = '\x00'
>>> x
'1' # As Expected
>>> y
'\t' # Okay
>>> z
'\x00' # Inconsistent - why is this not \0
Run Code Online (Sandbox Code Playgroud)

python repr

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

Django Rest 框架权限和所有权

我有两个简单的模型

class User(AbstractUser): 
    pass


class Vacation(Model):
    id    = models.AutoField(primary_key=True)
    owner = models.ForeignKey(User, on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)

我不太确定对 Django Rest Framework 进行用户权限的可扩展方式是什么。特别是:

  • 用户应该只能看到自己的假期
  • /vacation端点上,用户将看到一个过滤列表
  • /vacation/$id端点上,用户将获得一个403if not owner
  • 用户应该只能创建/更新假期,只要他们是该对象的所有者(通过外键)

以面向未来的方式实现这一目标的最佳方法是什么?如果进一步说:

  • 我添加了不同的用户类型,可以查看所有假期,但只能创建/更新/删除自己的
  • 我添加了另一个模型,用户可以读,但不能写

谢谢!

python django django-rest-framework

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

Django 在 /src/project 之外提取测试

我试图遵循我经常在 GitHub 存储库中找到的最佳实践:我希望在项目的顶层有一个 /src 和一个 /test 文件夹。(随机示例https://github.com/bitcoin/bitcoin)。我不确定如何配置 Django 来接受这一点。

特别是,Django 希望测试位于项目文件夹内,但理想情况下,这些测试应位于 /src/project_name 之外和 /test 内。

非常感谢任何建议。太感谢了!

project_root
  |-- src
  |   |-- project_name
  |       |-- app_name
  |       |   |-- views.py
  |       |   |-- serializers.py
  |       |   |-- etc...
  |       |-- manage.py
  |-- test
      |-- project_name
          |-- test_feature1.py
          |-- test_feature2.py
Run Code Online (Sandbox Code Playgroud)

python testing django

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

在包装bash脚本中设置管道

假设我有一个我调用的python程序

python main.py
Run Code Online (Sandbox Code Playgroud)

我想将这个程序包装成一个调用的shell脚本execute,可以事先做一些设置

#!/bin/bash

# Do something interesting
python main.py
Run Code Online (Sandbox Code Playgroud)

现在让我们说我想使用管道

./execute < inputData.txt > outputData.txt
Run Code Online (Sandbox Code Playgroud)

我应该如何将这些管道(或|管道)重定向到我的python脚本?

像下面的东西,但更通用(我不知道我的输入和输出文件的名称,或者是否有管道,也许我只是想要stdin/stdout)

python main.py < inputData.txt > outputData.txt
Run Code Online (Sandbox Code Playgroud)

一个快速的黑客就是让我的python可执行文件运行而不是将它包装在shell脚本中,但我更感兴趣的是学习管道.

bash shell redirect pipe child-process

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

Docker Compose 为 YAML 别名和锚点合并数组

我有以下损坏的 docker-compose 文件

version: '3.4'

x-vols1: &vols-1
    - /home/:/home/

x-vols2: &vols-2
    - /tmp/:/tmp/

services:
    app1:
        container_name: app1
        image: app1
        volumes:
            <<: *vols-1
    app2:
        container_name: app2
        image: app2
        volumes:
            <<: *vols-1
            <<: *vols-2
Run Code Online (Sandbox Code Playgroud)

这失败并出现以下错误

$ docker-compose -f test.yaml config
ERROR: yaml.constructor.ConstructorError: while constructing a mapping
  in "./test.yaml", line 14, column 13
expected a mapping for merging, but found scalar
  in "./test.yaml", line 4, column 7
Run Code Online (Sandbox Code Playgroud)

问题 1:如何合并数组docker-compose?我尝试使用的语法是用于合并字典的语法

问题2:如果没有办法合并数组,是否有解决方法?

用例:我有多个服务,其中一些映射一些卷,其他映射其他卷,其他映射所有卷。我不想重复自己。

谢谢!

yaml docker

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

将电子渲染器添加到Webpack中时,“需求未定义”

我正在开发一个电子应用程序。一切都很好,直到我想使用渲染器中的IPC调用某些本机功能。我知道,将以下行添加到Webpack配置中将使我能够在渲染器一侧导入电子。

module.exports = {
    // ...
    target: 'electron-renderer',
}
Run Code Online (Sandbox Code Playgroud)

添加此行时出现以下错误

Uncaught ReferenceError: require is not defined
Run Code Online (Sandbox Code Playgroud)

违规行是

module.exports = require("querystring");
Run Code Online (Sandbox Code Playgroud)

哪种方式有意义,因为浏览器无法理解“要求”。

请注意,如果没有electron-renderer目标,该应用程序将运行良好,但我无法做类似的事情

import {ipcRenderer} from 'electron';
Run Code Online (Sandbox Code Playgroud)

有什么想法我可能做错了吗?谢谢!

javascript webpack electron

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

flask-migrate 按字母顺序进行迁移

使用flask-migrateand flask-script,我设置了我的项目,这样我只需要做

python manage.py db migrate
Run Code Online (Sandbox Code Playgroud)

在迁移文件夹中,我得到了诸如

0f46602752b7_.py
8fdf8259859b_.py
Run Code Online (Sandbox Code Playgroud)

无法保证第一次迁移先于第二次迁移。Django 通过在所有迁移前添加一个自动递增的数字来解决这个问题。我们可以告诉烧瓶迁移 / alembic 做同样的事情吗?

理想情况下,上面示例中的两个文件将是

001_8fdf8259859b_.py
002_0f46602752b7_.py
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy alembic

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