小编ezv*_*ine的帖子

如何在 Ubuntu 21.10 上安装 python 3.6?

由于 Ubuntu 21.10 不再支持 python 3.6,通常的deadsnakes方法也不起作用。它给出以下错误。

E: The repository 'http://ppa.launchpad.net/deadsnakes/ppa/ubuntu impish Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

Run Code Online (Sandbox Code Playgroud)

ubuntu python-3.6

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

无法将空列表保存到 Django ArrayField

我有一个 Django 模型

from django.db import models
from django.contrib.postgres.fields import ArrayField


class Website(models.Model):
    id = models.BigAutoField(primary_key=True, verbose_name='ID')
    status = models.BooleanField(default=True)
    meta = ArrayField(base_field=models.CharField(max_length=200, null=True), default=list)

Run Code Online (Sandbox Code Playgroud)

我正在使用以下序列化程序将数据保存到数据库:

class WebsiteConfigSerializer(serializers.ModelSerializer):
    class Meta:
        model = Website
        fields = ('status', 'meta')
Run Code Online (Sandbox Code Playgroud)

当我尝试保存以下数据时,出现错误:

{
    "status": true,
    "meta": []
}

#ERROR:
# "meta : This list may not be empty."
Run Code Online (Sandbox Code Playgroud)

是否无法将空列表保存到ArrayField?当我根本不传递该字段时,存储的值是{NULL}。此外,在初始迁移期间,由于我添加了default值 as list,所以我所有现有条目的“元”值均为{}

如果根本不允许空列表值,那么为什么在初始迁移期间会保存它?

django postgresql django-models python-3.x django-rest-framework

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

在并发请求的情况下,将数据存储在 Django 应用程序的“线程本地存储”中是否安全?

我在很多地方都看到,使用线程本地存储来存储 Django 应用程序中的任何数据并不是一个好的做法。但这是我存储请求对象的唯一方法。我需要存储它,因为我的应用程序具有复杂的结构。而且我无法继续在每个函数调用或类初始化时传递请求对象。

我需要将请求对象中的 cookie 和标头传递给我在应用程序中不同位置进行的一些 api 调用。

我将此用作参考: https://blndxp.wordpress.com/2016/03/04/django-get-current-user-anywhere-in-your-code-using-a-middleware/

所以我正在使用中间件,如参考文献中所述。而且,这就是请求的存储方式

from threading import local
_thread_locals = local()
_thread_locals.request = request
Run Code Online (Sandbox Code Playgroud)

并且,这就是获取数据的方式:

getattr(_thread_locals, "request", None)
Run Code Online (Sandbox Code Playgroud)

那么存储在线程中的数据是否是该特定请求的本地数据呢?或者,如果同时发生另一个请求,它们是否都使用相同的数据?(这当然不是我想要的)

或者有没有新的方法来处理这个老问题(全局存储请求对象)

注意:我也在async我的 Django 应用程序中的某些地方使用(如果这很重要的话)。

python django python-multithreading python-3.x django-rest-framework

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

如果文件不存在,则毫无例外地从 GCS 中删除

我正在通过 python 调用 shell 脚本。

在我正在使用的脚本gsutil rmgsutil cp命令中。

但是,每当这两个命令中的任何一个在不存在的 gcp 路径上运行时,都会出现错误。

例如:当我尝试时:

gsutil rm -r gs://some-bucket/somepath-not-present/
Run Code Online (Sandbox Code Playgroud)

我收到错误:

CommandException: 1 files/objects could not be removed.
Run Code Online (Sandbox Code Playgroud)

最终脚本的返回码是1。尽管我的代码本来可以正常执行。我希望脚本在找不到路径时不会给出错误。

有什么办法可以绕过这个。我已经尝试||过linux,但似乎不起作用。

linux shell gsutil google-cloud-platform

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

如何处理数据中包含 \x00 (或 \u0000)的 API 响应(JSON),并使用 django 模型将数据存储在 Postgres 中?

我正在进行 api 调用,并尝试使用 Django 模型将其响应存储在 Postgres 中。这就是我一直在做的事情:

response = requests.post(url='some.url.com', data=json.dumps(data), headers={'some': 'header'})
response_data = json.loads(response.content.decode('utf-8'))
#handler is a object of a model
handler.api_response = response_data
handler.save()
Run Code Online (Sandbox Code Playgroud)

但是当我的 json 具有像'field_name': '\x00\x00\x00\x00\x00'. 它曾经给出以下错误:

DataError at /api/booking/reprice/
unsupported Unicode escape sequence
LINE 1: ... NULL, "api_status" = 0, "api_response" = '{"errorRe...
                                                             ^
DETAIL:  \u0000 cannot be converted to text.
CONTEXT:  JSON data, line 1: ..."hoursConfirmed": 0, "field_name":...
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法解决此问题:

response = requests.post(url='some.url.com', data=json.dumps(data), headers={'some': 'header'})
response_data = json.loads(response.content.decode('utf-8'))
#handler is a …
Run Code Online (Sandbox Code Playgroud)

python django postgresql django-models python-3.x

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