新聞中心
?ALLOWED_HOSTS ?配置在運行測試時被驗證。這允許測試客戶端區(qū)分內(nèi)部和外部 URL。

創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目網(wǎng)站建設、網(wǎng)站設計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元長寧做網(wǎng)站,已為上家服務,為長寧各地企業(yè)和個人服務,聯(lián)系電話:18982081108
支持多租戶或根據(jù)請求的主機改變業(yè)務邏輯的項目,以及在測試中使用自定義主機名的項目,必須在 ?ALLOWED_HOSTS ?中包含這些主機。
第一個選項是將主機添加到你的配置文件中。例如,?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()? 將所需的主機添加到 ?ALLOWED_HOSTS? 中。這個選項在不能打包自己配置文件的獨立應用中可能比較好,或者對于域列表不是靜態(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/')當運行測試時,禁用 ?ALLOWED_HOSTS ?檢查ALLOWED_HOSTS = ['*']?,可以防止測試客戶端在遵循重定向到外部 URL 時發(fā)出有用的錯誤信息。
網(wǎng)站欄目:創(chuàng)新互聯(lián)Django4.0教程:Django4.0進階測試主題-測試與多主機名
本文鏈接:http://m.5511xx.com/article/codsecg.html


咨詢
建站咨詢
