搜索
首页后端开发Python教程理解 Django 的架构:MTV 模式。

Understanding Django’s Architecture: The MTV Pattern.

Django 遵循 MTV(模型-模板-视图)模式进行 Web 开发。以下是每个组件的详细信息:

模型:定义数据结构并处理与数据库的交互,允许您存储和检索数据而无需手动编写 SQL 查询。

模板:负责渲染 HTML 并将数据呈现给用户。您可以编写与 Django 模板语言 (DTL) 混合的 HTML 来显示动态内容。

视图:充当业务逻辑层。它连接模型和模板,处理用户请求,与模型交互,并返回响应(通常是从模板渲染的 HTML)。

Django 的请求-响应周期如何工作:

  • 用户请求网页(通过 URL)。
  • Django 将 URL 匹配到视图。
  • 视图从模型中获取数据并将其传递给模板。
  • 模板将数据呈现为 HTML 并将其作为响应发送回给用户。

第 1 步:在 Django 中创建一个新应用
设置 Django 后(如上一篇文章所述),让我们在您的项目中创建一个新应用程序。

运行这些命令:

cd mysite
python3 manage.py startapp core

这会在您的 mysite 项目中创建一个名为 core 的应用程序。您的文件结构现在应如下所示:

.
├── core
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── mysite
    ├── asgi.py
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

第 2 步:在设置文件中注册您的应用程序
为了让 Django 知道新应用程序,您需要将其添加到 mysite/settings.py 中的 INSTALLED_APPS 中:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'core',  # add this line
]

第 3 步:创建基本视图
让我们创建一个返回“Hello, World!”的简单视图。消息。

在核心应用程序中打开views.py并添加以下代码:

from django.http import HttpResponse

def learn(request):
    return HttpResponse("Hello, World!")

第 4 步:将 URL 映射到视图
要通过 URL 访问此视图,您需要将其映射到 core/urls.py 文件中。如果该文件不存在,则创建该文件并添加以下内容:

from django.urls import path
from . import views

urlpatterns = [
    path('learn/', views.learn, name='learn'),
]

接下来,将核心应用程序的 URL 包含在主 mysite/urls.py 文件中:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('core/', include('core.urls')),  # include the core app URLs
]

现在,如果您运行服务器并访问 http://127.0.0.1:8000/core/learn/,您应该看到“Hello, World!”显示。
第 5 步:创建并渲染模板

from django.shortcuts import render

def learn(request):
    context = {'name': 'Django'}
    return render(request, 'hello.html', context)

此视图现在将变量(名称)传递给名为 hello.html 的模板。
第 6 步:创建模板目录和 HTML 文件.
在您的核心应用程序中,创建一个 templates 文件夹和一个 hello.html 文件:

mkdir core/templates
touch core/templates/hello.html

在 hello.html 中,添加以下 HTML 代码



    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello Template</title>


    <h1 id="Hello-name">Hello, {{ name }}!</h1>


当您再次访问学习 URL 时,您现在应该看到“Hello, Django!”在浏览器中。

第 7 步:创建基本模型.
让我们创建一个简单的 Post 模型来存储博客文章。

在 core/models.py 中,添加以下代码:

cd mysite
python3 manage.py startapp core

这个 Postmodel 有两个字段:标题和内容。 __str__ 方法确保 Post 对象在 Django 管理或 shell 中显示及其标题

第 8 步:将模型应用到数据库
要在数据库中创建相应的表,请运行以下命令:

.
├── core
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── mysite
    ├── asgi.py
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Django 现在将为 Post 模型创建一个数据库表。

通过执行这些步骤,您已成功创建了一个包含模型、视图和模板的基本 Django 应用程序。现在,您可以通过添加更多功能来扩展此基础,例如处理用户输入、改进设计以及使应用程序更具交互性。

以上是理解 Django 的架构:MTV 模式。的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
python中两个列表的串联替代方案是什么?python中两个列表的串联替代方案是什么?May 09, 2025 am 12:16 AM

可以使用多种方法在Python中连接两个列表:1.使用 操作符,简单但在大列表中效率低;2.使用extend方法,效率高但会修改原列表;3.使用 =操作符,兼具效率和可读性;4.使用itertools.chain函数,内存效率高但需额外导入;5.使用列表解析,优雅但可能过于复杂。选择方法应根据代码上下文和需求。

Python:合并两个列表的有效方法Python:合并两个列表的有效方法May 09, 2025 am 12:15 AM

有多种方法可以合并Python列表:1.使用 操作符,简单但对大列表不内存高效;2.使用extend方法,内存高效但会修改原列表;3.使用itertools.chain,适用于大数据集;4.使用*操作符,一行代码合并小到中型列表;5.使用numpy.concatenate,适用于大数据集和性能要求高的场景;6.使用append方法,适用于小列表但效率低。选择方法时需考虑列表大小和应用场景。

编译的与解释的语言:优点和缺点编译的与解释的语言:优点和缺点May 09, 2025 am 12:06 AM

CompiledLanguagesOffersPeedAndSecurity,而interneterpretledlanguages provideeaseafuseanDoctability.1)commiledlanguageslikec arefasterandSecureButhOnderDevevelmendeclementCyclesclesclesclesclesclesclesclesclesclesclesclesclesclesclesclesclesclesandentency.2)cransportedeplatectentysenty

Python:对于循环,最完整的指南Python:对于循环,最完整的指南May 09, 2025 am 12:05 AM

Python中,for循环用于遍历可迭代对象,while循环用于条件满足时重复执行操作。1)for循环示例:遍历列表并打印元素。2)while循环示例:猜数字游戏,直到猜对为止。掌握循环原理和优化技巧可提高代码效率和可靠性。

python concatenate列表到一个字符串中python concatenate列表到一个字符串中May 09, 2025 am 12:02 AM

要将列表连接成字符串,Python中使用join()方法是最佳选择。1)使用join()方法将列表元素连接成字符串,如''.join(my_list)。2)对于包含数字的列表,先用map(str,numbers)转换为字符串再连接。3)可以使用生成器表达式进行复杂格式化,如','.join(f'({fruit})'forfruitinfruits)。4)处理混合数据类型时,使用map(str,mixed_list)确保所有元素可转换为字符串。5)对于大型列表,使用''.join(large_li

Python的混合方法:编译和解释合并Python的混合方法:编译和解释合并May 08, 2025 am 12:16 AM

pythonuseshybridapprace,ComminingCompilationTobyTecoDeAndInterpretation.1)codeiscompiledtoplatform-Indepententbybytecode.2)bytecodeisisterpretedbybythepbybythepythonvirtualmachine,增强效率和通用性。

了解python的' for”和' then”循环之间的差异了解python的' for”和' then”循环之间的差异May 08, 2025 am 12:11 AM

theKeyDifferencesBetnewpython's“ for”和“ for”和“ loopsare:1)” for“ loopsareIdealForiteringSequenceSquencesSorkNowniterations,而2)”,而“ loopsareBetterforConterContinuingUntilacTientInditionIntionismetismetistismetistwithOutpredefinedInedIterations.un

Python串联列表与重复Python串联列表与重复May 08, 2025 am 12:09 AM

在Python中,可以通过多种方法连接列表并管理重复元素:1)使用 运算符或extend()方法可以保留所有重复元素;2)转换为集合再转回列表可以去除所有重复元素,但会丢失原有顺序;3)使用循环或列表推导式结合集合可以去除重复元素并保持原有顺序。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。