django - session初步
2015-09-11 17:00
501 查看
最近遇到一个比较令我这菜的不再菜头疼的问题:
点击 url A (url A中包含参数P), 跳转到 url B, 要求跳转到url B的同时传递参数P,但参数P不能出现在url上。
就这个问题试来试去:
redirect, HttpResponseRedirect, reverse
发现以上均不行, 后来询问某大牛,才知道有session这么东东(原谅我太菜
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/tongue.gif)
)
下面简要小结一下 session的用法,顺便将上面那个问题记录下。
session所用的数据库为: django_session, 定义如下:
![](http://img.blog.csdn.net/20150911162131490?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
url C <---P---|
index.html中提交, url C, 但 url C 中不包含参数P, 这时, session中已经有参数P所以不必显示提供参数P
-->
.ajax({
//...
url: "/view_C/",
//...
});
点击 url A (url A中包含参数P), 跳转到 url B, 要求跳转到url B的同时传递参数P,但参数P不能出现在url上。
就这个问题试来试去:
redirect, HttpResponseRedirect, reverse
发现以上均不行, 后来询问某大牛,才知道有session这么东东(原谅我太菜
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/tongue.gif)
)
下面简要小结一下 session的用法,顺便将上面那个问题记录下。
环境:
python: 2.7 djnao: 1.8.3django session简介:
session框架让你存储和获取访问者的数据信息,这些信息保存在服务器上(默认是数据库中),以 cookies 的方式发送和获取一个包含 session ID的值,并不是用cookies传递数据本身。session所用的数据库为: django_session, 定义如下:
配置session
settings.py INSTALLED_APPS = ( 'django.contrib.sessions', ) MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', ) SESSION_COOKIE_AGE=1209600 # (单位s)默认2周</span>
操作session
问题:
点击 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.py from django.conf.urls import include, url from 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), ]
index.html中提交, url C, 但 url C 中不包含参数P, 这时, session中已经有参数P所以不必显示提供参数P
流程:
(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相关文章推荐
- 第八章 Fun with Forms
- Dubbo抛出自定义异常时报:Got unchecked and undeclared exception
- Sicily 1198 Substring
- Google打不开的解决方法
- django配置django-registration-redux
- django03_表单(forms.ModelForm)(login前后台)
- gorename: easy refactoring tool for Golang[转]
- hdu 3635 Dragon Balls(并查集应用)
- django - 验证码 django-simple-captcha 使用简介
- 喜欢一站式服务?欢go成全你
- Go1.5从文件读取密码,然后到远端下载文件的小实例.(通过sftp协议下载)
- Google推荐的图片加载库Glide介绍(转载)
- django - 表单(form)验证及错误提示设置
- (Google)TextView属性大全(API-16)
- django 发送邮件的两种方法
- Google I/O大会 DataBinding数据绑定 MVVM设计模式
- GoF23种设计模式
- django 邮箱校验
- golang rabbitmq实践 (二 实现简单的消息收发)
- poj Going from u to v or from v to u? 强联通缩点+拓扑排序(或搜索)