環境:Python 2.7.6 django1.8.6
IDE:Pycharm
編寫了一個模板,數據庫連接的是MySQL數據庫(具體配置參考http://blog.csdn.net/gamer_gyt/article/details/49976119)
可是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裏邊做了如下修改,加了以下兩行代碼
from django.conf import settings
settings.configure()
然後再次運行,顯示如下:
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這個環境變量。
' ' '
看到這裏你是不是明白了些什麼......
參考: