本有的剧情也等于是对前7章内容的切切实实推行

 

第9章 客户角色

澳门正规网上娱乐,1.书本99页使用shell会话把角色写入数据库难点

由于在第8章达成进度中,小编把Role表和User表之间的外键关系给删除了,如若在那章不重复恢复两表之间的涉嫌就不可能落成客商剧中人物的效劳。所以,在这种意况下,笔者又得要把数据库重新开始化、迁移和创办。之所以那样做,实际不是直接进行搬迁和创设,是因为自个儿在一直开展搬迁和开创的历程中,报错:default属性在框架中一度存在,无法成立新的Role表,那几个荒唐未有消除,由于初学,万般无奈,直接删除migrations文件夹和生成的data-dev.sqlite数据库文件,重新进行开始化、迁移和开创,发掘一切OK。具体如下:

 澳门正规网上娱乐 1

 

好了,既然Role表和User表之间有了一对多而存在的外键关系,那注册作用插入客商数量时,必得得要确认客户剧中人物,不然无法插入。

 澳门正规网上娱乐 2

 

凑巧开展了注册测验,竟然毫无明确客户角色,也足以插入成功。那样的感到违背了自个儿上学数据库的理论知识啊,以前第5章,举办插队数据时,行不通,未来好了。估摸是事先学习时,代码有一些bug。

 

注:本章相当于注重在讲数据库的知识,和本书核心Flask框架的知识点联系一点都不大,个中主旨情想正是概念权限来分配角色品级。叁个顾客有的独有一种权限,有的可以有各个权力。权限的分配很灵巧,那样管理操作大大简化了数据库的设计难度,也压实了数量的条理性。

 

 


第10章 顾客资料

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

那边遵照书本上的代码批注,进行编制代码操作,在那之中蒙受的主题材料在前方均已境遇过,所以到了此间基本没啥难点。依据书本疏解,启动结果具体如下:

顾客简要介绍页面

 澳门正规网上娱乐 3

 

普通客户修改个人消息分界面

 澳门正规网上娱乐 4

 

澳门正规网上娱乐 5

领队修改个人音信分界面

 澳门正规网上娱乐 6

 

澳门正规网上娱乐 7

 

来得客商头像的素材页面

 澳门正规网上娱乐 8

 

 

 

注:本章首要达成博客系统普通客商和领队角色的个人消息编辑功效完结,此处完毕没有何本领亮点和难题,只要认真达成书本前述部分,这一部分效率完全未有阻力。

 

 


前言

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

 

本文记录本人读书《Flask
Web开辟——基于Python的Web应用开荒实施》的第8章-第14章内容。相比较于刚同志开端攻读第1-7章内容来讲,本有的内容实战性越来越强,并且在书本上遭遇的难题也针锋相对比较少,借使认真弄懂前7章内容的话,本有的内容相当于是对前7章内容的切实可行试行,学习也很自在。

 

先是说美赞臣(Dumex)下本有的项目示范达成了什么功效?

  • 顾客脚色:普通客户、管理员
  • 现实际效果果:登入、注册、发表文章、编辑成文、顾客间关切、顾客评价、修改个人音讯、管理客商评价、马克Down呈现小说格式。

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

 澳门正规网上娱乐 9

自己本身上机练习代码:(PS:和作者GitHub上代码有微微有别于)

 

 


第12章 关注者

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

 澳门正规网上娱乐 10

澳门正规网上娱乐 11

 

 澳门正规网上娱乐 12

 

 2.操作完第12章代码后,若是选取顾客退出,只怕会油不过生以下bug:AttributeError:
‘AnonymousUser’ object has no attribute ‘followed_posts’

 澳门正规网上娱乐 13

 

化解办法,在models.py文件中找到AnonymousUser类,在那一个类中增添二个主意,具体代码如下:

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

 澳门正规网上娱乐 14

 

注:本章具体贯彻部分的难关是关注顾客记录的数码库表的规划,即多对对关系会生成一张中间表。其余一些,依照书本上的代码来上机操作,基本不会蒙受怎么样困难。

 

 


