django - session初步
来源:互联网 发布:mac磁盘空间不足 编辑:程序博客网 时间:2024/05/18 00:38
最近遇到一个比较令我这菜的不再菜头疼的问题:
点击 url A (url A中包含参数P), 跳转到 url B, 要求跳转到url B的同时传递参数P,但参数P不能出现在url上。
就这个问题试来试去:
redirect, HttpResponseRedirect, reverse
发现以上均不行, 后来询问某大牛,才知道有session这么东东(原谅我太菜)
下面简要小结一下 session的用法,顺便将上面那个问题记录下。
环境:
python: 2.7 djnao: 1.8.3
django session简介:
session框架让你存储和获取访问者的数据信息,这些信息保存在服务器上(默认是数据库中),以 cookies 的方式发送和获取一个包含 session ID的值,并不是用cookies传递数据本身。
session所用的数据库为: django_session, 定义如下:
配置session
settings.pyINSTALLED_APPS = ( 'django.contrib.sessions',)MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware',)SESSION_COOKIE_AGE=1209600 # (单位s)默认2周</span>
操作session
# 创建或修改 session:
request.session[key]
=
value
# 获取 session:
request.session.get(key,default
=
None
)
# 删除 session
del
request.session[key]
# 不存在时报错
问题:
点击 url A (url A中包含参数P), 跳转到 url B, 要求跳转到url B的同时传递参数P,但参数P不能出现在url上; 同时在url B的html模板中改送一个ajax post 请求, 请求url C, 而在url C的视图函数中要得到这个参数P
解决办法:
url A ---P---> url B |
url C <---P---|
views.py>def view_A(request, param_P): request.session['param'] = param_P return HttpResponseRedirect(reverse('blog.views.view_B')) def view_B(request): param= request.session.get('param') return render(request, 'index.html')def view_C(request): param= request.session.get('param') return HttpResponse(json.dumps({"status": "1"}), content_type="application/json")
urls.pyfrom django.conf.urls import include, urlfrom blog.views import *urlpatterns = [ url(r'^/views_A/?P<P>\w+/$', view_A), url(r'^/views_B/$', view_B), url(r'^/views_C/$', view_C),]
流程:
(1)
http://localhost:8000/view_A/param_P
-->
(2)
http://localhost:8000/view_B
(3)
(模板: index.html)
.ajax({
//...
url: "/view_C/",
//...
});
(4)
在view_C中可以能通过session取出参数P
- django - session初步
- django初步
- django初步
- django session
- Django session
- django session
- 初步感受Django
- python - django - 初步认识
- Django初步入门
- 第一章Django初步-安装
- django ajax初步
- Django框架初步
- django初步学习
- django 开发初步
- session的初步理解
- 11.session初步
- django基础——django初步体验
- django session 的应用
- dirname,basename
- 把IP地址转换成INT型存储(考察的位运算)
- 解决 Oracle 描述乱码问题
- 转 hibernate.hbm2ddl.auto配置详解
- UE4 HLSL Cross Compiler
- django - session初步
- 两个有序数组中找第N个数
- android项目迁移到新android studio所遇到的Gradle问题汇总
- 10分钟学会使用qmake
- 通过cordova+contentEditable开发hybird app时,输入框中backspace无反应的问题
- java导出Excel文档
- 微信生成公众号带参数二维码用户头像 加上文字生成图片(三)
- 5 分钟的颈椎操
- request.querystring 在asp.net的前台html中如何获取