本文对blog项目的文件结构进行简单说明
app ---> 程序主目录
api-->测试中的api
auth -->登录认证文件
main-->主入口文件
static--> 静态文件
template-->html 模板文件
migrations--> SQLAlchemy生成文件,用于数据迁移
test-->selenuim测试文件

用flask编写自己的博客(2)_第1张图片

创建flask实例:

用flask编写自己的博客(2)_第2张图片
加载需要加载的第三方插件,如csrf,bootstrap


app.init中设置blueprint注册所有的页面

用flask编写自己的博客(2)_第3张图片

其中static_folder指向的就是app下的static目录,在页面中用url_for()进行引用

auth蓝图创建(main蓝图相同)

用flask编写自己的博客(2)_第4张图片
包含auth包里面的所有模块(表单和试图)
用flask编写自己的博客(2)
views中写页面中需要的一些后台函数
用flask编写自己的博客(2)_第5张图片

1、利用flask_login中的current_user判断用户是否登录(已登录current_user包含用户ID,利用hasattr函数进行判断,并跳转到指定页面)

2、form.validate_on_submit判断用户是否提交表单(也可以用methods中的post来判断)

3、登录认证过程,并根据情况返回不同的flash闪现消息,认证成功,跳转到指定页面

selenium 单元测试

调用的是Chrome浏览器进行测试,需要Chromedriver.exe,下载自行百度(下图是gif动画,貌似不能用-

用flask编写自己的博客(2)_第6张图片
用flask编写自己的博客(2)_第7张图片

views模块中的代码大同小异,仅列举一个,后期对一些函数做单独的说明

第三弹:对jinja2 网页模板进行分析,使用bootstrap+wtf快速布局(待续)

第四弹,整个项目的总结以及扩展,qrcode等一些小工具的介绍(...)

用flask编写自己的博客(1)
项目源码地址:Github