[英]Django and Bad Request (400)
我創建了新的django項目; 添加到我的settings.py:
DEBUG = False
ALLOWED_HOSTS= [
'localhost',
'my_site.com'
]
創建了app test_view
; 將hello_world
添加到test_view.views
from django.http.response import HttpResponse
def hello_world(request):
return HttpResponse('Hello World!!!')
添加測試路線到urls.py url(r'test/', 'test_view.views.hello_world')
; 修復/ etc / hosts
127.0.0.1 localhost my_site.com
現在,當我試圖訪問http://my_site.com:8000/test/
django返回Bad Request(400)。 但是當url是http://localhost:8000/test/
我可以看到我的Hello World頁面。 有什么不對?
UPD:與DEBUG = True
相同的結果
UPD2:
另一個工作主機名是ubuntu-virtualbox
(計算機名稱)。 但即使我將計算機的名稱更改為my_site
,ubuntu-virtualbox仍然可用,my_site返回Bad Request (400)
可能是因為某些系統設置? (它在virtualbox中是干凈的ubuntu)。 或者也許是virtualenv的問題? 有沒有辦法追蹤錯誤?
看起來django可以看到請求是否未通過dns服務器傳遞。 bind9的安裝和配置而不是/ etc / hosts中的更改解決了這個問題。
它可能是一個糟糕的Cookie。 嘗試刪除它們。
您的主機文件中需要另一行。
127.0.0.1 localhost
127.0.0.1 my_site.com
然后在你的ALLOWED_HOSTS
......
ALLOWED_HOSTS = [
'localhost',
'.my_site.com', # not 'my_site.com'
]
此外,當您使用python manage.py runserver運行站點時,從虛擬機運行站點時,這可能很重要,請按此運行...
python manage.py runserver virtual.server.ip.address:8000
顯然用該虛擬機的實際IP地址替換'virtual.server.ip.address'。
我打印*DEBUG = None*
我的django工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.