为啥Django无法正常运行?

Posted

技术标签:

【中文标题】为啥Django无法正常运行?【英文标题】:Why is Django unable to run properly?为什么Django无法正常运行? 【发布时间】:2021-12-12 07:23:54 【问题描述】:

我最近正在按照 Python Crash Course 一书中的描述研究 Django。我按照每一步都尝试从头重新启动几次,仍然无法解决问题(甚至重新安装了 MacOS 以获得更清洁的桌面)。这是我的代码:


class Topic(models.Model):
    '''A topic the user is learning about'''
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        '''Return a string represent model'''
        return self.text

回溯如下:

Traceback (most recent call last):
  File "/Users/bryan/Desktop/python/learning_log/learning_logs/models.py", line 3, in <module>
    class Topic(models.Model):
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/db/models/base.py", line 108, in __new__
    app_config = apps.get_containing_app_config(module)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/apps/registry.py", line 253, in get_containing_app_config
    self.check_apps_ready()
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/apps/registry.py", line 135, in check_apps_ready
    settings.INSTALLED_APPS
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/conf/__init__.py", line 63, 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.
[Finished in 304ms with exit code 1]
[cmd: ['python3', '-u', '/Users/bryan/Desktop/python/learning_log/learning_logs/models.py']]
[dir: /Users/bryan/Desktop/python/learning_log/learning_logs]
[path: /Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]

编辑: 代码在文件models.py中

【问题讨论】:

这个错误什么时候出现?当您尝试导入Topic?当您尝试应用迁移时?请提供更多信息 看到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. 的位置了吗?你试过做那些事情吗?当你尝试做这些事情时发生了什么? 请参阅***.com/questions/26082128/… 这篇关于实际错误的帖子。这可能会有答案。 试试这个***.com/questions/8826534/… 嗨@Mitchell van Zuylen,当我尝试在SublimeText 中运行代码时出现错误。 【参考方案1】:

似乎正在发生错误,因为您正在直接运行 models.py 文件。在使用 Django 时,您很少直接运行 .py 文件。通常你在终端中运行一些命令,然后在浏览器中与你的项目进行交互。

您是否在活跃的虚拟环境中工作? 您是否为您的应用运行了makemigrations 命令? 你跑python manage.py migrate了吗? 运行python manage.py runserver 时会发生什么?

【讨论】:

非常感谢@japhyr!问题已经解决。正如你所提到的,我确实在 SublimeText 中直接运行了 models.py,这导致了错误,我发现我们应该使用终端,而不是在使用 Django 时直接在编辑器中运行文件。修改完models.py和admin.py文件后,我在终端里makemigrationmigratemanage.py。当我检查 localhost/8000 时,一切正常!【参考方案2】:

您尝试在__str__ 方法中访问text 时出现小错误,因此访问text 失败,您需要更改self.text 之类的代码

def __str__(self):
    '''Return a string represent model'''
    return self.text

【讨论】:

你是对的。我是多么的疏忽。但是在我将文本更改为 self.text 后问题仍然存在

以上是关于为啥Django无法正常运行?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 sendKeys() 在 casperJS 中无法正常运行

为啥我的 Django 应用程序可以在本地运行,但不能在 Heroku 上运行?

为啥我安装的应用程序无法运行?

android studio项目启动画面无法正常关闭,应用程序运行完美但退出应用程序启动画面显示后,为啥[关闭]

为啥无法访问 Django 基本 URL?

求懂apk编辑器的大神回答!为啥我修改名字后的apk都无法正常运行?有的安装不上有的无法打开,有