为啥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文件后,我在终端里makemigration
和migrate
manage.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 上运行?