Django HttpRequest
最后修改于 2023 年 1 月 9 日
Django HttpRequest 教程展示了如何在 Django 中使用 HttpRequest 对象。
Django
Django 是一个高级 Python Web 框架。它鼓励快速开发和清晰、实用的设计。Django 的主要目标是简化复杂、数据库驱动的网站的创建。
Django 由 Django Software Foundation 维护。
Django HttpRequest
Django 使用请求和响应对象在系统之间传递状态。当请求一个页面时,Django 会创建一个 HttpRequest
对象,其中包含有关请求的元数据。这包括请求方法、用户代理、地址或 cookie。
稍后 Django 会加载适当的视图,将 HttpRequest
作为第一个参数传递给视图函数。每个视图都必须返回一个 HttpResponse 对象。
Django HttpRequest 示例
在下面的示例中,我们创建一个 Django 应用程序,该应用程序检查 HttpRequest
对象中发送的数据。
$ mkdir httprequest $ cd httprequest $ mkdir src $ cd src
我们创建项目和 src
目录。然后我们进入 src
目录。
$ django-admin startproject httprequest .
我们在 src
目录中创建一个新的 Django 项目。
$ cd .. $ pwd /c/Users/Jano/Documents/pyprogs/django/httprequest
我们进入项目目录。
$ tree /f src │ db.sqlite3 │ manage.py │ └───httprequest settings.py urls.py views.py wsgi.py __init__.py
这是项目目录的内容。
注意: Django 的做法是将功能放入应用程序中,这些应用程序使用 django-admin startapp
创建。在此教程中,我们不使用应用程序来简化示例。我们专注于演示如何检查 HttpRequest
。
from django.contrib import admin from django.urls import path from .views import data urlpatterns = [ path('admin/', admin.site.urls), path('data/', data, name='data'), ]
我们添加了一个新的 data/
路径;它会调用 views.py
模块中的 data
函数。
from django.http import HttpResponse def data(request): path = request.path scheme = request.scheme method = request.method address = request.META['REMOTE_ADDR'] user_agent = request.META['HTTP_USER_AGENT'] msg = f''' <html> Path: {path}<br> Scheme: {scheme}<br> Method: {method}<br> Address: {address}<br> User agent: {user_agent}<br> </html> ''' return HttpResponse(msg, content_type='text/html', charset='utf-8')
在 data
函数内部,我们获取请求的路径、协议、方法、地址和用户代理。我们将其返回在 HttpResponse
中。
注意: 对于这个简单的示例,我们手动构建了 HTML 字符串。HTML 响应通常使用模板系统创建;Django 使用 Jinja。
$ python manage.py runserver
我们运行服务器并导航到 http://127.0.0.1:8000/data/
。
在本文中,我们演示了如何在 Django 中处理 HttpRequest
对象。