git tag -n
:查看不同version版本说明
git check v0.1
:切换到指定版本号,每个版本可运行
框架搭建,base
基模板编写,主页编写: 蓝图分包,bootstrap
主题替换
注册登陆逻辑,添加用户注册登陆功能步骤:
- 集成flask-login,init,写好
load_user
函数后才能在所有上下文里调用current_user
- html注册、登陆原型写好
- 用户模型类(数据库建表)
- 登陆注册表单
FlaskForm
类写好 - auth蓝图中写好登陆注册的view函数: 使用
current_user
的方法判断登陆与否 - 修改对应模板html类
RBAC 基于权限的角色控制
- 创建角色和权限的模型数据库:
role
角色表和permission
权限表建立多对多关系,User
和role
一对多关系. 用户创建时自动set_role()
- 权限验证
decorator
编写,方便以后函数的权限检验
Dropzone
上传模块
extensions.py
中注册第三方模块- 设置静态参数到
settings.py
- Dropzone支持
wtf-CSRFprotect
扩展,配置一下 - 添加dropzone的
js/css
资源文件,编写upload.html
- 处理保存上传图片
- 添加photo数据库模型,建立和User的一对多关系
- 编写
upload.html
- 视图函数
main.upload
实现图片保存和图片信息写入数据库
基页面添加动态视频背景,首页组建重写透明度
- html5的
video
标签只支持avc编码的mp4 - 父元素使用
opacity
后子元素也就只能透明,所以要用rgba
设置 z-index
可指定布局所在层级
Dynamic BG
动态/静态 背景开关
- 先写
change_theme
视图函数,接受video
/photo
参数,存入cookies
中, 返回之前的页面 base.html
页面中先从cookies
中获取参数(默认video
),加载对应标签元素base.html
页面的导航栏item中写背景开关,用checkbox
,默认checked
,onclick()
中写JS函数回调,点击后JS会传checkbox
的状态参数到 0 step中的视图函数base.html
页面最后写jQuery
函数,根据cookies
中参数设定改变对应的checkbox
状态,必须要声明在script.js
文件后面,不然函数还没加载到
User
页面,Photo
详情页面编写完毕
太复杂不想写了!
使用AJAX技术,实现鼠标放到头像上之后就弹小窗口
- 编写
ajax
蓝图中的视图函数,接收user_id
后返回小窗口页面html
- 在头像的父布局
_comment.html
中添加虚拟class
和data-url
- 在
js
中编写弹出/隐藏函数,目标url就是data-url
=0.中的视图函数,返回弹窗内容后,显示出来 - 在
js
中绑定虚拟class
和弹出/隐藏函数
AJAX流程总结:点击按钮后,执行并传参给绑定的JS函数,js函数内通过
url get
的方式调用视图函数,得到返回结果。 得到结果后,将结果插入/显示到html
中,达到动态的效果。
使用js编写toast弹窗提示函数
base.html
中添加一个id
容器- css中编写toast样式,s中编写toast函数,
- js中使用时只需调用
toast(body)
就好啦~
添加图片收藏功能
各个页面添加关注功能
动态轮询推送,消息中心功能~
登陆后首页显示动态