django如何存储时间(django保存文件到数据库)

2023-03-07 17:00:36 5 0
卡卡

导读:很多朋友问到关于django如何存储时间的相关问题,本文恰卡编程网就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

如何使用django session

Django 完全支持匿名 Session。 Session 框架允许每一个用户保存并取回数据。它将数据保存在服务器端,并将发送和接收 Cookie 的操作包装起来。在 Cookie 中包含的是 Session ID,而不是数据本身。

django如何存储时间(django保存文件到数据库)

启用 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如何存储时间的相关内容别忘了在本站进行查找喔。

收藏
分享
海报
0 条评论
5
上一篇:从0学python要多久(新手学python需要多久) 下一篇:django如何修改模板?

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码