本文记录本身攻读《Flask,本文记录自身学习《Flask

目录

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

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

style=”font-family: 石籀文;”>第七 style=”font-family: 黑体;”>章
用户剧中人物

style=”font-family: 陶文;”>第玖 style=”font-family: 草书;”>章
用户资料

style=”font-family: 钟鼓文;”>第一一 style=”font-family: 大篆;”>章
博客小说

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

style=”font-family: 陶文;”>第1三 style=”font-family: 金鼎文;”>章
用户评价

style=”font-family: 小篆;”>第一四 style=”font-family: 楷书;”>章
应用编制程序接口

目录

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

style=”font-family: 小篆;”>第玖 style=”font-family: 石籀文;”>章
用户认证

style=”font-family: 草书;”>第七 style=”font-family: 行书;”>章
用户剧中人物

style=”font-family: 大篆;”>第七 style=”font-family: 草书;”>章
用户资料

style=”font-family: 钟鼓文;”>第二1 style=”font-family: 黑体;”>章
博客小说

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

style=”font-family: 小篆;”>第23 style=”font-family: 燕体;”>章
用户评价

style=”font-family: 宋体;”>第三4 style=”font-family: 大篆;”>章
应用编制程序接口

 

 

 

 



前言

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

 

本文记录自身读书《Flask
Web开发——基于Python的Web应用开发执行》的第十章-第2四章内容。相比较于刚先生发轫攻读第一-柒章内容来说,本有的内容实战性更强,而且在书本上境遇的难点也针锋绝对较少,假设认真弄懂前7章内容的话,本有的内容也正是是对前柒章内容的具体实践,学习也很轻松。

 

先是说美赞臣下本有的项目示范完成了什么功用?

  • 用户剧中人物:普通用户、管理员
  • 切切实实职能:登陆、注册、发表文章、编辑成文、用户间关注、用户评价、修改个人音信、管理用户评价、马克Down显示文章格式。

下图中所示为2个总指挥剧中人物登6系统各部分功用图片动态图:

 图片 1

本人本身上机操练代码:(PS:和作者GitHub上代码有稍许组别)

 

 


前言

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

 

本文记录本人读书《Flask
Web开发——基于Python的Web应用开发执行》的第8章-第二四章内容。比较于刚(Yu-Gang)开首攻读第3-7章内容来说,本有的内容实战性更强,而且在书本上境遇的题材也针锋相对较少,假若认真弄懂前7章内容的话,本有的内容也便是是对前七章内容的切实可行实践,学习也很轻松。

 

先是说宾博下本有的项目示范达成了怎么作用?

  • 用户脚色:普通用户、管理员
  • 实效:登陆、注册、发表小说、编辑成文、用户间关切、用户评价、修改个人消息、管理用户评价、马克Down显示小说格式。

下图中所示为三个总指挥剧中人物登陆系统各部分效能图片动态图:

 图片 2

自家自个儿上机演习代码:(PS:和作者GitHub上代码有稍许有别于)

 

 


第拾章 用户认证

一.书本7九页密码散列作用shell测试有bug

借使学完第捌章,并依据7一页manage.py中写入运转脚本代码,在控制台输入python
manage.py shell会报以下错误:TypeError: <flask_script.commands.Shell
object at 0x0000000004E29668>: ‘dict’ object is not callable

图片 3

 

化解办法如下图:

 图片 4

 

继而,假若依旧安装书本上命令提醒输入指令,会报以下错误:Traceback
(most recent call last):File “<console>”, line 一, in
<module>

消除办法见下图:

 图片 5

 

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

本难点在于数据库设计带有外键,直接依照书中插入代码,未插入用户剧中人物外键,是力不从心插入数据的。

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

 图片 6

 

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

 图片 7

 

下一场依据下图所示三步,重新创制数据库(PS:此处方法见第伍章五.1一节):

 图片 8

 

这么些处理完结后,依据书上插入代码,照旧会报找不到User和db错误,消除办法如下:

 图片 9

 

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

 图片 10

 

 图片 11

 

 

3.书本8玖页实际运作结果(PS:经验证,数据能够注册成功)

 

 图片 12

图片 13

 

四.书本92页执行1个新的数据库迁移

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

 图片 14

图片 15

 

