python-3.x - Django 框架简单类
问题描述
很抱歉打扰,但第一次在这里发帖,对 Django 非常新,对 Python 非常新,对 Internet 可能非常新:|
我目前正在学习 Django,我设置了一个 Django 项目,如下所示:
- app_admin/ 里面有默认的 urls.py、settings.py、wsgi.py 等。
我创建了一个应用程序,所以现在我有:
- app_admin/
- app_name/ 和这个文件夹中的views.py、models.py 等...
我读到最好将您的应用程序分开,但现在当我尝试从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 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”文件夹处于同一级别)中创建一个新应用程序。在这里,您可能会通过模板、模型和视图编写大部分代码。这与项目文件夹不同,主要是因为您可能在一个项目中拥有多个应用程序。您可以将项目文件夹视为一个方便的位置,可将所有应用程序分组并对其应用设置,例如使用自定义身份验证用户模型或使用不同的数据库。
推荐阅读
- python - SQLAlchemy 关系:一个字段,多个外键
- jquery - RequiredFieldValidator 有时不起作用,但无法重现它
- python - Python 内置 AsyncIO 实现?
- r - tidyverse:将特定日期与活动期间相匹配
- python - Pandas:重命名列上的合并缓冲区错误
- tensorflow - 剥离 tower 命名空间以在多 GPU 训练的模型 (tensorflow) 上进行推理
- html - 如何在下拉菜单旁边的 HTML 选择性下拉菜单中显示选项的值?
- javascript - CKEditor 无法清理 Word 中复制的粘贴文本?
- angular - Angular 7 子路由延迟加载模块不起作用
- mysql - 需要帮助识别第 20 行的语法错误