首页>>后端>>Python->django2.0怎么取session(django入门)

django2.0怎么取session(django入门)

时间:2023-11-29 本站 点击:0

本篇文章给大家谈谈django2.0怎么取session,以及django入门对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、调用接口怎么获得session2、Session如何获取3、django中的通用视图(类视图),如何获得和设置session?4、django的request,response,session的常用方法函数,不用多,帮忙列一下谢谢5、如何在django的form验证中如何调用session6、如何使用django session

调用接口怎么获得session

你是提问前台jsp页面获取session对象? 首先在后台把user放入session里,并且也加了一个user的字段type(int类型,1-管理员/0-企业用户/2-一般用户),即user-type对象在session里。 一般我们获取对象,直接使用jstl标签里的${user.username}就能获取对象,但是想要获取session里的对象,就不能直接这样获得。 我在项目中是这样来获取session对象的: ${sessionScope['user-type'] } 这样就能获得user-type的值了,取得这个值后,一般是用来实现角色菜单权限显示管理的。如果放入session里的对象是一个String类型的,要在jsp页面获得该对象,可以直接使用jstl标签里的fn标签: 如:我在session里放了一个auths的String类型对象,auths(String类型,sys管理员/general全局用户/private个人用户) 这个需要在页面引入:%@ taglib uri="

" prefix="fn"% c:if test="${fn:contains(sessionScope['auths'],'sys')}" 如果是sys类型用户。。。。 /c:if

Session如何获取

session是唯一的,这个唯一是相对于一个用户来说,比如你在你那边上网,$_SESSION['uid']是10

而我这边$_SESSION['uid']是20

那么,我这边就是20,不可能是你那边的10

你那边是10,也不可能是我这边的20

所以,你这么能取到所有的$_SESSION呢?

正因为session的唯一性,才可以使用于会员的登陆方面的作用,

否则,谈何唯一性?

当然,你可以获取到session后,把他储存到数据库中,或者某一文件中,比如txt、xml或者生成一个php文件来储存,这样,到是可以全部读取出来,不过这样做,似乎没有什么实在意义

django中的通用视图(类视图),如何获得和设置session?

HttpSession session = request.getSession();

session.getAttribute(“名称”);------得到session放入进去的信息。

session.getAttributeNames()-----得到session里面所有的信息名称。

session.getMaxInactiveInterval()----得到session最大存活时间。

seesion.getId();------得到session的id。比较有用的属性,可以实现共享session。

session.getCreationTime()-----session创建时间。

。。。。。。。。。。。

还有比较多的属性都可以得到session的配置信息。同样,也可以在web.xml文件中通过session-config设置session的属性。

django的request,response,session的常用方法函数,不用多,帮忙列一下谢谢

HttpRequest对象

HttpRequest 表示来自某客户端的一个单独的HTTP请求。

HttpRequest实例的属性包含了关于此次请求的大多数重要信息(详见表H-1)。 除了session外的所有属性都应该认为是只读的.

表 H-1. HttpRequest对象的属性

属性

描述

path 表示提交请求页面完整地址的字符串, 不包括域名,如 "/music/bands/the_beatles/" 。

method

表示提交请求使用的HTTP方法。 它总是大写的。例如:

if request.method == 'GET':

do_something()

elif request.method == 'POST':

do_something_else()

GET 一个类字典对象,包含所有的HTTP的GET参数的信息。 见 QueryDict 文档。

POST

一个类字典对象,包含所有的HTTP的POST参数的信息。 见 QueryDict 文档。

通过POST提交的请求有可能包含一个空的 POST 字典, 也就是说, 一个通过POST方法提交的表单可能不包含数据。 因此,不应该使用 if request.POST 来判断POST方法的使用, 而是使用if request.method == "POST" (见表中的 method 条目)。

注意: POST 并 不 包含文件上传信息。 见 FILES 。

REQUEST

