【 一?】調整后端目錄
#1 目錄結構 """ ├── luffy_api├── logs/ # 項目運行時/開發時日志目錄 - 包├── manage.py # 腳本文件├── luffy_api/ ? ? # 項目主應用,開發時的代碼保存 - 包├── apps/ ? ? # 開發者的代碼保存目錄,以模塊[子應用]為目錄保存 - 包├── libs/ ? ? # 第三方類庫的保存目錄[第三方組件、模塊] - 包├── settings/ # 配置目錄 - 包├── dev.py ? # 項目開發時的本地配置└── prod.py # 項目上線時的運行配置├── asgi.py ? # 項目上線├── wsgi.py ? # 項目上線用├── urls.py ? # 總路由└── utils/ ? ? # 多個模塊[子應用]的公共函數類庫[自己開發的組件]└── scripts/ ? ? ? # 保存項目運營時,測試的腳本文件 - 文件夾 """
【 1 】創建app應用軟件
【 2 】創建app
-
來到目錄下:
-
# cd lufy/apps
-
創建user應用程序
-
# python ../../manage.py startapp user ?
-
# 2 創建app ? # 來到目錄下: cd lufy/apps ? # 執行 python ../../manage.py startapp user ? # 3 項目中注冊app-直接寫app名字,運行報錯:No module named 'user'-從環境變量找--》找不到-原來為什么能找到? 原來在項目根路徑下,項目根路徑在環境變量中# 4 把apps目錄加入到環境變量 # 把apps目錄加入到環境變量,以后注冊app,只需要寫名字即可 import sys,os BASE_DIR = Path(__file__).resolve().parent.parent apps=os.path.join(BASE_DIR,'lufy','apps') sys.path.insert(0,apps) ? ## 5 lufy--settings--》dev.py【開發階段配置】 pro.py【上線階段配置】-配置文件路徑發生變化-項目要正常運行--》修改manage.py os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.dev')-命令可以運行-但是有可能點 綠色箭頭運行不了--》刪除--》重新新建即可-如果還不行--》settings--->django-->配置文件路徑## 本地運行可以了,但是上線還有問題--》配置文件路徑改了# asig.py wsgi.py 中的配置文件先改好# 如果不改,開發階段,沒有任何問題os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.pro')# 6 最終配置文件修改成 ? # 把apps目錄加入到環境變量,以后注冊app,只需要寫名字即可 import sys,os # BASE_DIR 是 lufy BASE_DIR = Path(__file__).resolve().parent.parent apps=os.path.join(BASE_DIR, 'apps') sys.path.insert(0,apps) # 把apps目錄加入到環境變量 sys.path.insert(0,BASE_DIR)# 把BASE_DIR--》小lufy目錄加入到環境變量 # 以后我們導入項目中的模塊和包,只需要從 apps開始導起或 小lufy目錄開始導起 或 大 lufy # 優先相對導入-->使用絕對導入,盡量從最短路徑開始導起# 7 國際化 ? LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_TZ = False ? ? # 8 創建了user和home--》app### 注意### djanog項目運行,首先加載配置文件---》配置文件路徑一定要對,否則項目啟動不起來
【 3 】項目中注冊app
-
直接寫app名字,運行報錯:No module named 'user'
-
-
從環境變量找--》找不到
-
原來為什么能找到? 原來在項目根路徑下,項目根路徑在環境變量中
【 四 】把apps目錄加入到環境變量
第一種方法
添加完整的目錄(這個目錄太low!!)
-
settings.py文件
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','lufy.apps.user' # 直接創建應用軟件就會報錯# 添加完整的目錄 ]
-
apps.py
from django.apps import AppConfig ? ? class UserConfig(AppConfig):default_auto_field = 'django.db.models.BigAutoField'name = 'lufy.apps.user' # 這個也將目錄地址添加完整!
第二種方法
-
把apps目錄加入到環境變量,以后注冊app,只需要寫名字即可
-
settings.py文件
import sys, os ? BASE_DIR = Path(__file__).resolve().parent.parent # "項目名","軟件名" apps = os.path.join(BASE_DIR, 'lufy', 'apps') sys.path.insert(0, apps) ? ... ? ? INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','user' ? # 直接使用app文件名就好了!!! ] ?
-
apps.py 這個文件就不需要更改了
from django.apps import AppConfig ? ? class UserConfig(AppConfig):default_auto_field = 'django.db.models.BigAutoField'name = 'user'
【 五 】配置多套的配置文件
## lufy--settings--》dev.py【開發階段配置】 pro.py【上線階段配置】-配置文件路徑發生變化-項目要正常運行--》修改manage.py os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.dev')-命令可以運行-但是有可能點 綠色箭頭運行不了--》刪除--》重新新建即可-如果還不行--》settings--->django-->配置文件路徑## 本地運行可以了,但是上線還有問題--》配置文件路徑改了# asig.py wsgi.py 中的配置文件先改好# 如果不改,開發階段,沒有任何問題os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.pro')
-開發階段:配置不一樣-上線階段:配置不一樣
-
先將原本的settings.py文件剪切 ---->>> 再lufy文件下創建settings文件 ---->>> 將settings.py復制 ---->>> 改名dev.py
-
-
這樣就是顯示找不到運行報錯:No module named 'user'
-
-
在
manage.py
文件 -
? ?# 加上devos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.dev')
? import os import sys ? ? def main():"""Run administrative tasks."""# 加上devos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.dev')try:from django.core.management import execute_from_command_lineexcept ImportError as exc:raise ImportError("Couldn't import Django. Are you sure it's installed and ""available on your PYTHONPATH environment variable? Did you ""forget to activate a virtual environment?") from excexecute_from_command_line(sys.argv)
-
刪除Django運行配置
-
重新添加文件配置查看settings.py/lufy.setting.dev是否添加成功!!
-
還是不行重啟項目
-
ctrl + alt + s 搜索 Django
-
asig.py wsgi.py 中的配置文件先改好
-
如果不改,開發階段,沒有任何問題
-
# asig.py import os ? from django.core.asgi import get_asgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.pro') ? ... # wsgi.py import os ? from django.core.wsgi import get_wsgi_application ? os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lufy.settings.pro') ? application = get_wsgi_application() ?
【 六 】最終的配置文件
-
以后我們導入項目中的模塊和包,只需要從 apps開始導起或 小lufy目錄開始導起 或 大 lufy
-
優先相對導入-->使用絕對導入,盡量從最短路徑開始導起
# 把apps目錄加入到環境變量,以后注冊app,只需要寫名字即可 from pathlib import Path import os,sys ? BASE_DIR = Path(__file__).resolve().parent.parent # "項目名","軟件名" apps = os.path.join(BASE_DIR,'apps') # 把apps目錄加入到環境變量 sys.path.insert(0, apps) # 把BASE_DIR--》小lufy目錄加入到環境變量 sys.path.insert(0,BASE_DIR) ?