第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

澳门正规网上娱乐 15

 

消除办法如下图:

 澳门正规网上娱乐 16

 

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

消除办法见下图:

 澳门正规网上娱乐 17

 

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

本难点在于数据库设计带有外键,直接遵照书中插入代码,未插入客户剧中人物外键,是不能够插入数据的。

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

 澳门正规网上娱乐 18

 

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

 澳门正规网上娱乐 19

 

然后遵照下图所示三步,重新成立数据库(PS:此处方法见第5章5.11节):

 澳门正规网上娱乐 20

 

这个管理完成后,依照书上插入代码,照旧会报找不到User和db错误,化解办法如下:

 澳门正规网上娱乐 21

 

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

 澳门正规网上娱乐 22

 

 澳门正规网上娱乐 23

 

 

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

 

 澳门正规网上娱乐 24

澳门正规网上娱乐 25

 

4.书本92页实施二个新的数据库迁移

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

 澳门正规网上娱乐 26

澳门正规网上娱乐 27

 

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

 澳门正规网上娱乐 28

 

消除办法见下图:

 澳门正规网上娱乐 29

 

让本身思疑的是,小编写笔记时看的是实体书,下边代码不寻常,下边截图的是电子书,上面却是正确的>~<,具体如下:

 澳门正规网上娱乐 30

 

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

测试is_authenticated方法如下:

 澳门正规网上娱乐 31

 

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

 澳门正规网上娱乐 32

澳门正规网上娱乐 33

 

 

并发上海体育场合的原由:

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

 澳门正规网上娱乐 34

 

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

 澳门正规网上娱乐 35

 

运作成功分界面如下:

 澳门正规网上娱乐 36

 

上面是自己要好修改数据库数据中邮箱验证属性为True时来得结果(PS:首要在于邮箱验证时索要申请不常密码,所以就没填写具体邮箱数据,间接手动改写后台数据库中数据):

 澳门正规网上娱乐 37

 

注:第8章入眼教学了怎么使用Flask框架达成客商登入、注册功效,以及选用邮箱进行客商注册确认以及密码修改确认等。感到第8章内容就是对书籍前7章内容的一次综合演练,全数应用的本领点都得以在前7章中找到。所以,个人认为只要扎扎实实把第8章全数代码以及落实思路弄懂,才终于刚先生刚入门Flask框架。

 

 


第11章 博客小说

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

本有的代码在笔者GitHub上从不亲自过问代码,即只要要落实导入虚构数据测量试验成效,只好本人一个代码一个代码敲。可是,那个也太多了点,一个假名出错就要改错>~<。从小编GitHub上平昔克隆下来的代码,即便尚未亲自过问代码,不过相应是我更新代码后,在此间换了另一种完成方式,因为在品种文件中出现了二个新的fake.py文件,该公文中代码和演示11-8代码基本临近。

 

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

 澳门正规网上娱乐 38

澳门正规网上娱乐 39

 

 澳门正规网上娱乐 40

澳门正规网上娱乐 41

 

注:本章是对博客系统机能的恢宏,主要达成顾客编辑发送博客小说,个中还足以选拔马克Down来贯彻对文章的编辑。功用具体达成参照书本的代码批注就可以,基本不会赶上什么较难的标题。

 

 


 


目录

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: 小篆;”>章
应用编制程序接口

第13章 顾客评价

1.书本148页和151页实际上机械运输维结果

 澳门正规网上娱乐 42

澳门正规网上娱乐 43

 

 

注:本章主要达成博客的顾客评价功效,以及增多了三个体协会助管理员权限,具体落实未有什么样困难,依照书本的代码上机操作就可以。

 

 

 


第14章 应用编制程序接口

1.书本168页测量检验打字与印刷结果

那边具体操作须要先在CMD中展开服务,工夫取得api中数据。(PS:推荐一篇博客:http://blog.csdn.net/huang5487378/article/details/60778293

运作结果:

 澳门正规网上娱乐 44

澳门正规网上娱乐 45