0
点赞
收藏
分享

微信扫一扫

[面试题] python django框架请求流程

棒锤_45f2 2023-05-06 阅读 65

Django 是一种基于 Python 的 Web 框架,它采用了基于视图函数和 URL 配置的方式来处理 HTTP 请求和响应。下面是 Django 的请求流程:

  1. 创建 Django 项目

在 Python 中,我们需要通过 django-admin startproject 命令创建一个 Django 项目对象,例如:

django-admin startproject mysite

该命令将会在当前目录下创建一个名为 mysite 的 Django 项目。

  1. 定义 URL 映射规则

Django 使用 URL 映射规则来将请求映射到处理函数上。可以在 urls.py 文件中定义 URL 映射规则,例如:

from django.urls import path
from . import views

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

这个例子中,我们定义了一个 /hello/ 的请求路径,并将其绑定到一个名为 hello 的视图函数上。

  1. 编写视图函数

视图函数负责响应 HTTP 请求并返回相应的结果。可以将视图函数定义在 views.py 文件中,例如:

from django.http import HttpResponse

def hello(request):
    return HttpResponse('Hello, world!')

这个例子中,我们定义了一个名为 hello 的视图函数,它接收一个 Django 请求对象作为参数,并返回一个包含字符串 'Hello, world!' 的 Django 响应对象。

  1. 处理请求

当客户端发送请求到服务器时,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 请求参数中获取用户名和密码。

  1. 发送响应

视图函数最终需要向客户端发送 HTTP 响应。可以使用 Django 提供的 HttpResponseJsonResponse 等类来设置响应状态码、消息体、头信息等。例如:

from django.http import JsonResponse

def ping(request):
    return JsonResponse({'message': 'pong'})

这个例子中,我们定义了一个名为 ping 的视图函数,它接收一个 Django 请求对象作为参数,并返回一个 JSON 格式的 Django 响应对象。

  1. 启动服务器

最后,需要通过调用 runserver 命令或在应用程序代码中手动启动 Django 服务器并监听端口。例如:

python manage.py runserver

这个命令将会启动 Django 服务器,并将其绑定到本地 8000 端口。

总之,Django 的请求流程包括创建项目对象、定义 URL 映射规则、编写视图函数、处理请求和发送响应等步骤。使用 Django 可以很方便地快速构建 Web 应用程序。

举报

相关推荐

0 条评论