如何在 Django 中创建应用程序?
Django
以其独特且完全托管的应用程序结构而闻名。对于每个功能,都可以像完全独立的模块一样创建应用程序。本文将引导您了解如何创建基本应用程序并使用该应用程序添加功能。
例如,如果您要创建博客,则应为评论、帖子、登录/注销等创建单独的模块。在 `Django` 中,这些模块称为应用程序。每个任务都有一个不同的应用程序。
使用 Django 应用程序的好处
- Django 应用程序是可重用的,即一个 Django 应用程序可以用于多个项目。
- 我们有松散耦合的即几乎独立的组件
- 多个开发人员可以处理不同的组件
- 调试和代码组织很容易。Django 有一个优秀的调试器工具。
- 它具有管理页面等内置功能,这减少了从头开始构建相同功能的工作量
预装应用程序
Django 为用户提供了一些预装的应用程序。要查看预安装的应用程序,请导航至projectName –> projectName –> settings.py
在settings.py 文件中,您将找到INSTALLED_APPS。INSTALLED_APPS 中列出的应用程序由 Django 提供,以方便开发人员使用。
在 Django 中创建应用程序:
让我们开始构建一个应用程序。
方法一
- 要在 Django 项目中创建基本应用程序,您需要转到包含
manage.py
的目录,然后从那里输入命令:
python manage.py startapp project
方法2
- 要在 Django 项目中创建基本应用程序,您需要转到包含 manage.py 的目录,然后从那里输入命令:
django-admin startapp project
- 现在您可以看到您的目录结构如下:
要考虑项目中的应用程序,您需要在 INSTALLED_APPS 列表中指定项目名称,如下所示:
# 应用程序定义
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'projectApp'
]
因此,我们最终创建了一个应用程序,但要使用 URL 渲染该应用程序,我们需要将该应用程序包含在我们的主项目中,以便可以渲染重定向到该应用程序的 URL。让我们来探索一下吧。
移至projectName -> projectName -> urls.py 并在标题中添加以下代码
from django.urls import path, includ
现在,在 URL 模式列表中,您需要指定应用程序名称以包含您的应用程序 URL。这是它的代码:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
# Enter the app name in following
# syntax for this to work
path('', include("projectApp.urls")),
]
- 现在您可以使用默认的 MVT 模型在您的应用程序中创建 URL、模型、视图等,它们将自动包含在您的主项目中。
Django Apps的主要特点是独立性,每个应用程序都作为一个独立的单元来支持主项目。
现在项目文件中的urls.py将无法访问应用程序的 url
。
要正确运行 Django Web
应用程序,必须执行以下操作:
1. 在apps目录下创建一个名为urls.py
的文件
- 包含以下代码:
from django.urls import path
#now import the views.py file into this code
from . import views
urlpatterns=[
path('',views.index)
]
上面的代码将调用或调用views.py文件中定义的函数,以便可以在Web浏览器中正确看到它。这里假设views.py包含以下代码:
- Python3
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello Geeks")
添加上述代码后,进入项目目录下的settings.py文件,将ROOT_URLCONF的值从'project.urls'更改为'app.urls'
由此:
3.然后你可以运行服务器(127.0.0.1:8000),你将得到想要的输出