天天看點

00.Python manage.py shell和 Python的分析

環境:Python 2.7.6    django1.8.6

IDE:Pycharm

可是pycharm中啟動服務的時候報錯如下:

................

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before

accessing settings.

Process finished with exit code 1

于是乎在網上一頓谷歌呀,基本說的都是加入settings的環境變量于是我在views.py裡邊做了如下修改,加了以下兩行代碼

然後再次運作,顯示如下:

Process finished with exit code 0

可是在浏覽器中卻并不能通路

删除這兩行代碼,在指令行中運作 Python manage.py runserver   OK了

對于其中的原理不是很明白,于是又一頓谷歌呀

最終的發現是(以下為原文引用):

'  '   '

啟動python有兩種方式:python manage.py shell和python。

這兩個指令 都會啟動互動解釋器,但是manage.py shell指令有一個重要的不同: 在啟動解釋器之前,它告訴Django使用 哪個設定檔案。 Django架構的大部分子系統,包括模闆系統,都依賴于配置檔案;如果Django不知道使用哪 個配置檔案,這些系統将不能工作。

如果你想知道,這裡将向你解釋它背後是如何工作的。 Django搜尋DJANGO_SETTINGS_MODULE環境變 量,它被設定在settings.py中。例如,假設mysite在你的Python搜尋路徑中,那麼 DJANGO_SETTINGS_MODULE應該被設定為:’mysite.settings’。 

當你運作指令:python manage.py shell,它将自動幫你處理DJANGO_SETTINGS_MODULE。 在目前的這 些示例中,我們鼓勵你使用`` python manage.py shell``這個方法,這樣可以免去你大費周章地去配置那些你 不熟悉的環境變量。 

随着你越來越熟悉Django,你可能會偏向于廢棄使用`` manage.py shell`` ,而是在你的配置文 件.bash_profile中手動添加 DJANGO_SETTINGS_MODULE這個環境變量。

是以,另兩種解決方案就是:

1.使用 python manage.py shell啟動Python

2.在你的配置文 件.bash_profile中手動添加 DJANGO_SETTINGS_MODULE這個環境變量。

 '  '  '

看到這裡你是不是明白了些什麼......