django 后台格式化数据库查询出的日期

摘要:
在项目中,我遇到了一种情况,我使用ajax获取查询数据,数据中的一个字段是日期时间格式。模板中显示的样式非常奇怪。因为前端使用js控件,所以不能使用django的模板过滤器。因此,在本例中,我希望使用固定格式从数据库中查询日期。sql_sentence='selectxxx,xxx,date_formataslog_atfromlogwheredatefrom˃=%sanddateto˂=%s'_将句子更改为上述书写方法后,django将时间格式为“%Y-%m-%d%H:%i:%s”的%s误认为是参数。

在项目中,我遇到这样的情况,使用ajax获取查询出来的数据,而这些数据中某个字段是日期datetime格式,在模板中显示的样式很怪异。由于前端使用了js控件,也不能使用django的模板过滤器。

所以这种情况下,我想将日期从数据库中查询出来就使用固定好的格式。

django 中直接执行sql语句查询

from django.db import connection,transaction
from django.core.paginator import Paginator

#查询记录
sql_sentence='select * from log where datefrom>=%s and dateto<=%s'
params=['2015-01-01','2015-02-01']
cursor = connection.cursor()
records=cursor.execute(sql_sentence,params)

#分页
pages=Paginator(records,page_size)
records=pages.page(page_num).object_list

django 使用sql语句,加上params参数,会进行在参数加上引号进行转换,这是防止攻击的一种措施,虽然我们也可以直接通过字符串拼接方式,但是显示不如前种安全。

sql_sentence='select xxx,xxx,date_format(log_at,"%Y-%m-%d %H:%i:%S") as log_at from log where datefrom>=%s and dateto<=%s'

但是将sql_sentence换成上面的写法后,django将时间格式"%Y-%m-%d %H:%i:%S" 中的%s误认为是一个参数了。

研究后,使用该方法可以良好解决。

date_format="%Y-%m-%d %H:%i:%S"
select xxx,xxx,date_format(log_at,%s") as log_at from log where datefrom>=%s and dateto<=%s
#将格式变为一个参数
params.append(date_format)
params.extend(['2015-01-01','2015-02-01'])
#查询数据库
cursor = connection.cursor()
records=cursor.execute(sql_sentence,params)

免责声明:文章转载自《django 后台格式化数据库查询出的日期》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇GDB常用调试命令以及多进程多线程调试诛仙手游兽神坐标下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mongodb分片认证

启动configsvr 1. 确保mongdb的configsvr是采用service模式启动的,即从/etc/init.d下的脚本启动的,其用户是mongod。 2. 确保mongod的配置文件完全相同。 3. 确保整个集群的所有keyFile文件内容相同。 启动mongos 1. 使用以下命令启动,以确保用户切换为mongod: runuser -s...

mongodb权限管理

   说到mongodb就得先谈谈mongodb的用户组,和传统的关系型数据库不一样,mongodb并没有在创建应用时就要求创建权限管理组,所以类似于Robomongo这样的数据库可视化工具在创建connect时直接输入相应的address就可以直接访问和操作了,非常的方便,如下图。      在谈用户组之前先简单的说说如何安装吧。   1.新建 /ap...

04: gitlab安装与使用

1.1 gitlab安装(192.168.56.12中安装)   1、GitLab是什么?       1. GitLab实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。       2. GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。       3. 可以管理团队对仓库的访问,它非常易于浏览提交...

Oralce表空间创建和管理

1.表空间的概述    1.表空间是数据库的逻辑组成部分。     2.从物理上讲,数据库数据存放在数据文件中;     3.从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成。   2.oracle的逻辑组成    1.oracle 的逻辑结构包含 表 空间 段 区 块         2.数据库是由表空间构成,表空间又是有段构成,段是...

peewee:精致小巧的orm,sqlalchemy的一个很好的替代品

楔子 下面我们来了解一下python中的orm:peewee和peewee_async,peewee是python的一个比较精简的orm,源码是一个大概七千多行的py文件。是的,peewee只有一个py文件。至于peewee_async,从名字上也能看出这是基于peewee的一个异步orm。所以介绍peewee_async之前我们需要先介绍一下peewee...

SQL批量添加数据库中所有用户数据表描述

--SQL批量添加数据库中所有用户数据表描述 --操作说明:请先准备一数据表为名称为tblist,表名字段tbname nvarchar(255),数据表描述字段chnname nvarchar(255),将所有已存在的数据表和对应描述添加到数据表tblist中 --脚本编写步骤:1、游标读取所有数据表名;2、读取指定数据表描述;3、判断指定数据表描述是否...