为了方便而创建,这是一个类字典对象,先搜索 POST , 再搜索 GET 。 灵感来自于PHP的$_REQEUST 。

例如, 若 GET = {"name": "john"} , POST = {"age": '34'} , REQUEST["name"] 会是 "john" ,REQUEST["age"] 会是 "34" 。

强烈建议使用 GET 和 POST ,而不是 REQUEST 。 这是为了向前兼容和更清楚的表示。

COOKIES 一个标准的Python字典,包含所有cookie。 键和值都是字符串。cookie使用的更多信息见第12章。

FILES

一个类字典对象,包含所有上传的文件。 FILES 的键来自 input type="file" name="" / 中的name 。 FILES 的值是一个标准的Python字典, 包含以下三个键:

filename :字符串,表示上传文件的文件名。

content-type :上传文件的内容类型。

content :上传文件的原始内容。

注意 FILES 只在请求的方法是 POST ,并且提交的 form 包含 enctype="multipart/form-data" 时 才包含数据。否则, FILES 只是一个空的类字典对象。

META

一个标准的Python字典,包含所有有效的HTTP头信息。 有效的头信息与客户端和服务器有关。 这里有几个例子:

CONTENT_LENGTH

CONTENT_TYPE

QUERY_STRING :未解析的原始请求字符串。

REMOTE_ADDR :客户端IP地址。

REMOTE_HOST :客户端主机名。

SERVER_NAME :服务器主机名。

SERVER_PORT :服务器端口号。

在 META 中有效的任一HTTP头信息都是带有 HTTP_ 前缀的 键,例如:

HTTP_ACCEPT_ENCODING

HTTP_ACCEPT_LANGUAGE

HTTP_HOST :客户端发送的 Host 头信息。

HTTP_REFERER :被指向的页面,如果存在的。

HTTP_USER_AGENT :客户端的user-agent字符串。

HTTP_X_BENDER : X-Bender 头信息的值, 如果已设的话。

user

一个 django.contrib.auth.models.User 对象表示 当前登录用户。 若当前用户尚未登录, user 会设为 django.contrib.auth.models.AnonymousUser 的一个实例。 可以将它们与is_authenticated() 区别开:

if request.user.is_authenticated():

# Do something for logged-in users.

else:

# Do something for anonymous users.

user 仅当Django激活 AuthenticationMiddleware 时有效。

关于认证和用户的完整细节,见第12章。

session 一个可读写的类字典对象,表示当前session。 仅当Django已激活session支持时有效。 见第12章。

raw_post_data POST的原始数据。 用于对数据的复杂处理。

Request对象同样包含了一些有用的方法,见表H-2。

表 H-2. HttpRequest 的方法

方法

描述

__getitem__(key)

请求所给键的GET/POST值,先查找POST,然后是GET。 若键不存在,则引发异常 KeyError。

该方法使用户可以以访问字典的方式来访问一个 HttpRequest 实例。

例如, request["foo"] 和先检查 request.POST@["foo"] 再检查 request.GET@["foo"] 一 样。

has_key() 返回 True 或 False , 标识 request.GET 或 request.POST 是否包含所给的 键。

get_full_path() 返回 path ,若请求字符串有效,则附加于其后。 例如,"/music/bands/the_beatles/?print=true" 。

is_secure() 如果请求是安全的,则返回 True 。 也就是说,请求是以HTTPS的形式提交的。

QueryDict 对象

在一个 HttpRequest 对象中, GET 和 POST 属性都是 django.http.QueryDict 的实例。 QueryDict 是一个类似于字典的类,专门用来处理用一个键的多值。当处理一些HTML表单中的元素,特别是 select multiple="multiple" 之类传递同一key的多值的元素时,就需要这个类了。

translating....

QueryDict 实例是不可变的,除非创建了一个 copy() 副本。也就是说不能直接更改 request.POST 和 request.GET 的属性。

QueryDict 实现了所有标准的字典的方法,因为它正是字典的一个子类。与其不同的东西都已在表H-3中列出。

