本有的情节相当于是对前7章内容的切切实实进行,本有的情节相当于是对前7章内容的实际实施

目录

style=”font-family: 宋体; font-size: 14pt;”>前言

style=”font-family: 钟鼓文;”>第8 style=”font-family: 金鼎文;”>章
用户认证

style=”font-family: 楷书;”>第9 style=”font-family: 行草;”>章
用户角色

style=”font-family: 黑体;”>第10 style=”font-family: 宋体;”>章
用户资料

style=”font-family: 行草;”>第11 style=”font-family: 大篆;”>章
博客文章

style=”font-family: 宋体;”>第12 style=”font-family: 宋体;”>章
关注者

style=”font-family: 小篆;”>第13 style=”font-family: 石籀文;”>章
用户评价

style=”font-family: 石籀文;”>第14 style=”font-family: 宋体;”>章
应用编程接口

 

第10章 用户资料

1.书本105页、107、109页和112页操作运行结果

此处依据书本上的代码讲解,举办编辑代码操作,其中蒙受的问题在眼前均已遭逢过,所以到了这边基本没啥难点。根据书本讲解,运行结果具体如下:

用户简介页面

 365体育官网 1

 

普通用户修改个人音讯界面

 365体育官网 2

 

365体育官网 3

领队修改个人新闻界面

 365体育官网 4

 

365体育官网 5

 

来得用户头像的材料页面

 365体育官网 6

 

 

 

注:本章紧要完毕博客系统普通用户和大班角色的个人音信编辑功用完毕,此处完成没有怎么技术亮点和难题,只要认真完毕书本前述部分,这有的效益完全没有障碍。

 

 


第11章 博客小说

1.关于书籍119页示范11-8代码

本有的代码在小编GitHub上尚无以身作则代码,即只要要促成导入虚拟数据测试功用,只可以自己一个代码一个代码敲。不过,那个也太多了点,一个假名出错就要改错>~<。从小编GitHub上间接克隆下来的代码,尽管尚未以身作则代码,可是应当是小编更新代码后,在此间换了另一种完毕方式,因为在项目文件中出现了一个新的fake.py文件,该文件中代码和演示11-8代码基本类似。

 

2.图书117页、123页、125页和130页操作运行结果

 365体育官网 7

365体育官网 8

 

 365体育官网 9

365体育官网 10

 

注:本章是对博客系统机能的壮大,紧要完毕用户编辑发送博客小说,其中还足以行使马克Down来兑现对小说的编制。作用具体贯彻参照书本的代码讲解即可,基本不会遇上怎么着较难的题材。

 

 


前言

第1章-第7章学习实践记录请参见:《Flask
Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

 

正文记录自己上学《Flask
Web开发——基于Python的Web应用开发实践》的第8章-第14章内容。相比较于刚起始学习第1-7章内容来说,本有的情节实战性更强,而且在书本上境遇的题材也绝对较少,如若认真弄懂前7章内容的话,本有的内容相当于是对前7章内容的实际执行,学习也很自在。

 

率先说圣元(Meadjohnson)下本有的品种示范完结了什么功效?

  • 用户角色:普通用户、管理员
  • 切切实实效果:登陆、注册、发表小说、编辑成文、用户间关怀、用户评价、修改个人音信、管理用户评价、马克(Mark)Down呈现小说格式。

下图中所示为一个总指挥角色登陆系统各部分机能图片动态图:

 365体育官网 11

自身自己上机演练代码:(PS:和作者GitHub上代码有微微组别)

 

 


 

第9章 用户角色

1.书本99页使用shell会话把角色写入数据库问题

由于在第8章完成进度中,我把Role表和User表之间的外键关系给删除了,假设在这章不重复復苏两表之间的涉嫌就无法兑现用户角色的机能。所以,在那种情形下,我又得要把数据库重新初步化、迁移和创造。之所以这么做,而不是直接举办搬迁和成立,是因为我在一贯开展搬迁和开创的长河中,报错:default属性在框架中已经存在,无法创建新的Role表,那几个似是而非没有解决,由于初学,无奈,直接删除migrations文件夹和扭转的data-dev.sqlite数据库文件,重新开展起始化、迁移和开创,发现一切OK。具体如下:

 365体育官网 12

 

