Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

django框架的运行流程


Django 是一个用于构建 Web 应用程序的 Python 框架,它遵循了 MVC(Model-View-Controller)的设计模式,其中将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分。

下面我将详细说明 Django 框架的运行流程,并结合示例代码进行说明。

假设我们要创建一个简单的待办事项清单应用程序。

请求的处理流程:

  1. 用户在浏览器中输入URL,例如:http://localhost:8000/tasks/
  2. Web 服务器接收到请求,并将请求交给 Django 的 WSGI(Web Server Gateway Interface)服务器处理。
  3. Django 的 URL 分发器(URL dispatcher)根据 URL 匹配对应的视图函数。
  4. 视图函数处理请求,可能会涉及数据库查询、业务逻辑等操作。
  5. 视图函数返回一个包含数据的 HTTP 响应。
  6. 响应经过中间件处理后发送回 WSGI 服务器。
  7. 最终,服务器将响应返回给用户的浏览器,用户看到相应的页面。

示例代码:

假设我们的应用有以下文件结构:

myapp/
├── manage.py
├── myapp/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── views.py
│   ├── models.py
│   ├── templates/
│   │   └── tasks.html
└── ...

models.py - 定义模型:

from django.db import models

class Task(models.Model):
    title = models.CharField(max_length=200)
    completed = models.BooleanField(default=False)

    def __str__(self):
        return self.title

views.py - 定义视图函数:

from django.shortcuts import render
from .models import Task

def task_list(request):
    tasks = Task.objects.all()
    return render(request, 'tasks.html', {'tasks': tasks})

urls.py - 配置 URL 路由:

from django.urls import path
from . import views

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

templates/tasks.html - HTML 模板:

<!DOCTYPE html>
<html>
<head>
    <title>Task List</title>
</head>
<body>
    <h1>Task List</h1>

        {% for task in tasks %}*   {{ task.title }}
</body>
</html>

在这个示例中,当用户访问 http://localhost:8000/tasks/ 时,Django 的 URL 分发器会将请求指向 task_list 视图函数。这个视图函数从数据库中查询所有任务,然后将它们传递给名为 tasks.html 的模板进行渲染。最终,用户将在浏览器中看到一个列出所有任务的页面。

这就是 Django 框架的基本运行流程。从 URL 分发到视图函数,再到模板渲染,最终构建出响应返回给用户。

Django是一个开源的高级Web应用程序框架,使用Python编程语言构建。ORM(对象关系映射):Django提供了强大的ORM层,允许 ...
我们都知道es是一个分布式的存储和检索系统,在存储的时候默认是根据每条记录的_id字段做路由分发的,这意味着es服务端是准确知道每个docu ...
DjangoTemplateEngine:Django自带的模板引擎,允许你在HTML中嵌入Python代码。jQuery是一个广泛使用的J ...
###使用Djangoshell可以在Django的shell环境中执行独立的Python文件,这样可以直接访问Django的数据库和模型。 ...
与任何程序设计语言一样,Java 使用条件语句和循环结构确定控制流程。本节先讨论条件语句,然后讨论循环语句,最后介绍看似有些笨重的 swit ...