问题是,运行
django server
后,可以通过static file
访问url
,但在unitest environment
中却访问不到。
例如,假设一个文件存储在以下路径中
'MAPPER #<- project dir
|-datasets #<-app name
|-static
|-datasets
|-images
|-Recursion Cellular Image Classification.jpeg
from django.test import Client
client = Client()
res_redirect = self.client.get(res.url)
我尝试使用
requests.get
,但没有成功
requests.get(http://localhost:8000/static/datasets/static/datasets/images/Recursion Cellular Image Classification.jpeg)
所以这是我的问题,我如何通过
unittest env
中的 url 访问文件
您需要进行 URL 编码才能正确处理 URL 中的空格。 [空格] 字符是 %20,例如,
requests.get(
'http://localhost:8000/static/datasets/static/datasets/images/Recursion%20Cellular%20Image%20Classification.jpeg'
)
(不要忘记引号)
但是,当您使用属性或字段时,
res.url
您需要将其传递给函数以对其进行 urlEncode。由于您已经在使用 requests
,您可以使用:
#safe argument allows the / and : in http://localhost:80000 to be unencoded
encoded_url = requests.utils.quote(res.url, safe="/:")
requests.get(encoded_url)