2011-03-23 66 views
9

我想指出一個新的Django項目中的作用,現在我必須選擇一個項目名稱,這樣我就可以鍵入:Django的:項目名稱

djangoadmin startproject <something> 

這使人懷疑,我不確信這個名字,我想我可能想在未來改變它。所以,我有兩個問題:

  • 項目名稱在項目代碼和部署中扮演什麼角色?
  • 我需要採取哪些措施來改變我的項目名稱?

謝謝!

回答

3

主項目名稱用作名稱空間的基礎。

默認情況下,您將在settings.py行:「ROOT_URLCONF ='something.urls'」。

要更改項目名稱,您需要更改引用它的每一個導入。

當然,你總是可以使用沒有「東西」前綴的模塊,那麼你必須確保模塊之間不會有名稱/名稱空間衝突。我正在使用這個選項,因爲我可以在沒有額外麻煩的情況下在幾個副本中使用相同的代碼。

0

這次派對已晚,但爲了將來的參考,這可能有助於某人。我只是需要更改一個項目名稱,因爲它與第三方應用程序的名稱衝突。更改項目名稱比應用程序名稱更容易! (Django的1.11)

文件夾結構

project/ 
    manage.py 
    project/ 
     settings.py 
     urls.py 
     wsgi.py 
    venv/ 
  1. 如果venv使用虛擬環境,pip freeze
  2. 產生一個最新requirements.txtproject/文件夾重命名爲newproject
  3. 變化projectnewproject在python文件中:

manage.py,尋找DJANGO_SETTINGS_MODULE

settings.py,尋找DJANGO_SETTINGS_MODULE和WSGI_APPLICATION,和註釋。假設您想保留數據,您可以並且應該保持數據庫名稱和數據庫用戶不變。

urls.py,在三重引號字符串

wsgi.py,DJANGO_SETTINGS_MODULE加上註釋

  • 如果使用虛擬環境中,你需要重新創建它。我將venv更名爲old.venv,然後virtualenv-3 venv,然後使用pip install和您在1確認新工作正常工作時生成的需求文件爲1. Trash old.venv

  • /path/to/project還將擁有在系統配置文件,如/etc/nginx.service文件gunicorn,這將需要更改爲/path/to/newproject

  • 重新啓動服務器並進行測試。應該工作。

  • 現在你可以添加一個名爲project的應用程序到你的INSTALLED_APPS!

    我現在知道調用內部Django項目${my_org_name}_something或類似項目是個好主意,所以它們不會與第三方應用程序發生衝突。