我想指出一個新的Django項目中的作用,現在我必須選擇一個項目名稱,這樣我就可以鍵入:Django的:項目名稱
djangoadmin startproject <something>
這使人懷疑,我不確信這個名字,我想我可能想在未來改變它。所以,我有兩個問題:
- 項目名稱在項目代碼和部署中扮演什麼角色?
- 我需要採取哪些措施來改變我的項目名稱?
謝謝!
我想指出一個新的Django項目中的作用,現在我必須選擇一個項目名稱,這樣我就可以鍵入:Django的:項目名稱
djangoadmin startproject <something>
這使人懷疑,我不確信這個名字,我想我可能想在未來改變它。所以,我有兩個問題:
謝謝!
主項目名稱用作名稱空間的基礎。
默認情況下,您將在settings.py行:「ROOT_URLCONF ='something.urls'」。
要更改項目名稱,您需要更改引用它的每一個導入。
當然,你總是可以使用沒有「東西」前綴的模塊,那麼你必須確保模塊之間不會有名稱/名稱空間衝突。我正在使用這個選項,因爲我可以在沒有額外麻煩的情況下在幾個副本中使用相同的代碼。
這次派對已晚,但爲了將來的參考,這可能有助於某人。我只是需要更改一個項目名稱,因爲它與第三方應用程序的名稱衝突。更改項目名稱比應用程序名稱更容易! (Django的1.11)
文件夾結構
project/
manage.py
project/
settings.py
urls.py
wsgi.py
venv/
venv
使用虛擬環境,pip freeze
requirements.txt
既project/
文件夾重命名爲newproject
project
到newproject
在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
或類似項目是個好主意,所以它們不會與第三方應用程序發生衝突。