簡體   English   中英

Django和Bad Request(400)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM