导读:很多朋友问到关于django如何存储时间的相关问题,本文恰卡编程网就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
如何使用django session
Django 完全支持匿名 Session。 Session 框架允许每一个用户保存并取回数据。它将数据保存在服务器端,并将发送和接收 Cookie 的操作包装起来。在 Cookie 中包含的是 Session ID,而不是数据本身。
启用 Sessions¶
Session 是通过 中间件 的方式实现的。
要启用 Session 的功能,需要完成以下步骤:
修改 MIDDLEWARE_CLASSES 设置,并确定其中包含了'django.contrib.sessions.middleware.SessionMiddleware' 。``django-admin.py startproject`` 所创建的缺省的 settings.py 就已经激活了 SessionMiddleware 。
将 'django.contrib.sessions' 添加到你的 INSTALLED_APPS 设置中,并执行 manage.py syncdb以便安装用于存储 Session 数据的表格。
Changed in Django 1.0: 如果你并未使用数据库存储 Session,则此步骤可以忽略;参考 配置 Session 引擎。
If you don’t want to use sessions, you might as well remove the SessionMiddleware line fromMIDDLEWARE_CLASSES and 'django.contrib.sessions' from your INSTALLED_APPS. It’ll save you a small bit of overhead.
配置 Session 引擎¶
New in Django 1.0..
缺省情况下,Django 将 Session 存储在数据库中 (使用模型django.contrib.sessions.models.Session)。尽管这很方便,但在某些情况下,把 Session 放在其它的地方速度会更快。因此 Django 允许您通过配置让它将 Session 数据保存在文件系统或缓冲区中。
使用基于文件的 Session¶
要使用基于文件的 Session,请将 SESSION_ENGINE 设置为"django.contrib.sessions.backends.file" 。
您可能还需要修改 SESSION_FILE_PATH 这一设置以便控制 Django 存储 Session 文件的位置,缺省情况下,它使用 tempfile.gettempdir() ,通常是 /tmp 。
使用基于缓冲区的 Session¶
要使用 Django 的缓冲区系统来保存 Session,需要将 SESSION_ENGINE 设置为"django.contrib.sessions.backends.cache" 。您必须确保您已经配置了缓冲区,详情请参考 缓冲区文档 。
Note
只有在使用 Memcached 作为缓冲后台时,才能使用基于缓冲区的 Session。因为以本地内存作为缓冲后台时,它存储缓冲数据的时间太短了,这样直接访问文件或数据库的速度,要比通过缓冲区访问文件或数据库的速度更快一些。
在视图中使用 Session¶
在开启 SessionMiddleware 后,每一个 HttpRequest 对象 (Django 视图函数的第一个参数) 救火有一个session 属性,它是一个类字典对象。您可以直接对其读写。
Session 对象有以下标准字典函数:
__getitem__(key)
例子: fav_color = request.session['fav_color']
__setitem__(key, value)
例子: request.session['fav_color'] = 'blue'
__delitem__(key)
例子: del request.session['fav_color']. This raises KeyError if the given key isn’t already in the session.
__contains__(key)
例子: 'fav_color' in request.session
get(key, default=None)
例子: fav_color = request.session.get('fav_color', 'red')
keys()
items()
setdefault()
clear()
New in Django 1.0: setdefault() 和 clear() 是在这个版本新加的。
django中怎么格式化当前时间
datetime.datetime.now()
#2012-03-15 11:50:57.728000
这个会返回 microsecond。因此这个是我们不需要的。所以得做一下修改
datetime.datetime.now().strftime("%Y-%m-%d %H:%I:%S");
格式化之后,就得到了我们常见的格式了。
附:strftime参数
strftime(format[, tuple]) - string
将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
用django定义自动插入的时间显示格式怎么调
在模板中可以使用time和date过滤器格式化时间,如:{{ example_date | date:”F
j, Y” }}。
可以在settings里定义DATE_FORMAT,默认值为 'N j, Y';定义DATETIME_FORMAT,默认值是 'N j, Y, P',定义TIME_FORMAT,默认值为'P'。
如果这些都还不能够满足需求,那么就写一个自定义模板过滤器,或者在模型中定义一个新方法。
Django中对于上传的文件的保存方法(时间+文件名)
这是在windows环境下,且要加入上传时间,与本来的文件名拼在一起,形成一个整个的文件名,所以,其必须将文件名放在最后,而将时间放在前面,避免与后缀名冲突,除此之外,还要使用time.time()方法,取得时间戳(格式化时间会与windows系统产生冲突),并且最好进行取整,然后再将其转化为字符串与文件名拼起来组成新的文件名,从而进行保存。实例如下:
python django models.DateTimeField(auto_now_add=True) 数据库存储
在模板中用filter进行定义,假设你的在模板中的变量名是value,则
{{value|date:"Y-m-d H:i:s"}}
pythonmktime 函数 时区
这个问题得分成几个子问题
1 数据库本身的时区
2 数据库里数据的时区
3 python代码里的时区
首先对1你可以通过命令去设置数据库的时区 像mysql直接用sql语句就能设置
其次对2 在存储时间时尽量用timestamp去存储 这样读出来可以方便的转成所需用的时区的时间
3 python自己的时区 比如你用datetime生成时间时需要每次都记得时区设置 在django和flask里设置好默认时区
做好这三点才能保证程序和数据库和数据的时区保持统一
结语:以上就是恰卡编程网为大家整理的关于django如何存储时间的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django如何存储时间的相关内容别忘了在本站进行查找喔。
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~