表 H-3. QueryDicts 与标准字典的区别

方法

与标准字典实现的不同

__getitem__ 与一个字典一样。但是,当一个键有多个值时, __getitem__() 返回最后一个值。

__setitem__ 将所给键的值设为 [value] (一个只有一个 value 元素的 Python列表)。 注意,因对其它的字典函数有副作用,故它只能被称 为一个可变的 QueryDict (通过 copy() 创建)。

get() 如果一个键多个值,和 __getitem__ 一样, get() 返回 最后一个值。

update()

参数是一个 QueryDict 或标准字典。 和标准字典的

update 不同,这个方法*增加*而不是替换一项内容:

q = QueryDict('a=1')

q = q.copy() # 使其可变

q.update({'a': '2'})

q.getlist('a')

['1', '2']

q['a'] # 返回最后一个值

['2']

items()

和标准字典的 items() 方法一样, 不同的是它和 __getitem()__ 一样,返回最后一个值:

q = QueryDict('a=1a=2a=3')

q.items()

[('a', '3')]

values() 和标准字典的 values() 方法一样, 不同的是它和 __getitem()__ 一样,返回最后一个值。

另外, QueryDict 还有在表H-4中列出的方法。

表 H-4. 附加的 (非字典的) QueryDict 方法

方法

描述

copy() 返回一个对象的副本,使用的是Python标准库中的 copy.deepcopy() 。 该副本是可变的, 也就是说,你能改变它的值。

getlist(key) 以Python列表的形式返回所请求键的数据。 若键不存在则返回空列表。 它保证了一定会返回某种形式的list。

setlist(key, list_) 将所给键的键值设为 list_ (与 __setitem__() 不同)。

appendlist(key, item) 在 key 相关的list上增加 item 。

setlistdefault(key, l) 和 setdefault 一样, 不同的是它的第二个参数是 一个列表,而不是一个值。

lists()

和 items() 一样, 不同的是它以一个列表的形式 返回字典每一个成员的所有值。 例如:

q = QueryDict('a=1a=2a=3')

q.lists()

[('a', ['1', '2', '3'])]

urlencode() 返回一个请求字符串格式的数据字符串 (如, "a=2b=3b=5" )。

一个完整的例子

例如, 给定这个HTML表单:

form action="/foo/bar/" method="post"

input type="text" name="your_name" /

select multiple="multiple" name="bands"

option value="beatles"The Beatles/option

option value="who"The Who/option

option value="zombies"The Zombies/option

/select

input type="submit" /

/form

如果用户在 your_name 中输入 "John Smith" ,并且在多选框中同时选择了The Beatles和The Zombies,那么以下就是Django的request对象所拥有的:

request.GET

{}

request.POST

{'your_name': ['John Smith'], 'bands': ['beatles', 'zombies']}

request.POST@['your_name']

'John Smith'

request.POST@['bands']

'zombies'

request.POST.getlist('bands')

['beatles', 'zombies']

request.POST.get('your_name', 'Adrian')

'John Smith'

request.POST.get('nonexistent_field', 'Nowhere Man')

'Nowhere Man'

使用时请注意:

GET , POST , COOKIES , FILES , META , REQUEST , raw_post_data 和 user 这些属性都是延迟加载的。 也就是说除非代码中访问它们,否则Django并不会花费资源来计算这些属性值。

如何在django的form验证中如何调用session

使用FTL标签来使用指令,FreeMarker有3种FTL标签,这和HTML标签是完全类似的.

1,开始标签:#directivename parameter

2,结束标签:/#directivename

3,空标签:#directivename parameter/

如何使用django session

Session 框架允许每一个用户保存并取回数据。它将数据保存在服务器端,并将发送和接收 Cookie 的操作包装起来。

django2.0怎么取session的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于django入门、django2.0怎么取session的信息别忘了在本站进行查找喔。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/192.html