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 对象。