我遇到了标准日志记录模块的问题.如果我打开一个python2.7 shell并导入日志记录一切正常:
$ python
>>> import logging
>>>
Run Code Online (Sandbox Code Playgroud)
但是,如果我打开python3.4 shell并导入日志记录,我会收到以下错误:
$ python3.4
>>> import logging
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2222, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 2164, in _find_spec
File "<frozen importlib._bootstrap>", line 1940, in find_spec
File "<frozen importlib._bootstrap>", line 1916, in _get_spec
File "<frozen importlib._bootstrap>", line 1897, in _legacy_get_spec
File "<frozen importlib._bootstrap>", line 863, in spec_from_loader
File "<frozen importlib._bootstrap>", line 904, …
Run Code Online (Sandbox Code Playgroud) 我在Docker容器中有一个简单的Python脚本:
- 调用外部API
- 从API返回许可证文件
我希望能够将返回的许可证文件保存到docker容器内的目录中.
这就是我所做的:
r = requests.post("http://api/endpoint", headers=headers, data=data, auth=("", "")
f = open('test.lic', 'w+')
f.write(r.content)
f.close()
Run Code Online (Sandbox Code Playgroud)
我的理解是,这将创建一个test.lic
文件,如果一个文件尚不存在,或打开现有test.lic
文件,并将请求对象的内容写入test.lic
.但这不起作用.没有文件保存到Docker容器内的目录中.如果我从python shell运行这些行,它可以工作,所以我猜它与Docker容器内部有关.
我有一个Django应用程序,我试图添加Okta身份验证.我目前已经创建了一个自定义后端,它利用Okta API对用户进行身份验证:
class OKTABackend(ModelBackend):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def authenticate(self, username=None, password=None):
headers = {
'Authorization': 'SSWS {}'.format(<my OKTA API token>),
'Accept': 'application/json',
'Content-type': 'application/json'
}
authentication_payload = {
'username': username,
'password': password
}
r = requests.post(
<my OKTA app address>,
headers=headers,
data=json.dumps(authentication_payload)
)
try:
r.raise_for_status()
# code that finds/creates and returns user
except:
return None
Run Code Online (Sandbox Code Playgroud)
我有一个登录页面,其中包含一个获取用户名和密码的表单,并将信息传递给此后端进行身份验证.所有这些都有效.但是当我去OKTA网站并点击我的应用程序时,我希望它能够登录到应用程序.目前它只是重定向到我的登录页面.如何从OKTA网站启用登录到我的应用程序?