我已经做了:
pipenv install django[argon2]
Run Code Online (Sandbox Code Playgroud)
这改变了我的Pipfile:
-django = "==2.1.5"
+django = {extras = ["argon2"],version = "*"}
Run Code Online (Sandbox Code Playgroud)
我想固定要求。首先,我将固定django到2.1.5:
django = {extras = ["argon2"],version = "==2.1.5"}
Run Code Online (Sandbox Code Playgroud)
怎么样argon2?那是单独的包裹吗?当我这样做时没有这样的包pip freeze:
$ pip freeze | grep -i argon2
argon2-cffi==19.1.0
Run Code Online (Sandbox Code Playgroud)
那是什么?我如何完全固定django[argon2]?
当向开发服务器发送请求时,我可以包含一个标头,如下所示:
Authorization: Token efc7fa291f4e320ff4a31cf9a11d6de3a366937cd1ec24e0a7ab68dafa38430f\r\n
Run Code Online (Sandbox Code Playgroud)
在 Django 内部会看到一个HTTP_AUTHORIZATION标头,我不确定它是在哪里生成的。
但是当使用Django测试客户端进行单元测试时:
from django.test import Client
c = Client()
response = c.get('/api/auth/user/', **{'Authorization': 'Token ' + token})
Run Code Online (Sandbox Code Playgroud)
Django 无法授权该请求。
如果我执行以下操作:
response = c.get('/api/auth/user/', **{'HTTP_AUTHORIZATION': 'Token ' + token})
Run Code Online (Sandbox Code Playgroud)
有用。
我想了解发生了什么事。
谁负责执行映射Authorization-> HTTP_AUTHORIZATION?
与这个问题相关:我正在使用Django 2.1.5,djangorestframework = "==3.9.0"和djangorestframework = "==3.9.0"
我定义了一个自定义异常:
>>> class MyException(Exception):
>>> pass
Run Code Online (Sandbox Code Playgroud)
我创建一个异常实例:
>>> a = MyException()
Run Code Online (Sandbox Code Playgroud)
我检查这是否是一个例外。正如预期的那样,它是:
>>> isinstance(a, Exception)
True
Run Code Online (Sandbox Code Playgroud)
但是如何检查该类是否是异常类呢?
>>> myclass = MyException
>>> isinstance(myclass, Exception)
False
Run Code Online (Sandbox Code Playgroud) I have the following script:
#!/bin/bash
set -e
function do_it {
rm this-file-does-not-exit
echo "Continuing ..."
echo "Done ..."
return 0
}
if do_it ; then
echo "Success"
else
echo "Error"
fi
echo "End of script"
Run Code Online (Sandbox Code Playgroud)
Which produces:
rm: cannot remove 'this-file-does-not-exit': No such file or directory
Continuing ...
Done ...
Success
End of script
Run Code Online (Sandbox Code Playgroud)
The function is not aborted because running the function in the if statement disables set -e for the function (and can not be enabled). This …
这是我的模型:
class Subscriber(models.Model):
...
tenant = models.ForeignKey(Tenant, on_delete=models.CASCADE, null=True)
...
Run Code Online (Sandbox Code Playgroud)
这是生成的 SQL,根据sqlmigrate(以及对数据库的手动检查):
ALTER TABLE `myapp_subscriber` ADD CONSTRAINT `myapp_subscriber_tenant_id_b52815ee_fk_myapp_tenant_id` FOREIGN KEY (`tenant_id`) REFERENCES `myapp_tenant` (`id`);
Run Code Online (Sandbox Code Playgroud)
我期待像这样:
CREATE TABLE child (
id INT,
parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id)
REFERENCES parent(id)
ON DELETE CASCADE
) ENGINE=INNODB;
Run Code Online (Sandbox Code Playgroud)
随着ON DELETE CASCADE.
MySql(MariaDB实际上)在我删除时抱怨:
SQL Error (1451): Cannot delete or update a parent row: a foreign key constraint fails
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为没有 ON DELETE CASCADE条款。
为什么 …
在外壳中:
$ date
Do 27. Jun 15:13:13 CEST 2019
Run Code Online (Sandbox Code Playgroud)
在Python中:
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2019, 6, 27, 15, 14, 51, 314560)
>>> a = datetime.now()
>>> a.strftime("%Y%m%d")
'20190627'
Run Code Online (Sandbox Code Playgroud)
获得与完全相同的输出date(包括区域设置的评估)所需的格式说明符是什么?