皇冠直营现金网开户一字一句上机实践

目录

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: 黑体;”>章
应用编程接口

 

 


前言

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

 

正文记录自己上学《Flask
Web开发——基于Python的Web应用开发实践》的第8章-第14章内容。相比于刚先河学习第1-7章内容的话,本有的情节实战性更强,而且在书本上碰到的问题也相对较少,假使认真弄懂前7章内容的话,本有的情节相当于是对前7章内容的切实进行,学习也很轻松。

 

第一表达一下本有的品种示范实现了咋样职能?

  • 用户角色:普通用户、管理员
  • 实际效果:登陆、注册、发布随笔、编辑成文、用户间关心、用户评价、修改个人信息、管理用户评价、马克Down突显著作格式。

下图中所示为一个大班角色登陆系统各部分成效图片动态图:

 皇冠直营现金网开户 1

皇冠直营现金网开户,本身要好上机演练代码:(PS:和作者GitHub上代码有多少有别于)

 

 


第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

皇冠直营现金网开户 2

 

解决办法如下图:

 皇冠直营现金网开户 3

 

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

解决办法见下图:

 皇冠直营现金网开户 4

 

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

本问题在于数据库设计带有外键,直接遵照书中插入代码,未插入用户角色外键,是无力回天插入数据的。

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

 皇冠直营现金网开户 5

 

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

 皇冠直营现金网开户 6

 

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

 皇冠直营现金网开户 7

 

这一个处理完毕后,遵照书上插入代码,如故会报找不到User和db错误,解决办法如下:

 皇冠直营现金网开户 8

 

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

 皇冠直营现金网开户 9

 

 皇冠直营现金网开户 10

 

 

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

 

 皇冠直营现金网开户 11

皇冠直营现金网开户 12

 

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

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

 皇冠直营现金网开户 13

皇冠直营现金网开户 14

 

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

 皇冠直营现金网开户 15

 

解决办法见下图:

 皇冠直营现金网开户 16

 

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

 皇冠直营现金网开户 17

 

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

测试is_authenticated方法如下:

 皇冠直营现金网开户 18

 

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

 皇冠直营现金网开户 19

皇冠直营现金网开户 20

 

 

并发上图的缘故:

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

 皇冠直营现金网开户 21

 

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

 皇冠直营现金网开户 22

 

运作成功界面如下:

 皇冠直营现金网开户 23

 

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

 皇冠直营现金网开户 24

 

注:第8章重点讲解了如何接纳Flask框架实现用户登陆、注册效率,以及利用邮箱进行用户注册确认以及密码修改确认等。感觉第8章内容就是对图书前7章内容的一回综合演习,所有应用的技术点都得以在前7章中找到。所以,个人感觉只要扎扎实实把第8章所有代码以及贯彻思路弄懂,才算是刚刚入门Flask框架。

 

 


第9章 用户角色

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

鉴于在第8章实现过程中,我把Role表和User表之间的外键关系给删除了,假若在这章不另行回升两表之间的涉嫌就无法落实用户角色的效能。所以,在这种意况下,我又得要把数据库重新开始化、迁移和创办。之所以这么做,而不是直接开展搬迁和创立,是因为我在直接实行搬迁和开创的历程中,报错:default属性在框架中一度存在,不可以创建新的Role表,这些错误没有缓解,由于初学,无奈,直接删除migrations文件夹和转移的data-dev.sqlite数据库文件,重新展开起始化、迁移和创制,发现一切OK。具体如下:

 皇冠直营现金网开户 25

 

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

 皇冠直营现金网开户 26

 

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

 

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

 

 


第10章 用户资料

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

此处按照书本上的代码讲解,进行编辑代码操作,其中境遇的题目在头里均已碰着过,所以到了此地基本没啥难点。遵照书本讲解,运行结果具体如下:

用户简介页面

 皇冠直营现金网开户 27

 

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

 皇冠直营现金网开户 28

 

皇冠直营现金网开户 29

社团者修改个人音讯界面

 皇冠直营现金网开户 30

 

皇冠直营现金网开户 31

 

显示用户头像的资料页面

 皇冠直营现金网开户 32

 

 

 

注:本章首要实现博客系统普通用户和领队角色的个人音讯编辑效能实现,此处实现没有什么技术亮点和困难,只要认真完成书本前述部分,这有些功力完全没有阻碍。

 

 


第11章 博客小说

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

本有的代码在笔者GitHub上尚无以身作则代码,即如果要促成导入虚拟数据测试效用,只可以自己一个代码一个代码敲。可是,那一个也太多了点,一个假名出错就要改错>~<。从笔者GitHub上一向克隆下来的代码,即使尚未以身作则代码,不过应该是笔者更新代码后,在此间换了另一种实现情势,因为在项目文件中冒出了一个新的fake.py文件,该文件中代码和示范11-8代码基本接近。

 

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

 皇冠直营现金网开户 33

皇冠直营现金网开户 34

 

 皇冠直营现金网开户 35

皇冠直营现金网开户 36

 

注:本章是对博客系统机能的扩张,重要实现用户编辑发送博客作品,其中仍可以够利用马克Down来实现对作品的编写。成效具体贯彻参照书本的代码讲解即可,基本不会遇见什么较难的题材。

 

 


第12章 关注者

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

 皇冠直营现金网开户 37

皇冠直营现金网开户 38

 

 皇冠直营现金网开户 39

 

 2.操作完第12章代码后,假如采纳用户退出,可能会出现以下bug:AttributeError:
‘AnonymousUser’ object has no attribute ‘followed_posts’

 皇冠直营现金网开户 40

 

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

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

 皇冠直营现金网开户 41

 

注:本章具体实现部分的难关是关注用户记录的多寡库表的宏图,即多对对关系会生成一张中间表。另外一些,按照书本上的代码来上机操作,基本不会遇上哪些难题。

 

 


第13章 用户评价

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

 皇冠直营现金网开户 42

皇冠直营现金网开户 43

 

 

注:本章首要实现博客的用户评价效能,以及添加了一个协管员权限,具体落实没有什么样困难,依照书本的代码上机操作即可。

 

 

 


第14章 应用编程接口

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

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

运作结果:

 皇冠直营现金网开户 44

皇冠直营现金网开户 45

 

 

 

相关文章