Django——多apps目录情况下的app注册

文章目录

多apps目录下的app注册

方式1-添加python导包路径

python 复制代码
import sys
sys.path.insert(0, str(BASE_DIR / "apps"))
print(sys.path)

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 直接写app名即可
    'home',
]
  • 原理:

原来的导包路径是直接在项目下开始:

将导包路径多添加一条:从apps文件夹下导入

方式2-修改AppConfig类名

settings.py

python 复制代码
INSTALLED_APPS = [
    # ...
    'luffycityapi.apps.home',
]

app下的apps.py

python 复制代码
from django.apps import AppConfig


class HomeConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'project.apps.home'
  • 原理:

注册app时直接从项目下开始导入。

此时django在导入模块时,会找名为 project.apps.home 的app。

而尝试导入一个应用程序时,它会使用 AppConfig 的 name 属性作为模块的全名来查找和加载它,

所以就要修改AppConfig 的 name 属性

相关推荐
不知名的老吴39 分钟前
Lambda表达式与新的Streams API相结合
开发语言·python
weelinking7 小时前
【产品】12_接入数据库——让数据永久保存
jvm·数据库·python·react.js·数据挖掘·前端框架·产品经理
程序大视界8 小时前
【Python系列课程】Python正则表达式(下):环视、命名分组与日志实战
开发语言·python·正则表达式
TickDB8 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
枫叶v.8 小时前
Agent 分层存储架构设计:从记忆方法到中间件选型
开发语言·python
水兵没月8 小时前
逆向实战小记——某ToB商城网站分析学习
python·网络爬虫
程序员小远9 小时前
Python自动化测试框架及工具详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
sleven fung10 小时前
MinerU与BabelDOC与KTransformers与OpenAI API库
开发语言·python·ai·langchain
小毛驴85010 小时前
spring-boot-maven-plugin,maven-compiler-plugin 功能对比
java·python·maven
萤萤七悬10 小时前
【Python笔记】AI帮实现CLI工具-使用argparse.ArgumentParser接收命令参数
开发语言·笔记·python