10 django中request对象
request.method # 获取请求方式名(纯大写的字符串) request.POST # 获取post请求提交的普通数据 request.POST.get() request.POST.getlist() request.GET # 获取get请求url问号后面的数据 request.GET.get() request.GET.getlist()
request.method # 返回请求方式 并且是全大写的字符串形式 <class 'str'>
request.POST # 获取用户post请求提交的普通数据不包含文件
request.POST.get() # 只获取列表最后一个元素
request.POST.getlist() # 直接将列表取出
request.GET # 获取用户提交的get请求数据
request.GET.get() # 只获取列表最后一个元素
request.GET.getlist() # 直接将列表取出
request.FILES # 取文件
request.path 、request.path_info、request.get_full_path()
get请求携带的数据是有大小限制的 大概好像只有4KB左右
而post请求则没有限制
input框需要加上name属性
1 request对象初识
2 request.method
返回请求方式 并且是全大写的字符串形式 <class 'str'>
3 request.POST
from django.http.request import QueryDict
QueryDict 本质就是一个字典,比字典强大。不能修改值,一改就报错
获取用户post请求提交的普通数据不包含文件
3.1 request.POST.get() 只获取列表最后一个元素
3.2 request.POST.getlist() 直接将列表取出
4 request.GET
获取用户提交的get请求数据
http://127.0.0.1:8000/login/?username=123&password=123
4.1 request.GET.get()
只获取列表最后一个元素
4.2 request.GET.getlist()
直接将列表取出
5 request.FILES
form表单上传文件及后端如何操作
form.html
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="file">
<input type="submit">
</form>
views.py
def login(request): if request.method == 'POST': username = request.POST.get('username') # 默认只会取列表最后一个元素 password = request.POST.get('password') if username == 'jason' and password == '123': return HttpResponse('OK') else: return HttpResponse('用户名或密码错误') return render(request, 'login.html')
6 路径相关
request.path
request.path_info
request.get_full_path() : 能过获取完整的url及问号后面的参数