W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
?ALLOWED_HOSTS
?配置在運(yùn)行測試時被驗證。這允許測試客戶端區(qū)分內(nèi)部和外部 URL。
支持多租戶或根據(jù)請求的主機(jī)改變業(yè)務(wù)邏輯的項目,以及在測試中使用自定義主機(jī)名的項目,必須在 ?ALLOWED_HOSTS
?中包含這些主機(jī)。
第一個選項是將主機(jī)添加到你的配置文件中。例如,?docs.djangoproject.com
? 的測試套件包括以下內(nèi)容:
from django.test import TestCase
class SearchFormTestCase(TestCase):
def test_empty_get(self):
response = self.client.get('/en/dev/search/', HTTP_HOST='docs.djangoproject.dev:8000')
self.assertEqual(response.status_code, 200)
同時配置文件包含項目支持的域列表:
ALLOWED_HOSTS = [
'www.djangoproject.dev',
'docs.djangoproject.dev',
...
]
另一個選項是使用 ?override_settings()
? 或 ?modify_settings()
? 將所需的主機(jī)添加到 ?ALLOWED_HOSTS
? 中。這個選項在不能打包自己配置文件的獨(dú)立應(yīng)用中可能比較好,或者對于域列表不是靜態(tài)的項目(例如,多租戶的子域)。例如,你可以為域 ?http://otherserver/
? 寫一個測試,如下所示:
from django.test import TestCase, override_settings
class MultiDomainTestCase(TestCase):
@override_settings(ALLOWED_HOSTS=['otherserver'])
def test_other_domain(self):
response = self.client.get('http://otherserver/foo/bar/')
當(dāng)運(yùn)行測試時,禁用 ?ALLOWED_HOSTS
?檢查ALLOWED_HOSTS = ['*']
?,可以防止測試客戶端在遵循重定向到外部 URL 時發(fā)出有用的錯誤信息。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: