1.小知识点
1.localtime = time.localtime()
将时间戳(本地的时间戳),格式化为本地的时间的对象
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=6, tm_hour=9, tm_min=50, tm_sec=50, tm_wday=6, tm_yday=6, tm_isdst=0)
可以非常方便的表示年月日时分秒,今天是本周的第几天,今天是今年的第几天
2.datetime.now()
获取本地系统的当前时间
now_time = datetime.now()
得到的时间是下面的结果
datetime.datetime(2019, 1, 6, 9, 52, 30, 630402)
3.timedelta()
时间跨度,这个时间跨度是可以做运算的
days_time = timedelta(days=2)
可以相加减,比较大小
timedelta
代表两个datetime
之间的时间差
4.date()
可以使用指定的时间来创建一个日期对象
date_time = date(2018,1,1)
5.strptime
作用,将时间的字符串,转成时间对象
1 day_start_time_str = "%s-%s-%s" % (localtime.tm_year, localtime.tm_mon,localtime.tm_mday) 2 3# 根据字符串,格式化日期对象,参数一是时间的字符串,参数二是格式化符号 4day_start_time_date = datetime.strptime(day_start_time_str, "%Y-%m-%d") 5 6# %y只能写两位数的年,%Y能匹配四位数的年,如果不对应的话,会报错. 7# "2017年11月11日"用"%Y年%m月%d日"匹配 8# 格式要一一对应
6.strftime
和5正好相反,将时间对象转换成字符串格式
7.form表单不指定method默认是GET请求;如果不指定action,就是当前页面.
8.ajaxSubmit
是表单提交,这种方式可以处理富文本
9.如果不想input的内容被更改,可以给标签添加一个属性readonly
10.vi打开文件,内有行号的时候我们可以输入:set nu
然后就可以显示行号了
11.502 Bad Gateway
指的是找不到路径,我们可以将程序启动一下,然后再去进行访问
12gunicorn启动应用程序的时候.-w
表示进程 (worker cpu*2*8+1
)里面的数字是核数*线程数进行计算的
2.管理员界面用户列表
请求路径: /admin/user_list
请求方式: GET
请求参数:p
返回值:渲染user_list.html
页面,data
字典数据
步骤:
1.获取参数,p
2.参数类型转换
3.分页查询用户数据
4.获取分页对象属性,总页数,当前页,当前页对象列表
5.用户对象列表转换成字典列表
6.拼接数据,渲染页面
3.管理员界面获取/设置新闻审核列表
请求路径: /admin/news_review
请求方式: GET
请求参数: GET, p,keyword
返回值:渲染user_list.html
页面,data字典数据
实现步骤:
1.获取参数,p
2.参数类型转换
3.分页查询待审核和未通过的新闻数据
4.获取分页对象属性,总页数,当前页,当前页对象列表
5.用户对象列表转换成字典列表
6.拼接数据,渲染页面
4.管理员界面获取/设置新闻审核详情
请求路径:/admin/news_review_detail
请求方式: GET,POST
请求参数: GET, news_id, POST,news_id, action
返回值:GET,渲染news_review_detail.html
页面,data字典数据
实现思路:
1.判断请求方式,如果是GET请求,
2.获取新闻编号
3.获取新闻对象,判断新闻对象是否存在
4.携带新闻对象的数据渲染页面
5.如果是POST请求,获取参数
6.校验操作类型
7.根据编号获取新闻对象,判断新闻对象是否存在
8.根据操作类型,改变新闻的状态
9.返回响应
5.管理员界面获取/设置新闻版式编辑详情
请求路径:/admin/news_edit_detail
请求方式: GET, POST
请求参数: GET, news_id, POST(news_id,title,digest,content,index_image,category_id)
返回值:GET,渲染news_edit_detail.html
页面,data字典数据, POST(errno,errmsg)
操作步骤:
1.判断请求方式,如果是GET请求
2.获取新闻编号
3.通过新闻编号查询新闻对象
4.携带新闻数据,渲染页面
5.如果是POST请求,获取参数
6.参数校验,为空校验
7.根据新闻编号取出新闻对象
8.上传新闻图片
9.设置新闻对象的属性
10.返回响应