项目阶段之flask(五)_字符串



1.用户新闻列表获取

思路分析​:

1.获取参数

2.校验参数,为空校验

3.分页查询用户发布的新闻

4.获取分页对象数据

5.携带数据返回页面展示



项目阶段之flask(五)_字符串_02



2.关注&取消关注实现

思路分析​:

0.判断用户是否登录

1.获取参数

2.校验参数,为空校验

3.校验操作类型

4.根据作者编号取出作者对象,判断作者对象是否存在

5.根据操作类型关注或者取消操作

6.返回响应



项目阶段之flask(五)_字符串_03



3.用户关注列表

实现思路​:

1.获取参数

2.参数类型转换

3.分页查询用户关注的人

4.取出分页对象的数据,总页数,当前页,当前页对象列表,

5.将对象列表转成字典列表

6.拼接数据渲染页面



项目阶段之flask(五)_服务器_04



4.管理员登录

操作流程:

1.判断请求方式,如果是get直接渲染页面

2.如果是post请求,获取参数

3.校验参数,为空校验

4.根据用户名取出管理员对象,判断管理员是否存在

5.判断管理员的密码是否正确

6.管理员的session信息记录

7.重定向到首页展示


项目阶段之flask(五)_字符串_05



5.flask内部csrf_token校验过程(理解)

提交数据的方式有两种

表单提交​:

1.在浏览器中表单页面中,需要设置一个隐藏的​​csrf_token​​值(自己设置)

2.在cookie中设置一个​​sessionID​​(服务器设置的)

服务器校验过程:

1/取出表单中的​​csrf_token​​​(加密的),使用SECRET_KET解密​​csrf_token​​​,得到未加密的​​csrf_token​

2/根据​​sessionID​​​解密出服务器空间中的​​csrf_token​​(未加密的),

3/比较二者是否相等


非表单提交​:

1.在浏览器cookie中设置​​csrf_token​​​,为了给请求头使用(headers里面的​​X-CSRFToken​​)

2.在cookie中设置一个​​sessionID​​(服务器设置的)

服务器校验过程:

1/取出请求中的​​csrf_token​​​(加密的),使用SECRET_KET解密​​csrf_token​​​,得到未加密的​​csrf_token​

2/根据​​sessionID​​​解密出服务器空间中的​​csrf_token​​(未加密的),

3/比较二者是否相等

项目阶段之flask(五)_字符串_06

项目阶段之flask(五)_服务器_07


项目阶段之flask(五)_服务器_08



6.管理员界面人数趋势图

项目阶段之flask(五)_字符串_09

其实是两个表格,在前端调用了一个模块转成了图,下面是关键的代码

项目阶段之flask(五)_服务器_10




项目阶段之flask(五)_服务器_11



小知识点

项目阶段之flask(五)_字符串_12

2.iframe是框架标签,配合a标签来使用的

3.退出时post请求,登录也是post请求

4.系统的time模块中​​time.localtime​​可以得到一个对象,里面有跟多数据,年月日,时分秒等等,我们可以根据自己的需要进行选去,如果没有用到的,比如时分秒不指定的话,默认为0

5."%Y"代表年,大写的Y代表是4位数字的年

6.​​datetime​​​模块中的​​datetime​​​中有一个方法​​strptime​​​(string'字符串' parse'解析' time ),可以将字符串解析成时间,注意此处的字符串指的是从​​time中的localtime()方法​​获取的字符串时间


项目阶段之flask(五)_服务器_13