一、Django请求
-
1、常见的请求方式
默认页面请求都是get请求
视图函数中request是传递到视图的请求,里面包含请求的各种参数常用的请求方式get和post:
-
get:默认是get请求,请求数据以明文形式放在路由上,get的格式是以?开头,键等于值的形式,以&来分割键值对,通常用于向服务器获取资源
https://www.baidu.com/s?wd=张三&rsv_spt=1 -
post:请求数据隐藏发送,安全系数更高。通常用于向服务器提交资源
-
-
2、请求对象
视图函数中request是传递到视图的请求对象,包含了本次请求所有的信息
def index(request):
return render(request, "index.html")
request对象的类型是django.http.HttpRequest,常用属性如表所示:
方法 | 说明 |
---|---|
request.GET | 获取get请求数据的方法 |
request.POST | 获取post请求数据的方法 |
request.FILES | 获取文件上传请求数据的方法 |
request.method | 获取请求的方法 |
request.META | 请求的详细参数 |
request.META.OS | 请求端系统 |
request.META.HTTP_USER_AGENT | 用户请求头,返回请求浏览器版本 |
request.META.HTTP_HOST | 请求的主机 |
request.META.HTTP_REFERER | 请求的来源 |
二、CSRF
跨站请求伪造,是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法
在社交工程的一点帮助下(例如通过电子邮件或聊天发送链接),
攻击者可能会诱骗Web应用程序的用户执行攻击者选择的操作
三、Django表单
-
HTML表单
属性 说明 action 提交的地址,默认是当前路由 method 提交的方法,默认是get name 用来做传参的标识 submit 会自动提交当前表单的数据 -
后端处理
def register(request): """注册""" if request.method == "GET": # GET跳转页面 return render(request, "register.html") else: # POST处理提交 # 获取参数 name = request.POST.get("name") password = request.POST.get("password") # 创建对象并新增 # Seller.objects.create(