好了,既然Role表和User表之间有了一对多而留存的外键关系,这注册功用插入用户数量时,必须得要认可用户角色,否则不可以插入。

 365体育官网 13

 

碰巧展开了登记测试,竟然毫无确定用户角色,也得以插入成功。那样的痛感违背了自身学习数据库的理论知识啊,从前第5章,举行插队数据时,行不通,现在好了。推断是事先学习时,代码有点bug。

 

注:本章相当于重点在讲数据库的知识,和本书要旨Flask框架的知识点联系不大,其中宗旨理想就是概念权限来分配角色等级。一个用户有的唯有一种权限,有的可以有多种权力。权限的分红很灵巧,那样处理操作大大简化了数据库的布署难度,也加强了数额的条理性。

 

 


第9章 用户角色

1.书本99页使用shell会话把角色写入数据库问题

鉴于在第8章已毕进度中,我把Role表和User表之间的外键关系给删除了,要是在那章不重复恢复两表之间的涉及就无法兑现用户角色的作用。所以,在那种气象下,我又得要把数据库重新初步化、迁移和制造。之所以那样做,而不是直接进行搬迁和开创,是因为我在平素开展搬迁和创办的历程中,报错:default属性在框架中早就存在,无法制造新的Role表,那个荒唐没有解决,由于初学,无奈,直接删除migrations文件夹和扭转的data-dev.sqlite数据库文件,重新开展早先化、迁移和创办,发现一切OK。具体如下:

 365体育官网 14

 

好了,既然Role表和User表之间有了一对多而留存的外键关系,那注册作用插入用户数量时,必须得要认可用户角色,否则无法插入。

 365体育官网 15

 

正巧展开了登记测试,竟然毫无确定用户角色,也得以插入成功。那样的觉得违背了自身上学数据库的理论知识啊,此前第5章,进行插队数据时,行不通,现在好了。估算是事先学习时,代码有点bug。

 

注:本章相当于重点在讲数据库的学识,和本书大旨Flask框架的知识点联系不大,其中主旨绪想就是概念权限来分配角色等级。一个用户有的唯有一种权限,有的可以有多种权力。权限的分红很灵敏,那样处理操作大大简化了数据库的宏图难度,也增强了数额的条理性。

 

 


第13章 用户评价

1.书本148页和151页实际上机运行结果

 365体育官网 16

365体育官网 17

 

 

注:本章紧要完毕博客的用户评价功用,以及添加了一个协管员权限,具体落到实处没有啥样难题,按照书本的代码上机操作即可。

 

 

 


第14章 应用编程接口

1.书本168页测试打印结果

