本有的剧情也正是是对前7章内容的切实可行实施,本文记录本身攻读《Flask

目录

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

style=”font-family: 石籀文;”>第7 style=”font-family: 钟鼓文;”>章
用户认证

style=”font-family: 大篆;”>第八 style=”font-family: 楷书;”>章
用户剧中人物

style=”font-family: 小篆;”>第8 style=”font-family: 大篆;”>章
用户资料

style=”font-family: 行书;”>第二一 style=”font-family: 黑体;”>章
博客文章

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

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

style=”font-family: 钟鼓文;”>第3四 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: 黑体;”>第三三 style=”font-family: 草书;”>章
用户评价

style=”font-family: 隶书;”>第三4 style=”font-family: 宋体;”>章
应用编程接口

 

 

 

 



前言

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

 

正文记录自个儿上学《Flask
Web开发——基于Python的Web应用开发实践》的第玖章-第三4章内容。相比较于刚同志初步读书第一-7章内容来说,本有的内容实战性更强,而且在书本上遇到的难点也针锋相对较少,假使认真弄懂前7章内容的话,本有的剧情也正是是对前7章内容的切实可行实施,学习也很轻松。

 

先是说Bellamy(Bellamy)下本有的项目示范完毕了什么样功用?

  • 用户剧中人物:普通用户、管理员
  • 现实际效果果:登陆、注册、揭橥小说、编辑成文、用户间关怀、用户评价、修改个人消息、管理用户评价、马克Down展现文章格式。

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

 图片 1

自身自身上机练习代码:(PS:和作者GitHub上代码有个别许分别)

 

 


前言

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

 

正文记录自个儿攻读《Flask
Web开发——基于Python的Web应用开发执行》的第10章-第2肆章内容。相比较于刚(Yu-Gang)开端读书第三-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 1, in
<module>

解决办法见下图:

 图片 5

 

二.书本捌7页用shell插入新用户数据有bug

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

消除办法:删除User表和Role表之间的多对一关乎

 图片 6

 

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

 图片 7

 

然后依照下图所示三步,重新创设数据库(PS:此处方法见第4章5.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

 

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

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

 图片 14

图片 15

 

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

 图片 16

 

消除办法见下图:

 图片 17

 

让自个儿纳闷的是,笔者写笔记时看的是实体书,上面代码有标题,上面截图的是电子书,上边却是正确的>~<,具体如下:

 图片 18

 

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

测试is_authenticated方法如下:

 图片 19

 

叠加书本九伍页页面运营结果:

 图片 20

图片 21

 

 

现身上海教室的原故:

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

 图片 22

 

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

 图片 23

 

运营成功界面如下:

 图片 24

 

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

 图片 25

 

注:第10章重点教师了哪些选拔Flask框架完结用户登6、注册功用,以及利用邮箱进行用户注册确认以及密码修改确认等。感觉第七章内容便是对书籍前7章内容的3遍综合作演出习,全体应用的技术点都能够在前七章中找到。所以,个人感觉只要扎扎实实把第七章全数代码以及贯彻思路弄懂,才总算刚刚入门Flask框架。

 

 


第楚辞 用户认证

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

假使学完第八章,并遵从7一页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:此处方法见第陆章伍.1壹节):

 图片 31

 

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

 图片 32

 

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

 图片 33

 

 图片 34

 

 

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

 

 图片 35

图片 36

 

四.书本玖二页执行三个新的数据库迁移

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

 图片 37

图片 38

 

伍.书本玖四页示例8-2二代码因为Flask-Login版本难题应运而生如下图所示bug

 图片 39

 

化解办法见下图:

 图片 40

 

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

 图片 41

 

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

测试is_authenticated方法如下:

 图片 42

 

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

 图片 43

图片 44

 

 

出现上海体育场地的由来:

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

 图片 45

 

