django - 应用不在INSTALLED_APPS中但其views.py正在运行

0 投票
2 回答
710 浏览
提问于 2025-04-19 04:54

我有多个应用程序,我想根据settings.py来运行它们,这意味着我有多个settings_x.py。我启动服务器的方式是这样的:

python manage.py runserver --settings=myproj.settings_1.py

比如说是app1。

如果我运行

python manage.py runserver

它应该使用默认的settings.py,因为我在INSTALLED_APPS里没有定义任何应用,这样应该会报错,提示模块app1不存在,因为

#urls.py
urlpatterns = patterns('app1.views',#<---- app1 isn't in the settings.py
   url(r'^$', 'startpage', name='startpage'),
)

但是它却进入了app1.views里的startpage函数。

这是为什么呢?我是不是漏掉了什么?

2 个回答

1

去一个不存在的网址(http://localhost:8000/ksjfklsdfj),Django 应该会给你一份有效的网址模式列表,也许这能给你一些提示?

另外,使用 manage.py diffsettings 命令可以查看 Django 看到的设置列表。这也可能告诉你是否搞混了什么东西。

3

没有理由说它不行。视图可以来自任何地方,根本不一定要在一个应用程序里:只要能在Python的路径中找到它们就行。

撰写回答