此处具体操作需求先在CMD中开拓服务,才能收获api中数据。(PS:推荐一篇博客:http://blog.csdn.net/huang5487378/article/details/60778293

运行结果:

 365体育官网 18

365体育官网 19

 

 

 

第8章 用户认证

1.书本79页密码散列成效shell测试有bug

只要学完第7章,并依据71页manage.py中写入启动脚本代码,在支配台输入python
manage.py shell会报以下错误:TypeError: <flask_script.commands.Shell
object at 0x0000000004E29668>: ‘dict’ object is not callable

365体育官网 20

 

解决办法如下图:

 365体育官网 21

 

继之,尽管如故安装书本上命令提醒输入指令,会报以下错误:Traceback
(most recent call last):File “<console>”, line 1, in
<module>

解决办法见下图:

 365体育官网 22

 

2.书本87页用shell插入新用户数量有bug

本问题在于数据库设计带有外键,直接根据书中插入代码,未插入用户角色外键,是力不从心插入数据的。

解决办法:删除User表和Role表之间的多对一涉嫌

 365体育官网 23

 

然后,删除项目中兼有**.sqlite文件和migrations文件夹,具体如下:

 365体育官网 24

 

下一场依照下图所示三步,重新创立数据库(PS:此处方法见第5章5.11节):

 365体育官网 25

 

这么些处理达成后,按照书上插入代码,依然会报找不到User和db错误,解决办法如下:

 365体育官网 26

 

形成上述数量插入职务后,在CMD控制台输入python
manage.py
runserver开启服务,浏览器中输入http://127.0.0.1:5000/auth/login,然后用插入的邮箱号和密码进行登陆,会得到如下结果:

 365体育官网 27

 

 365体育官网 28

 

 

3.书本89页实际运作结果(PS:经验证,数据可以注册成功)

 

 365体育官网 29

365体育官网 30

 

4.书本92页执行一个新的数据库迁移

在CMD窗口中,依次输入python
manage.py db migrate -m “the second migration”、python manage.py db
upgrade命令,具体举办以及取得结果如下:

 365体育官网 31

365体育官网 32

 

5.书本94页示例8-22代码因为Flask-Login版本问题出现如下图所示bug

 365体育官网 33

 

解决办法见下图:

 365体育官网 34

 

让自己猜忌的是,我写笔记时看的是实体书,上边代码有题目,上边截图的是电子书,上边却是正确的>~<,具体如下:

 365体育官网 35

 

题材解决方案网址(https://segmentfault.com/q/1010000004041497

测试is_authenticated方法如下:

 365体育官网 36

 

叠加书本95页页面运行结果:

 365体育官网 37

365体育官网 38

 

 

并发上图的来由:

花了一个多小时找错,结果发现是温馨照着书本83页敲示例8-8代码时少了return语句,直接写User.query.get(int(user_id)),具体如下:

 365体育官网 39

 

缓解来源(https://github.com/maxcountryman/flask-login/issues/302):

 365体育官网 40

 

运转成功界面如下:

 365体育官网 41

 

下边是本身要好修改数据库数据中邮箱验证属性为True时来得结果(PS:首要在于邮箱验证时须求提请临时密码,所以就没填写具体邮箱数据,直接手动改写后台数据库中多少):

 365体育官网 42

 

注:第8章重点教师了怎么利用Flask框架完毕用户登陆、注册功用,以及接纳邮箱举办用户注册确认以及密码修改确认等。感觉第8章内容就是对图书前7章内容的五回综合演习,所有应用的技术点都可以在前7章中找到。所以,个人感觉只要踏踏实实把第8章所有代码以及落到实处思路弄懂,才总算刚刚入门Flask框架。

 

 


前言

第1章-第7章学习实践记录请参见:《Flask
Web开发——基于Python的Web应用开发实践》一字一板上机实践(上)

 

本文记录自己上学《Flask
Web开发——基于Python的Web应用开发执行》的第8章-第14章内容。比较于刚开始读书第1-7章内容来说,本有的内容实战性更强,而且在书本上蒙受的问题也针锋相对较少,要是认真弄懂前7章内容的话,本有的内容约等于是对前7章内容的切切实实实施,学习也很轻松。

 

率先说飞鹤(Aptamil)下本有的品种示范完结了哪些职能?

  • 用户角色:普通用户、管理员
  • 具体功效:登陆、注册、公布文章、编辑成文、用户间关切、用户评价、修改个人音讯、管理用户评价、马克Down突显作品格式。

下图中所示为一个总指挥角色登陆系统各部分机能图片动态图:

 365体育官网 43

自我自己上机演练代码:(PS:和作者GitHub上代码有稍许分别)

 

 


第14章 应用编程接口

1.书本168页测试打印结果

此间具体操作需要先在CMD中开辟服务,才能博得api中数量。(PS:推荐一篇博客:http://blog.csdn.net/huang5487378/article/details/60778293

运转结果:

 365体育官网 44

365体育官网 45

 

 

 

第13章 用户评价

1.书本148页和151页实际上机运行结果

 365体育官网 46

365体育官网 47

 

 

注:本章首要完毕博客的用户评价效用,以及添加了一个协管员权限,具体落到实处没有怎么困难,根据书本的代码上机操作即可。

 

 

 


 


第11章 博客小说

1.有关书籍119页演示11-8代码

本有的代码在小编GitHub上平素不以身作则代码,即如若要落成导入虚拟数据测试作用,只可以自己一个代码一个代码敲。可是,那些也太多了点,一个字母出错就要改错>~<。从作者GitHub上直接克隆下来的代码,即使并未以身作则代码,不过应该是笔者更新代码后,在那里换了另一种落成情势,因为在档次文件中冒出了一个新的fake.py文件,该文件中代码和演示11-8代码基本相仿。

 

2.书本117页、123页、125页和130页操作运行结果

 365体育官网 48

365体育官网 49

 

 365体育官网 50

365体育官网 51

 

注:本章是对博客系统机能的恢弘,首要已毕用户编辑发送博客小说,其中仍可以接纳马克(Mark)Down来落到实处对文章的编排。成效具体已毕参照书本的代码讲解即可,基本不会碰着什么较难的题目。

 

 


第8章 用户认证

1.书本79页密码散列作用shell测试有bug

假定学完第7章,并根据71页manage.py中写入启动脚本代码,在支配台输入python
manage.py shell会报以下错误:TypeError: <flask_script.commands.Shell
object at 0x0000000004E29668>: ‘dict’ object is not callable

365体育官网 52

 

解决办法如下图:

 365体育官网 53

 

接着,假如依然安装书本上命令提示输入指令,会报以下错误:Traceback
(most recent call last):File “<console>”, line 1, in
<module>

解决办法见下图:

 365体育官网 54

 

2.书本87页用shell插入新用户数据有bug

本问题在于数据库设计带有外键,直接根据书中插入代码,未插入用户角色外键,是不能插入数据的。

解决办法:删除User表和Role表之间的多对一关联

 365体育官网 55

 

接下来,删除项目中具有**.sqlite文件和migrations文件夹,具体如下:

 365体育官网 56

 

下一场根据下图所示三步,重新创立数据库(PS:此处方法见第5章5.11节):

 365体育官网 57

 

那一个处理落成后,按照书上插入代码,依旧会报找不到User和db错误,解决办法如下:

 365体育官网 58

 

成功以上数量插入职务后,在CMD控制台输入python
manage.py
runserver开启服务,浏览器中输入http://127.0.0.1:5000/auth/login,然后用插入的邮箱号和密码进行登陆,会得到如下结果:

 365体育官网 59

 

 365体育官网 60

 

 

3.书本89页实际运行结果(PS:经验证,数据可以注册成功)

 

 365体育官网 61

365体育官网 62

 

4.书本92页执行一个新的数据库迁移

在CMD窗口中,依次输入python
manage.py db migrate -m “the second migration”、python manage.py db
upgrade命令,具体举行以及取得结果如下:

 365体育官网 63

365体育官网 64

 

5.书本94页示例8-22代码因为Flask-Login版本问题出现如下图所示bug

 365体育官网 65

 

解决办法见下图:

 365体育官网 66

 

让自己狐疑的是,我写笔记时看的是实体书,上边代码有问题,上边截图的是电子书,上边却是正确的>~<,具体如下:

 365体育官网 67

 

题目一蹴而就方案网址(https://segmentfault.com/q/1010000004041497

测试is_authenticated方法如下:

 365体育官网 68

 

外加书本95页页面运行结果:

 365体育官网 69

365体育官网 70

 

 

出现上图的来头:

花了一个多钟头找错,结果发现是自己照着书籍83页敲示例8-8代码时少了return语句,直接写User.query.get(int(user_id)),具体如下:

 365体育官网 71

 

缓解来源(https://github.com/maxcountryman/flask-login/issues/302):

 365体育官网 72

 

运行成功界面如下:

 365体育官网 73

 

上边是本身要好修改数据库数据中邮箱验证属性为True时显示结果(PS:主要在于邮箱验证时必要报名临时密码,所以就没填写具体邮箱数据,直接手动改写后台数据库中数量):

365体育官网, 365体育官网 74

 

注:第8章重点讲解了哪些利用Flask框架完结用户登陆、注册功用,以及拔取邮箱举行用户注册确认以及密码修改确认等。感觉第8章内容就是对图书前7章内容的三次综合演习,所有应用的技术点都得以在前7章中找到。所以,个人感觉只要扎扎实实把第8章所有代码以及贯彻思路弄懂,才终于刚刚入门Flask框架。

 

 


 

第10章 用户资料

1.书本105页、107、109页和112页操作运行结果

这边依照书本上的代码讲解,进行编辑代码操作,其中遇到的问题在前面均已碰到过,所以到了此处基本没啥难点。依据书本讲解,运行结果具体如下:

用户简介页面

 365体育官网 75

 

普通用户修改个人新闻界面

 365体育官网 76

 

365体育官网 77

领队修改个人新闻界面

 365体育官网 78

 

365体育官网 79

 

浮现用户头像的素材页面

 365体育官网 80

 

 

 

注:本章主要落成博客系统普通用户和领队角色的个人音信编辑作用实现,此处已毕没有什么技能亮点和困难,只要认真落成书本前述部分,这一部分意义完全没有阻碍。

 

 


第12章 关注者

1.书本137页和142页实际运作结果

 365体育官网 81

365体育官网 82

 

 365体育官网 83

 

 2.操作完第12章代码后,即使选用用户退出,可能会并发以下bug:AttributeError:
‘AnonymousUser’ object has no attribute ‘followed_posts’

 365体育官网 84

 

解决办法,在models.py文件中找到AnonymousUser类,在那几个类中添加一个措施,具体代码如下:

@property
def followed_posts(self):
    return Post.query.join(Follow, Follow.followed_id == Post.author_id) \
        .filter(Follow.follower_id == None) 

 365体育官网 85

 

注:本章具体贯彻部分的难题是关怀用户记录的数据库表的陈设性,即多对对关系会生成一张中间表。其余一些,依据书本上的代码来上机操作,基本不会赶上什么样困难。

 

 


目录

style=”font-family: 宋体; font-size: 14pt;”>前言

style=”font-family: 陶文;”>第8 style=”font-family: 陶文;”>章
用户认证

style=”font-family: 大篆;”>第9 style=”font-family: 甲骨文;”>章
用户角色

style=”font-family: 金鼎文;”>第10 style=”font-family: 燕体;”>章
用户资料

style=”font-family: 行书;”>第11 style=”font-family: 陶文;”>章
博客文章

style=”font-family: 宋体;”>第12 style=”font-family: 宋体;”>章
关注者

style=”font-family: 大篆;”>第13 style=”font-family: 大篆;”>章
用户评价

style=”font-family: 黑体;”>第14 style=”font-family: 金鼎文;”>章
应用编程接口


第12章 关注者

1.书本137页和142页实际运作结果

 365体育官网 86

365体育官网 87

 

 365体育官网 88

 

 2.操作完第12章代码后,倘若选用用户退出,可能会冒出以下bug:AttributeError:
‘AnonymousUser’ object has no attribute ‘followed_posts’

 365体育官网 89

 

解决办法,在models.py文件中找到AnonymousUser类,在这一个类中添加一个办法,具体代码如下:

@property
def followed_posts(self):
    return Post.query.join(Follow, Follow.followed_id == Post.author_id) \
        .filter(Follow.follower_id == None) 

 365体育官网 90

 

注:本章具体落到实处部分的难题是关爱用户记录的多少库表的设计,即多对对关系会生成一张中间表。其余一些,遵照书本上的代码来上机操作,基本不会遇上什么样困难。

 

 


相关文章