不留余地来源(https://github.com/maxcountryman/flask-login/issues/302):

 图片 46

 

运转成功界面如下:

 图片 47

 

下边是作者自个儿修改数据库数据中邮箱验证属性为True时突显结果(PS:首要在于邮箱验证时索要报名一时半刻密码,所以就没填写具体邮箱数据,直接手动改写后台数据库中数量):

 图片 48

 

注:第七章重点教学了什么样运用Flask框架实现用户登6、注册效能,以及利用邮箱进行用户注册确认以及密码修改确认等。感觉第七章内容正是对书籍前7章内容的贰遍综合作演出习,全数应用的技术点都足以在前柒章中找到。所以,个人感觉只要扎扎实实把第10章全部代码以及落实思路弄懂,才终于刚先生刚入门Flask框架。

 

 


第八章 用户剧中人物

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

是因为在第九章达成进度中,笔者把Role表和User表之间的外键关系给删除了,要是在那章不另行恢复生机两表之间的关系就无法达成用户角色的机能。所以,在那种情形下,笔者又得要把数据库重新开首化、迁移和创制。之所以如此做,而不是直接实行搬迁和创办,是因为自个儿在一贯开始展览搬迁和开创的长河中,报错:default属性在框架中已经存在,不只怕制造新的Role表,那些荒唐未有消除,由于初学,无奈,直接删除migrations文件夹和变化的data-dev.sqlite数据库文件,重新开始展览初步化、迁移和创造,发现一切OK。具体如下:

 图片 49

 

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

 图片 50

 

赶巧进行了登记测试,竟然毫无鲜明用户剧中人物,也得以插入成功。那样的痛感违背了自己学习数据库的理论知识啊,以前第陆章,实行插队数据时,行不通,今后好了。估摸是事先学习时,代码有点bug。

 

注:本章也便是重点在讲数据库的学识,和本书主旨Flask框架的知识点联系非常小,在那之中核心情想就是概念权限来分配角色等级。1个用户有的只有一种权限,有的能够有三种权力。权限的分红很灵敏,那样处理操作大大简化了数据库的筹划难度,也增强了数据的条理性。

 

 


第七章 用户剧中人物

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

由于在第捌章达成进度中,小编把Role表和User表之间的外键关系给删除了,如若在那章不另行回涨两表之间的涉及就不或者完结用户剧中人物的效率。所以,在那种场地下,笔者又得要把数据库重新起首化、迁移和创办。之所以那样做,而不是一向开始展览搬迁和开创,是因为本人在直接开始展览搬迁和制造的历程中,报错:default属性在框架中1度存在,不能够创设新的Role表,这几个荒唐未有缓解,由于初学,无奈,直接删除migrations文件夹和扭转的data-dev.sqlite数据库文件,重新开展早先化、迁移和创办,发现一切OK。具体如下:

 图片 51

 

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

 图片 52

 

刚刚开始展览了挂号测试,竟然毫无显然用户角色,也能够插入成功。那样的感觉到违背了自家就学数据库的理论知识啊,以前第四章,实行扦插数据时,行不通,未来好了。推断是在此之前学习时,代码有点bug。

 

注:本章也正是重点在讲数据库的学问,和本书核心Flask框架的知识点联系不大,当中核激情想正是概念权限来分配剧中人物等级。叁个用户有的惟有一种权限,有的能够有多样权力。权限的分配很灵活,那样处理操作大大简化了数据库的规划难度,也拉长了数量的条理性。

 

 


第7章 用户资料

一.书本十5页、拾7、十玖页和11贰页操作运营结果

那边遵照书本上的代码讲解,实行编写制定代码操作,个中遭逢的题材在前头均已境遇过,所以到了此处基本没啥难题。依照书本讲解,运营结果具体如下:

用户简介页面

 图片 53

 

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

 图片 54

 

图片 55

管理员修改个人消息界面

 图片 56

 

图片 57

 

来得用户头像的素材页面

 图片 58

 

 

 

注:本章首要实现博客系统普通用户和领队剧中人物的个人消息编辑功用达成,此处完结未有啥样技能亮点和困难,只要认真完毕书本前述部分,那有的职能完全没有阻碍。

 

 


第玖章 用户资料

一.书本拾伍页、拾7、十9页和112页操作运行结果

那边依照书本上的代码讲解,实行编写制定代码操作,在这之中际遇的题材在头里均已蒙受过,所以到了此处基本没啥难题。依照书本讲解,运转结果具体如下:

用户简介页面

 图片 59

 

普通用户修改个人信息界面

 图片 60

 

图片 61

领队修改个人音讯界面

 图片 62

 

图片 63

 

显示用户头像的素材页面

 图片 64

 

 

 

注:本章首要达成博客系统普通用户和领队剧中人物的个人新闻编辑成效完毕,此处完结未有何技巧亮点和困难,只要认真完毕书本前述部分,那部分意义完全未有阻碍。

 

 


第三一章 博客小说

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

本有的代码在小编GitHub上从不以身作则代码,即只要要贯彻导入虚拟数据测试成效,只可以协调贰个代码3个代码敲。不过,那个也太多了点,多个字母出错就要改错>~<。从小编GitHub上一向克隆下来的代码,即使并未有以身作则代码,不过应当是作者更新代码后,在此处换了另1种达成格局,因为在项目文件中冒出了贰个新的fake.py文件,该公文中代码和演示1一-8代码基本相仿。

 

2.图书11七页、12三页、12五页和130页操作运转结果

 图片 65

图片 66

 

 图片 67

图片 68

 

注:本章是对博客系统机能的扩张,重要完结用户编辑发送博客作品,在这之中还足以选择马克Down来达成对文章的编写制定。成效具体贯彻参照书本的代码讲解即可,基本不会遇见什么较难的题材。

 

 


第贰①章 博客小说

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

本有的代码在小编GitHub上从未有过以身作则代码,即倘使要落到实处导入虚拟数据测试功用,只可以自个儿二个代码一个代码敲。但是,这么些也太多了点,3个假名出错就要改错>~<。从小编GitHub上一向克隆下来的代码,纵然尚未以身作则代码,不过相应是作者更新代码后,在此处换了另①种实现情势,因为在类型文件中出现了三个新的fake.py文件,该公文中代码和示范11-八代码基本接近。

 

2.图书1一七页、1贰三页、125页和130页操作运营结果

 图片 69

图片 70

 

 图片 71

图片 72

 

注:本章是对博客系统机能的壮大,首要完结用户编辑发送博客文章,个中仍是可以够接纳马克Down来达成对作品的编纂。成效具体落到实处参照书本的代码讲解即可,基本不会遇见什么较难的题目。

 

 


第12章 关注者

一.书本一三7页和14贰页实际运作结果

 图片 73

图片 74

 

 图片 75

 

 二.操作完第二2章代码后,假若接纳用户退出,恐怕会油不过生以下bug:AttributeError:
‘AnonymousUser’ object has no attribute ‘followed_posts’

 图片 76

 

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

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

 图片 77

 

注:本章具体完成部分的难点是关切用户记录的数额库表的设计,即多对对关系会生成一张中间表。别的一些,遵照书本上的代码来上机操作,基本不会赶上什么样困难。

 

 


第12章 关注者

一.书本一三⑦页和14二页实际运作结果

 图片 78

图片 79

 

 图片 80

 

 二.操作完第22章代码后,借使采用用户退出,大概会出现以下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.书本14八页和15壹页实际上机械运输维结果

 图片 83

图片 84

 

 

注:本章首要完成博客的用户评价功用,以及添加了三个体协会助管理员权限,具体完成未有什么困难,根据书本的代码上机操作即可。

 

 

 


第二3章 用户评价

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

 图片 85

图片 86

 

 

注:本章首要完毕博客的用户评价功效,以及添加了三个体协会助管理员权限,具体贯彻未有啥样难点,根据书本的代码上机操作即可。

 

 

 


第一肆章 应用编制程序接口

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

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

运营结果:

 图片 87

图片 88

 

 

 

第贰4章 应用编制程序接口

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

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

运作结果:

 图片 89

图片 90

 

 

 

相关文章