在Django中,request.POST
是一个特殊的属性,它是一个类似于字典的对象,用于访问通过POST方法提交的表单数据。如果你在视图中使用 print(request.POST.get('username'))
,这通常意味着你正在尝试从一个HTML表单中获取一个名为 username
的字段的值。
1,添加视图函数
myshop/app2/views.py
from django.http import HttpResponse
from django.shortcuts import render
from django.urls import reverse
def index(request):
return HttpResponse("app2 的index")
# 反向解析
def url_reverse(request):
# 使用reverse()方法反向解析
print('解析结果:'+ reverse("app2_url_reverse")) # 使用reverse()方法反向解析 ,reverse("app2_url_reverse") 对应urls的 name='app2_url_reverse'
return render(request, "2/url_reverse.html")
def test_get(request):
print(request.get_host()) # 域名加端口
print(request.build_absolute_uri()) # 获取完整的请求URI,包括查询字符串
print(request.path) # 获取访问路径,不含参数
print(request.get_full_path()) # 获取访问路径,不含参数
print(request.method) # 获取请求中使用的HTTP方式(POST/GET)
print(request.GET) # 获取GET请求的参数
print(request.META["HTTP_USER_AGENT"]) # 用户浏览器的user-agent字符串
print(request.META["REMOTE_ADDR"]) # 客户端IP地址
print(request.GET.get('username')) # 获取get参数
return HttpResponse("")
# 获取请求中的使用HTTP方式(POST/GET)
def test_post(request):
print(request.method)
print(request.POST.get('username'))
return render(request, '2/test_post.html')
2,添加路由路径
myshop/app2/urls.py
from django.urls import path, re_path
from . import views
urlpatterns = [
path('index', views.index, name='index'),
path('url_reverse', views.url_reverse, name='app2_url_reverse'), # 使用reverse()方法反向解析 ,name对于视图的reverse("app2_url_reverse")
path('test_get', views.test_get, name='test_get'),
path('test_post', views.test_post, name='test_post'),
]
3,添加html代码
myshop/templates/2/test_post.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="POST">
{% csrf_token %}
<p>用户名</p>
<input type="text" name="username">
<input type="submit" value="提交">
</form>
</body>
</html>
4,访问页面
http://127.0.0.1:8000/app2/test_post