5.书本玖四页示例⑧-2贰代码因为Flask-Login版本难点应运而生如下图所示bug

 图片 16

 

解决办法见下图:

 图片 17

 

让本人思疑的是,笔者写笔记时看的是实体书,上面代码反常,上面截图的是电子书,上面却是正确的>~<,具体如下:

 图片 18

 

难题化解方案网站(https://segmentfault.com/q/1010000004041497

测试is_authenticated方法如下:

 图片 19

 

叠加书本玖五页页面运维结果:

 图片 20

图片 21

 

 

出现上图的来头:

花了1个多钟头找错,结果发现是友善照着书籍八③页敲示例八-八代码时少了return语句,间接写User.query.get(int(user_id)),具体如下:

 图片 22

 

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

 图片 23

 

运维成功界面如下:

 图片 24

 

上面是本人要好修改数据库数据中国集中国人民邮政总局公司箱验证属性为True时呈现结果(PS:主要在于邮箱验证时索要报名方今密码,所以就没填写具体邮箱数据,直接手动改写后台数据库中数量):

 图片 25

 

注:第九章重点讲解了怎么行使Flask框架达成用户登六、注册成效,以及使用邮箱进行用户注册确认以及密码修改确认等。感觉第九歌内容正是对书籍前7章内容的二次综合作演出习,全数应用的技术点都足以在前7章中找到。所以,个人感觉只要扎扎实实把第七章全数代码以及落到实处思路弄懂,才算是刚刚入门Flask框架。

 

 


第十章 用户认证

一.书本7玖页密码散列效用shell测试有bug

若果学完第7章,并遵守71页manage.py中写入运转脚本代码,在控制台输入python
manage.py shell会报以下错误:TypeError: <flask_script.commands.Shell
object at 0x0000000004E29668>: ‘dict’ object is not callable

图片 26

 

消除办法如下图:

 图片 27

 

紧接着,若是照旧安装书本上命令提醒输入指令,会报以下错误:Traceback
(most recent call last):File “<console>”, line 一, in
<module>

化解办法见下图:

 图片 28

 

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

本难题在于数据库设计带有外键,直接依据书中插入代码,未插入用户剧中人物外键,是心有余而力不足插入数据的。

化解办法:删除User表和Role表之间的多对一提到

 图片 29

 

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

 图片 30

 

接下来遵照下图所示三步,重新创制数据库(PS:此处方法见第5章伍.1壹节):

 图片 31

 

那么些处理实现后,依照书上插入代码,还是会报找不到User和db错误,消除办法如下:

 图片 32

 

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

 图片 33

 

 图片 34

 

 

三.书本8玖页实际运营结果(PS:经验证,数据能够挂号成功)

 

 图片 35

图片 36

 

肆.书本玖贰页执行2个新的数据库迁移

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

 图片 37

图片 38

 

5.书本94页示例八-22代码因为Flask-Login版本难点应运而生如下图所示bug

 图片 39

 

消除办法见下图:

 图片 40

 

让自己质疑的是,笔者写笔记时看的是实体书,上面代码有失水准,上边截图的是电子书,上面却是正确的>~<,具体如下:

 图片 41

 

题材消除方案网站(https://segmentfault.com/q/1010000004041497

测试is_authenticated方法如下:

 图片 42

 

外加书本九伍页页面运行结果:

 图片 43

图片 44

 

 

出现上海体育地方的原因:

花了1个多钟头找错,结果发现是投机照着书籍八三页敲示例八-八代码时少了return语句,间接写User.query.get(int(user_id)),具体如下:

 图片 45

 

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

 图片 46

 

运作成功界面如下:

 图片 47

 

上边是自家自己修改数据库数据中国集中国人民邮政总局公司箱验证属性为True时来得结果(PS:首要在于邮箱验证时索要提请一时半刻密码,所以就没填写具体邮箱数据,间接手动改写后台数据库中多少):

 图片 48

 

注:第楚辞重点教师了何等利用Flask框架达成用户登陆、注册效率,以及利用邮箱进行用户注册确认以及密码修改确认等。感觉第玖章内容就是对图书前7章内容的2次综合作演出习,全部应用的技术点都能够在前七章中找到。所以,个人感觉只要扎扎实实把第十章全体代码以及贯彻思路弄懂,才算是刚刚入门Flask框架。

 

 


第9章 用户角色

一.书本9九页使用shell会话把角色写入数据库难点

由于在第十章完毕进度中,作者把Role表和User表之间的外键关系给删除了,倘诺在那章不重复恢复生机两表之间的涉嫌就不只怕兑现用户角色的功效。所以,在那种情景下,小编又得要把数据库重新起初化、迁移和创设。之所以那样做,而不是直接进行搬迁和创办,是因为笔者在向来开始展览搬迁和开创的长河中,报错:default属性在框架中1度存在,不可能制造新的Role表,那么些荒唐没有解决,由于初学,无奈,间接删除migrations文件夹和扭转的data-dev.sqlite数据库文件,重新开始展览发轫化、迁移和开创,发现1切OK。具体如下:

 图片 49

 

好了,既然Role表和User表之间有了一对多而留存的外键关系,那注册效用插入用户数量时,必须得要确认用户剧中人物,不然不能够插入。

 图片 50

 

刚巧实行了注册测试,竟然毫无分明用户剧中人物,也足以插入成功。这样的感觉到违背了自小编读书数据库的理论知识啊,以前第伍章,实行扦插数据时,行不通,以往好了。预计是前边学习时,代码有点bug。

 

注:本章也正是重点在讲数据库的学问,和本书宗旨Flask框架的知识点联系非常的小,个中大旨境想正是概念权限来分配剧中人物等级。多个用户有的唯有1种权限,有的能够有二种权力。权限的分配很灵活,那样处理操作大大简化了数据库的筹划难度,也增进了数据的条理性。

 

 


第10章 用户剧中人物

1.书本99页使用shell会话把剧中人物写入数据库难点

由于在第九歌达成进度中,小编把Role表和User表之间的外键关系给删除了,假若在这章不重复上涨两表之间的涉嫌就不能完成用户剧中人物的效益。所以,在这种情景下,作者又得要把数据库重新初步化、迁移和创办。之所以那样做,而不是直接开始展览搬迁和创设,是因为自己在向来举行搬迁和开创的进度中,报错:default属性在框架中曾经存在,不恐怕制造新的Role表,那几个荒唐未有消除,由于初学,无奈,直接删除migrations文件夹和生成的data-dev.sqlite数据库文件,重新举行开首化、迁移和开创,发现一切OK。具体如下:

 图片 51

 

好了,既然Role表和User表之间有了壹对多而存在的外键关系,那注册功效插入用户数据时,必须得要确认用户角色,不然不能插入。

 图片 52

 

恰好开展了注册测试,竟然毫无分明用户剧中人物,也足以插入成功。那样的觉得违背了自个儿上学数据库的理论知识啊,在此之前第伍章,进行插队数据时,行不通,未来好了。揣测是事先学习时,代码有点bug。

 

注:本章相当于重点在讲数据库的文化,和本书核心Flask框架的知识点联系相当的小,当中主旨绪想正是概念权限来分配剧中人物等级。二个用户有的唯有一种权限,有的能够有四种权力。权限的分配很利索,那样处理操作大大简化了数据库的统一筹划难度,也增强了数码的条理性。

 

 


第7章 用户资料

壹.书本105页、107、十玖页和11贰页操作运转结果

此地根据书本上的代码讲解,实行编辑代码操作,当中遭遇的难点在前面均已碰到过,所以到了此处基本没啥难题。根据书本讲解,运维结果具体如下:

用户简介页面

 图片 53

 

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

 图片 54

 

图片 55

协会者修改个人信息界面

 图片 56

 

图片 57

 

突显用户头像的资料页面

 图片 58

 

 

 

注:本章首要完结博客系统普通用户和协会者角色的个人新闻编辑成效落成,此处落成未有何样技术亮点和难点,只要认真达成书本前述部分,那有个别意义完全未有障碍。

 

 


第玖章 用户资料

1.书本十5页、十7、10玖页和112页操作运转结果

这里根据书本上的代码讲解,实行编写制定代码操作,当中境遇的题材在后边均已碰到过,所以到了此地基本没啥难题。依照书本讲解,运营结果具体如下:

用户简介页面

 图片 59

 

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

 图片 60

 

图片 61

管理员修改个人新闻界面

 图片 62

 

图片 63

 

来得用户头像的质地页面

 图片 64

 

 

 

注:本章主要完结博客系统普通用户和大班角色的个人信息编辑成效完结,此处完成未有怎么技艺亮点和难点,只要认真实现书本前述部分,那某些功力完全未有障碍。

 

 


第一1章 博客小说

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

本有的代码在作者GitHub上一贯不以身作则代码,即只要要落到实处导入虚拟数据测试功效,只可以协调三个代码一个代码敲。可是,那么些也太多了点,三个假名出错就要改错>~<。从笔者GitHub上平素克隆下来的代码,即便尚未以身作则代码,可是应当是作者更新代码后,在此间换了另1种完成方式,因为在品种文件中冒出了三个新的fake.py文件,该公文中代码和示范1一-捌代码基本相仿。

 

2.图书1一7页、12三页、12五页和130页操作运维结果

 图片 65

图片 66

 

 图片 67

图片 68

 

注:本章是对博客系统效用的扩张,重要完毕用户编辑发送博客文章,个中还足以采纳马克Down来落到实处对小说的编写制定。功用具体贯彻参照书本的代码讲解即可,基本不会赶上哪些较难的题材。

 

 


第3一章 博客小说

1.关于书籍11玖页演示1壹-八代码

本有的代码在作者GitHub上从未有过以身作则代码,即假设要完成导入虚拟数据测试功用,只可以自身贰个代码叁个代码敲。但是,这么些也太多了点,二个字母出错就要改错>~<。从我GitHub上直接克隆下来的代码,固然尚无以身作则代码,不过应当是小编排轮更值夜班新代码后,在那里换了另壹种完毕格局,因为在档次文件中出现了一个新的fake.py文件,该文件中代码和演示1一-8代码基本类似。

 

2.书籍1一七页、12三页、1二伍页和130页操作运营结果

 图片 69

图片 70

 

 图片 71

图片 72

 

注:本章是对博客系统功用的扩大,主要实现用户编辑发送博客小说,在这之中还是能够运用马克Down来促成对文章的编排。功效具体落实参照书本的代码讲解即可,基本不会蒙受哪些较难的题材。

 

 


第12章 关注者

1.书本1三七页和14二页实际运转结果

 图片 73

图片 74

 

 图片 75

 

 二.操作完第壹贰章代码后,借使选取用户退出,大概会现出以下bug:AttributeError:
‘AnonymousUser’ object has no attribute ‘followed_posts’

 图片 76

 

消除办法,在models.py文件中找到AnonymousUser类,在这几个类中添加1个方法,具体代码如下:

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

 图片 77

 

注:本章具体落到实处部分的难关是关爱用户记录的多少库表的设计,即多对对关系会生成一张中间表。别的壹些,依据书本上的代码来上机操作,基本不会境遇哪些难点。

 

 


第12章 关注者

一.书本1三7页和142页实际运转结果

 图片 78

图片 79

 

 图片 80

 

 二.操作完第叁二章代码后,借使选用用户退出,只怕会出现以下bug:AttributeError:
‘AnonymousUser’ object has no attribute ‘followed_posts’

 图片 81

 

消除办法,在models.py文件中找到AnonymousUser类,在那么些类中添加贰个主意,具体代码如下:

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

 图片 82

 

注:本章具体贯彻部分的难关是关怀用户记录的数额库表的统一筹划,即多对对关系会生成一张中间表。别的1些,根据书本上的代码来上机操作,基本不会遭遇哪些难题。

 

 


第二三章 用户评价

1.书本14八页和15一页实际上机械运输维结果

 图片 83

图片 84

 

 

注:本章首要达成博客的用户评价功效,以及添加了二个体协会管员权限,具体落到实处未有啥样难点,依照书本的代码上机操作即可。

 

 

 


第3三章 用户评价

1.书本14八页和15一页实际上机械运输转结果

 图片 85

图片 86

 

 

注:本章首要完成博客的用户评价成效,以及添加了1个体协会助管理员权限,具体完毕未有啥困难,依照书本的代码上机操作即可。

 

 

 


第三四章 应用编程接口

一.书本16捌页测试打字与印刷结果

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

运行结果:

 图片 87

图片 88

 

 

 

第3四章 应用编制程序接口

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

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

运转结果:

 图片 89

图片 90

 

 

 

相关文章