首页 > 解决方案 > Django 框架简单类

问题描述

很抱歉打扰,但第一次在这里发帖,对 Django 非常新,对 Python 非常新,对 Internet 可能非常新:|

我目前正在学习 Django,我设置了一个 Django 项目,如下所示:

我创建了一个应用程序,所以现在我有:

我读到最好将您的应用程序分开,但现在当我尝试从models.py 导入任何类时,即使在app_name/ 中也可以说是文件main.py。当我尝试执行from .models import class-name时,出现无法导入 django.db 的这些错误

我最大的困惑是django-admin startproject APP和你可以创建一个像python3 manage.py startapp APP这样的应用程序有什么区别。我对此感到很困惑。我想构建一个可以检索服务器信息的应用程序,例如 python 版本、服务器 ip、内核版本、apache 版本等……我正在尝试遵循最佳实践,但我想我不太确定我在做什么:/我非常愚蠢,所以请原谅我。

标签: python-3.xdjango

解决方案


请不要道歉,你不傻。编程很难,我们都知道,提出问题是一种很好的学习方式。我想看看你的错误和文件结构,但只是为了清楚?

所以基本上,python manage.py startproject初始化一个根目录文件夹,如果你进入这个文件夹,就会有第二个同名的项目目录。在第二个目录下,您可以在此处为该项目注册所有不同的应用程序。您需要在 urls.py 文件中注册应用程序的 url,并在 settings.py 中注册每个应用程序。例如:

app_admin 设置.py:

INSTALLED_APPS = [
'app_name',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

]

app_admin urls.py:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("app_name.urls")),
]

这将确保您在 App 文件夹中创建的所有 URL 都在主项目中注册

python manage.py startapp另一方面,在根目录(与项目文件夹或您的“app_admin”文件夹处于同一级别)中创建一个新应用程序。在这里,您可能会通过模板、模型和视图编写大部分代码。这与项目文件夹不同,主要是因为您可能在一个项目中拥有多个应用程序。您可以将项目文件夹视为一个方便的位置,可将所有应用程序分组并对其应用设置,例如使用自定义身份验证用户模型或使用不同的数据库。


推荐阅读