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