【 一 】调整后端目录
#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) 

