小编Jam*_*Lin的帖子

Python str(u'a')和u'a'.encode('utf-8')之间的区别是什么?

作为标题,是否有理由不使用str()将unicode字符串转换为str?

>>> str(u'a')
'a'
>>> str(u'a').__class__
<type 'str'>
>>> u'a'.encode('utf-8')
'a'
>>> u'a'.encode('utf-8').__class__
<type 'str'>
>>> u'a'.encode().__class__
<type 'str'>
Run Code Online (Sandbox Code Playgroud)

更新:谢谢你的答案,也不知道我是否使用特殊字符创建一个字符串它会自动转换为utf-8

>>> a = '€'
>>> a.__class__
<type 'str'>
>>> a
'\xe2\x82\xac'
Run Code Online (Sandbox Code Playgroud)

也是python 3中的Unicode对象

python unicode

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

Python图像库(PIL),如何将图像压缩成所需的文件大小?

我要求压缩文件大小小于500kb的任何上传图像,我在谷歌上搜索过,我只能看到:

 >>> foo = foo.resize((160,300),Image.ANTIALIAS)
 >>> foo.save("path\\to\\save\\image_scaled.jpg",quality=95)
Run Code Online (Sandbox Code Playgroud)

如果我采用这种方法,我将不得不在压缩后检查图像是否小于500kb,如果不是那么则去降低质量和尺寸.

有没有更好的方法呢?

python compression image

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

如何模拟另一个模块中使用的django设置属性?

让我们说模块a代码:

from django.conf import settings
print settings.BASE_URL # prints http://example.com
Run Code Online (Sandbox Code Playgroud)

tests.py我想嘲笑BASE_URLhttp://localhost

我尝试过以下方法:

with mock.patch('django.conf.settings.BASE_URL', 'http://localhost'):
    pass

with mock.patch('a.settings.BASE_URL', 'http://localhost'):
    pass

from a import settings

with mock.patch.object(settings, 'BASE_URL', 'http://localhost'):
    pass

import a

with mock.patch.object(a.settings, 'BASE_URL', 'http://localhost'):
    pass
Run Code Online (Sandbox Code Playgroud)

以上都没有奏效.

python mocking

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

Android谷歌MAPVIEW的默认标记?

只是想知道我是否可以在MAPVIEW中使用标准/默认覆盖/标记?

我一直在网上搜索,所有教程都谈到扩展叠加并将自定义图像放在上面.

有更简单的方法吗?我只想要一个标记,没什么特别的.

问候

詹姆士

android android-mapview

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

具有unique_together的Django多态模型

假设我有这些基本模型:

class Trackable(PolymorphicModel):
    uuid = UUIDField(unique=True)
    created_by = models.ForeignKey(settings.AUTH_USER_MODEL)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)

儿童模型扩展了它:

class Like(Trackable):
    content = models.ForeignKey(Content, related_name='likes')

    class Meta:
        unique_together = ['content', 'created_by']
Run Code Online (Sandbox Code Playgroud)

当我运行迁移时,它抱怨:

django.db.models.fields.FieldDoesNotExist: Like has no field named u'created_by'
Run Code Online (Sandbox Code Playgroud)

django django-models

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

为什么等待仅在javascript中的异步函数中起作用?

仅仅阅读了本教程,它就使我难以理解为什么await仅在async功能上起作用。

从教程中:

如前所述,await仅在异步功能内起作用。

据我了解,async将函数返回对象包装到Promise中,以便调用者可以使用.then()

async function f() {
  return 1;
}

f().then(alert); // 1
Run Code Online (Sandbox Code Playgroud)

await只是等待诺言在async功能内解决。

async function f() {

  let promise = new Promise((resolve, reject) => {
    setTimeout(() => resolve("done!"), 1000)
  });

  let result = await promise; // wait till the promise resolves (*)

  alert(result); // "done!"
}

f();
Run Code Online (Sandbox Code Playgroud)

在我看来,它们的用法没有关系,有人可以解释吗?

javascript asynchronous async-await

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

达芙妮不记录错误

我有以下系统配置

[Service]
WorkingDirectory=/srv/www/project_a/project_a/
Environment=JSON_SETTINGS=/srv/www/project_a/project_a.json
ExecStart=/srv/www/project_a/bin/daphne -b 0.0.0.0 -p 8000 project_a.asgi:channel_layer
Restart=always
KillSignal=SIGTERM
NotifyAccess=all
StandardOut=file:/tmp/daphne-access.log
StandardError=file:/tmp/daphne-error.log
Run Code Online (Sandbox Code Playgroud)

但是 daphne-access.log 和 daphone-error.log 文件都是空的,我认为 daphne 的默认注销会输出到 stdout 吗?

尝试过:--access-log=/tmp/daphne-access.log它适用于访问日志,但不知道在发生 django 错误时在哪里获取错误。

daphne

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

GIT 是否确保提交时间戳顺序?

假设两台计算机正在推送到同一个 git 存储库,计算机 A 具有当前日期时间,计算机 B 的日期时间设置为 1 年前。

假设计算机 A 推送了一些提交,计算机 B 检查它们并基于相同的分支和推送添加更多提交。

*A (dated 2020-07-28 by computer A push) ----> *B (dated 2019-07-28 by computer B)
Run Code Online (Sandbox Code Playgroud)

会发生什么?git 是否确保子提交的时间戳必须晚于父提交?

git

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

Python:如何编写补丁(swap)类

假设我在模块中有以下2个类 a

class Real(object):
    ...
    def print_stuff(self):
        print 'real'

class Fake(Real):
    def print_stff(self):
        print 'fake'
Run Code Online (Sandbox Code Playgroud)

在模块中b它使用Real该类

from a import Real
Real().print_stuff()
Run Code Online (Sandbox Code Playgroud)

如何修补补丁,以便在b导入Real时实际与它交换Fake

我试图在初始化脚本中这样做,但它不起作用.

if env == 'dev':
    from a import Real, Fake
    Real = Fake 
Run Code Online (Sandbox Code Playgroud)

我的目的是在开发模式下使用Fake类.

python

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

python版本中包含有序比较的实际含义是什么

我在约束文件中指定了这个

asgiref==3.5.0

当我在 docker 构建期间运行 pip3 install 时,它会抱怨

#12 24.67 ERROR: Cannot install -r /tmp/requirements.txt (line 16) because these package versions have conflicting dependencies.
#12 24.67 
#12 24.67 The conflict is caused by:
#12 24.67     django 3.2.11 depends on asgiref<4 and >=3.3.2
#12 24.67     The user requested (constraint) asgiref==3.5.0
#12 24.67 
#12 24.67 To fix this you could try to:
#12 24.67 1. loosen the range of package versions you've specified
#12 24.67 2. remove package versions to allow pip …
Run Code Online (Sandbox Code Playgroud)

python pip

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