django启动问题---django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS

在创建并配置了pageApp后,遇到django.core.exceptions.ImproperlyConfigured错误,问题源于设置INSTALLED_APPS。尝试了修改导入模型的方式,但问题依然存在。错误提示显示,视图文件被直接执行而非作为框架的一部分。解决方案是确保通过正确的方式启动Django框架。

主体内容:
创建了一个pageApp,编写url和model以及views

urls.py
from django.urls import path
from pageApp import views
app_name = 'pageApp'

urlpatterns = [
    path("index/", views.index, name="index"),
]


models.py
from django.db import models
# Create your models here.
class Book(models.Model):
    title = models.CharField(max_length=128)
    price = models.DecimalField(decimal_places=2, max_digits=8)

    def __str__(self):
        return "Book:" + self.title


views.py
from django.http import HttpResponse
from pageApp.models import Book
# Create your views here.

def index(request):
    book_list = []
    for i in range(100):
        book = Book(title='book_%s'%i, price=i*i)
        # Book.objects.create(book)  # 每次插入都会访问数据库,数据量大时候会导致数据访问频繁,使用bulk_create
        book_list.append(book)
    Book.objects.bulk_create((book_list))
    return HttpResponse("ok")

全部代码如上所示,我们在views中导入的是from pageApp.models import Book。按照当前路径导包是不存在问题的,但是我们执行时候提示如下:(这个问题没有解决掉)

Traceback (most recent call last):
 File "C:/mysite/pageapp/views.py", line 4, in <module>
    from pageApp.models import Book
  File "C:\mysite\pageApp\models.py", line 4, in <module>
    class Book(models.Model):
  File "C:\mysite\env\lib\site-packages\django\db\models\base.py", line 129, in __new__
    app_config = apps.get_containing_app_config(module)
  File "C:\mysite\env\lib\site-packages\django\apps\registry.py", line 260, in get_containing_app_config
    self.check_apps_ready()
  File "C:\mysite\env\lib\site-packages\django\apps\registry.py", line 137, in check_apps_ready
    settings.INSTALLED_APPS
  File "C:\mysite\env\lib\site-packages\django\conf\__init__.py", line 102, in __getattr__
    self._setup(name)
  File "C:\mysite\env\lib\site-packages\django\conf\__init__.py", line 82, in _setup
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

出现上述问题之后我重新导包如下:from .models import Book。之后提示变成如下所示,很明显根据现在框架结构这导包也是没问题。

Traceback (most recent call last):
  File "C:/mysite/pageapp/views.py", line 3, in <module>
    from .models import Book
ImportError: attempted relative import with no known parent package

最后最后,我看到自己执行条件下如下所以,它不是执行框架,而是当前views文件。所以框架启动不起来。

在这里插入图片描述

解决办法:
将启动条件改成框架即可。
在这里插入图片描述

### 解决 ASGI Django `ImproperlyConfigured` 错误 当遇到 `django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured.` 的错误时,通常是因为Django未能找到配置文件或者未正确初始化设置模块。 为了确保Django应用程序能够正常运行并识别配置文件,在启动任何依赖于Django设置的操作之前,应该先设定环境变量 `DJANGO_SETTINGS_MODULE` 并调用 `django.setup()` 方法[^2]。具体做法是在导入其他Django组件之前加入以下代码: ```python import os os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project_name.settings') import django django.setup() ``` 这里的 `'your_project_name'` 需要替换为实际项目的名字,即包含 `settings.py` 文件的那个包名。对于提到的情况,如果项目名为 `movie_vis` ,则应改为 `movie_vis.settings` 。这一步骤确保了即使在独立脚本或交互环境中也能正确加载Django的全局状态和应用注册表[^1]。 另外,如果是通过命令行工具或其他方式执行Python程序,则可以通过设置操作系统的环境变量来指定 `DJANGO_SETTINGS_MODULE` 值,从而避免每次都手动修改源码中的路径字符串[^4]。 最后值得注意的是,此问题也可能发生在使用ASGI服务器部署期间。此时应当确认用于启动ASGI的应用对象已经包含了正确的设置声明,并且这些设置能够在整个请求处理过程中保持有效[^3]。 #### 示例修正后的代码片段 假设正在开发一个名为 `movie_vis` 的Web应用,那么可以在入口文件顶部加上如下代码以防止上述异常的发生: ```python import os from django.core.asgi import get_asgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'movie_vis.settings') application = get_asgi_application() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值