在 Django 里的某一个项目,里面得包含很多 App (功能),那么如何在该项目里管理这么多App呢?
先说明下背景:未先创建 apps 文件夹来存各个app文件夹,直接在项目文件目录里创建各个app。为了便于管理,得将各个app放到 apps 文件夹里,看下放的截图。
1.
将各个app放到 apps 文件夹里之后,得在对应的 app 里的 apps.py 文件里做修改,类似这样
# 在 apps.py 文件
from django.apps import AppConfig
class App01Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
# 得添加 apps, 这个 apps 代表是 “apps文件夹”
name = 'apps.app01'
2.
在项目的文件夹里的 settings.py 做修改,这样调用各个app
# 在 settings.py 文件里
from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# 添加下面两行
import sys
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
....
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config', # 添加这一行
'assetManagement.apps.AssetmanagementConfig', # 添加这一行
]
3.
在 urls.py 文件里做下修改
# 在 urls.py 文件修改
from django.contrib import admin
from django.urls import path
from apps.app01 import views as apps_views # 得添加 apps, 这样才能找到对应的views.py。并且得创建一个名,以防 views.py 名称搞混乱
from apps.assetManagement import views as am_views # 得添加 apps, 这样才能找到对应的views.py。并且得创建一个名,以防 views.py 名称搞混乱
urlpatterns = [
#path('admin/', admin.site.urls),
path('demo/', apps_views.demo),
path('ceshi/', am_views.ceshi),
]
给个赞呗~