Django 是一种基于 Python 的 Web 框架,它采用了基于视图函数和 URL 配置的方式来处理 HTTP 请求和响应。下面是 Django 的请求流程:
- 创建 Django 项目
在 Python 中,我们需要通过 django-admin startproject
命令创建一个 Django 项目对象,例如:
django-admin startproject mysite
该命令将会在当前目录下创建一个名为 mysite
的 Django 项目。
- 定义 URL 映射规则
Django 使用 URL 映射规则来将请求映射到处理函数上。可以在 urls.py
文件中定义 URL 映射规则,例如:
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello),
]
这个例子中,我们定义了一个 /hello/
的请求路径,并将其绑定到一个名为 hello
的视图函数上。
- 编写视图函数
视图函数负责响应 HTTP 请求并返回相应的结果。可以将视图函数定义在 views.py
文件中,例如:
from django.http import HttpResponse
def hello(request):
return HttpResponse('Hello, world!')
这个例子中,我们定义了一个名为 hello
的视图函数,它接收一个 Django 请求对象作为参数,并返回一个包含字符串 'Hello, world!'
的 Django 响应对象。
- 处理请求
当客户端发送请求到服务器时,Django 项目会根据 URL 映射规则匹配到对应的视图函数,并将请求作为参数传递给视图函数。例如:
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def login(request):
username = request.POST.get('username')
password = request.POST.get('password')
# ...
这个例子中,我们定义了一个名为 login
的视图函数,它接收一个 Django 请求对象作为参数,并从 POST 请求参数中获取用户名和密码。
- 发送响应
视图函数最终需要向客户端发送 HTTP 响应。可以使用 Django 提供的 HttpResponse
、JsonResponse
等类来设置响应状态码、消息体、头信息等。例如:
from django.http import JsonResponse
def ping(request):
return JsonResponse({'message': 'pong'})
这个例子中,我们定义了一个名为 ping
的视图函数,它接收一个 Django 请求对象作为参数,并返回一个 JSON 格式的 Django 响应对象。
- 启动服务器
最后,需要通过调用 runserver
命令或在应用程序代码中手动启动 Django 服务器并监听端口。例如:
python manage.py runserver
这个命令将会启动 Django 服务器,并将其绑定到本地 8000 端口。
总之,Django 的请求流程包括创建项目对象、定义 URL 映射规则、编写视图函数、处理请求和发送响应等步骤。使用 Django 可以很方便地快速构建 Web 应用程序。