原标题:神级程序员花了十五天才把《Flask Web开发》总结!史上最全教程
解决办法如下图:
解决办法见下图:
2.书本87页用shell插入新用户数据有bug
本问题在于数据库设计含有外键,直接按照书中插入代码,未插入用户角色外键,是无法插入数据的。
解决办法:删除User表和Role表之间的多对一关系
然后,删除项目中所有**.sqlite文件和migrations文件夹,具体如下:
然后按照下图所示三步,重新创建数据库(PS:此处方法见第5章5.11节):
这些处理完毕后,依照书上插入代码,依旧会报找不到User和db错误,解决办法如下:
完成以上数据插入任务后,在CMD控制台输入python manage.py runserver开启服务,浏览器中输入http://127.0.0.1:5000/auth/login,然后用插入的邮箱号和密码进行登陆,会得到如下结果:
4.书本92页执行一个新的数据库迁移
在CMD窗口中,依次输入python manage.py db migrate -m “the second migration”、python manage.py db upgrade命令,具体执行以及得到结果如下:
5.书本94页示例8-22代码因为Flask-Login版本问题出现如下图所示bug
解决办法见下图:
让我疑惑的是,我写笔记时看的是实体书,上面代码有问题,下面截图的是电子书,上面却是正确的>~<,具体如下:
问题解决方案网址(https://segmentfault.com/q/1010000004041497)
测试is_authenticated方法如下:
附加书本95页页面运行结果:
注:第8章主要讲解了如何使用Flask框架实现用户登陆、注册功能,以及使用邮箱进行用户注册确认以及密码修改确认等。感觉第8章内容就是对书本前7章内容的一次综合练习,所有使用的技术点都可以在前7章中找到。所以,个人感觉只要踏实把第8章所有代码以及实现思路弄懂,才算是刚刚入门Flask框架。
好了,既然Role表和User表之间有了一对多而存在的外键关系,那注册功能插入用户数据时,必须得要确认用户角色,否则无法插入。
刚刚进行了注册测试,竟然不用确定用户角色,也可以插入成功。这样的感觉违背了我学习数据库的理论知识啊,之前第5章,进行插入数据时,行不通,现在好了。估计是之前学习时,代码有点bug。
注:本章相当于主要在讲数据库的知识,和本书核心Flask框架的知识点联系不大,其中核心思想就是定义权限来分配角色等级。一个用户有的只有一种权限,有的可以有多种权限。权限的分配很灵活,这样处理操作大大简化了数据库的设计难度,也提高了数据的条理性。
管理员修改个人信息界面
显示用户头像的资料页面
注:本章主要实现博客系统普通用户和管理员角色的个人信息编辑功能实现,此处实现没有什么技术亮点和难点,只要认真完成书本前述部分,这部分功能完全没有障碍。
第11章 博客文章
1.有关书本119页示例11-8代码
本部分代码在作者GitHub上没有示例代码,即如果要实现导入虚拟数据测试功能,只能自己一个代码一个代码敲。不过,这个也太多了点,一个字母出错就要改错>~<。从作者GitHub上直接克隆下来的代码,虽然没有示例代码,但是应该是作者更新代码后,在此处换了另一种实现方式,因为在项目文件中出现了一个新的fake.py文件,该文件中代码和示例11-8代码基本类似。
注:本章是对博客系统功能的扩展,主要实现用户编辑发送博客文章,其中还可以使用MarkDown来实现对文章的编辑。功能具体实现参照书本的代码讲解即可,基本不会遇到什么较难的问题。
第12章 关注者
1.书本137页和142页实际运行结果
注:本章具体实现部分的难点是关注用户记录的数据库表的设计,即多对对关系会生成一张中间表。其它部分,按照书本上的代码来上机操作,基本不会遇到什么难点。
第13章 用户评论
1.书本148页和151页实际上机运行结果
注:本章主要实现博客的用户评论功能,以及添加了一个协管员权限,具体实现没有什么难点,按照书本的代码上机操作即可。
http://www.sohu.com/a/216839756_100033985