Django 表单提交与request接收
Django表单提交
- Django表单数据提交涉及到视图函数中的request参数
- 在django中, request对象封装了表单提交的数据
- ***request.GET***中存储的是get方法提交的数据
- ***request.POST***中存储的是post方法提交的数据
- 这些方法使用get方法可以获取到对应的值,获取的名称为表单中提交的数据的名字
- 这些数据将会在提交之后自动储存到request中去
request其他方法:
get()
- 获取request对象中储存的数据
path
- 获取当前访问的url地址
method
- 获取当前的访问方法
POST
- 存储所有使用post方法提交过来的数据
GET
- 存储所有使用get方法提交过来的数据
FILES
- 存储提交过来的文件对象
COOKIES
- 存储cookie信息
session
存储session信息
session使用方法
直接使用字典的键值对获取方法
1
request.session['cookie名']
使用get方法获取,可以设置默认值
1
request.session.get('cookie名,default="默认值")
clear,删除session中保存的数据,但是删除掉的只是值
1
request.session.clear()
flash,删除整条数据,完全删除所有数据,数据表完全清除
1
request.session.flash()
del 删除目标数据的所有内容
1
del request.session['cookie']
设置session过期时间
1
request.session.set_expiry(value)
- 当没有设置过期时间的时候,默认将会在两周之后过期
- 当value值为0的时候,将会在关闭浏览器的时候过期
- 当value大于0的时候,将会在value秒之后过期
has_key 判断session中有没有对应的cookie
1
request.session.has_key('username')
ajax方法提交数据
ajax请求为异步请求
async : true
该选项默认为true,即异步请求
异步请求时优先执行其他的javascript代码,然后才会执行ajax请求的代码
设定为false即为同步请求
使用ajax可以实现局部刷新
使用ajax方法提交数据
```javascript
$.ajax({'url':'/ajax_handle', 'dataType':'json',
}).success(function(data){
alert(data.res)
})
1
2
3
4
5
6
7
8
9
- 上述为ajax在页面中的代码部分
- ```python
from django.http import JsonResponse
#处理ajax请求的是视图函数
def ajax_handle(request):
return JsonResponse({'res':1})
上述为ajax信息处理函数
```python
urlpatterns = [#构建用于处理请求的网页url path('ajax_handle/',views.ajax_handle),
]
1
2
3
4
5
6
7
8
9
10
11
12
13
- 以上就是基础的ajax请求构建
- ajax请求禁止返回一个页面,返回的页面将会无法正常显示
------
1. # 踩坑详情
- ```
APPEND_SLASH=False- 踩坑第一条
- 使用ajax进行请求时无法绕过的一个坎,必须在settings配置文件之中配置这条数据才能继续进行下去,让人惊讶的是,教学视频之中居然没有提到这个问题,暂定为django版本过高导致的配置文件差异,从而出现的问题
- 踩坑第一条
$.ajax({ 'url':'/ajax_handle/', 'type':'POST', 'dataType':'json', 'data':{ username:username, password:password } }).success(function (data) { if (data.res == 1){ location.href = '/admin/' }else{ $("#err").show().html('账号名或密码错误') } })
Django 表单提交与request接收
http://sokrates.com.cn/2022/11/30/Study-notes-Python-Django-DJango表单文件提交/