+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-07(6)

2019-08(116)

2019-09(97)

《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)

发布于2019-08-23 15:29     阅读(942)     评论(0)     点赞(1)     收藏(1)


目录

前言

8章 用户认证

9章 用户角色

10章 用户资料

11章 博客文章

12章 关注者

13章 用户评论

14章 应用编程接口

 

 


前言

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

 

本文记录自己学习《Flask Web开发——基于Python的Web应用开发实践》的第8章-第14章内容。相比于刚开始学习第1-7章内容来说,本部分内容实战性更强,而且在书本上遇到的问题也相对较少,如果认真弄懂前7章内容的话,本部分内容相当于是对前7章内容的具体实践,学习也很轻松。

 

首先说明一下本部分项目示例实现了哪些功能?

  • 用户角色:普通用户、管理员
  • 具体功能:登陆、注册、发布文章、编辑文章、用户间关注、用户评论、修改个人信息、管理用户评论、MarkDown显示文章格式。

下图中所示为一个管理员角色登陆系统各部分功能图片动态图:

 

我自己上机演练代码:(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

 

解决办法如下图:

 

 

紧接着,如果还是安装书本上命令提示输入命令,会报以下错误:Traceback (most recent call last):File "<console>", line 1, in <module>

解决办法见下图:

 

 

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

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

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

 

 

 

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

 

 

 

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

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

 

 

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

 

 

解决办法见下图:

 

 

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

 

 

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

测试is_authenticated方法如下:

 

 

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

 

 

 

出现上图的原因:

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

 

 

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

 

 

运行成功界面如下:

 

 

下面是我自己修改数据库数据中邮箱验证属性为True时显示结果(PS:主要在于邮箱验证时需要申请临时密码,所以就没填写具体邮箱数据,直接手动改写后台数据库中数据):

 

 

注:第8章主要讲解了如何使用Flask框架实现用户登陆、注册功能,以及使用邮箱进行用户注册确认以及密码修改确认等。感觉第8章内容就是对书本前7章内容的一次综合练习,所有使用的技术点都可以在前7章中找到。所以,个人感觉只要踏实把第8章所有代码以及实现思路弄懂,才算是刚刚入门Flask框架。

 

 


9章 用户角色

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

由于在第8章实现过程中,我把Role表和User表之间的外键关系给删除了,如果在这章不重新回复两表之间的关系就无法实现用户角色的功能。所以,在这种情况下,我又得要把数据库重新初始化、迁移和创建。之所以这么做,而不是直接进行迁移和创建,是因为我在直接进行迁移和创建的过程中,报错:default属性在框架中已经存在,无法创建新的Role表,这个错误没有解决,由于初学,无奈,直接删除migrations文件夹和生成的data-dev.sqlite数据库文件,重新进行初始化、迁移和创建,发现一切OK。具体如下:

 

 

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

 

 

刚刚进行了注册测试,竟然不用确定用户角色,也可以插入成功。这样的感觉违背了我学习数据库的理论知识啊,之前第5章,进行插入数据时,行不通,现在好了。估计是之前学习时,代码有点bug。

 

注:本章相当于主要在讲数据库的知识,和本书核心Flask框架的知识点联系不大,其中核心思想就是定义权限来分配角色等级。一个用户有的只有一种权限,有的可以有多种权限。权限的分配很灵活,这样处理操作大大简化了数据库的设计难度,也提高了数据的条理性。

 

 


10章 用户资料

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

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

用户简介页面

 

 

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

 

 

管理员修改个人信息界面

 

 

 

显示用户头像的资料页面

 

 

 

 

注:本章主要实现博客系统普通用户和管理员角色的个人信息编辑功能实现,此处实现没有什么技术亮点和难点,只要认真完成书本前述部分,这部分功能完全没有障碍。

 

 


11章 博客文章

1.有关书本119页示例11-8代码

本部分代码在作者GitHub上没有示例代码,即如果要实现导入虚拟数据测试功能,只能自己一个代码一个代码敲。不过,这个也太多了点,一个字母出错就要改错>~<。从作者GitHub上直接克隆下来的代码,虽然没有示例代码,但是应该是作者更新代码后,在此处换了另一种实现方式,因为在项目文件中出现了一个新的fake.py文件,该文件中代码和示例11-8代码基本类似。

 

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

 

 

 

 

注:本章是对博客系统功能的扩展,主要实现用户编辑发送博客文章,其中还可以使用MarkDown来实现对文章的编辑。功能具体实现参照书本的代码讲解即可,基本不会遇到什么较难的问题。

 

 


12章 关注者

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

 

 

 

 

 2.操作完第12章代码后,如果选择用户退出,可能会出现以下bug:AttributeError: 'AnonymousUser' object has no attribute 'followed_posts'

 

 

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

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

 

 

注:本章具体实现部分的难点是关注用户记录的数据库表的设计,即多对对关系会生成一张中间表。其它部分,按照书本上的代码来上机操作,基本不会遇到什么难点。

 

 


13章 用户评论

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

 

 

 

注:本章主要实现博客的用户评论功能,以及添加了一个协管员权限,具体实现没有什么难点,按照书本的代码上机操作即可。

 

 

 


14章 应用编程接口

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

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

运行结果:

 

 

 

 



所属网站分类: 技术文章 > python文章

作者:python是我的菜

链接: http://www.pythonheidong.com/blog/article/55156/

来源:python黑洞网 www.pythonheidong.com

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0

赞一赞 or 踩一踩

收藏该文
已收藏

评论内容:(最多支持255个字符)

相似文章

  《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

  FlaskWeb开发:基于Python的Web应用开发实战 pdf下载

  FlaskWeb开发:基于Python的Web应用开发实战 笔记

  深入理解 Flask_掌握用Python创建强大动态Web应用的技术 pdf下载

  手把手教用matlab做无人驾驶(十)--纯跟踪算法(pure control)的补充l---python与matlab/simulink两种语言的编程实现

  Flask--Python中常用的Web框架之一

  python 之 前端开发(form标签、单选框、多选框、file上传文件、按钮、label标签、下拉列表、textarea标签、fieldset标签、table标签)

  [Python] 利用Django进行Web开发系列(一)

  NS之VGG(Keras):基于Keras的VGG16实现之《复仇者联盟3》灭霸风格迁移设计(A Neural Algorithm of Artistic Style)—daidingdaiding

  使用 Python & Flask 实现 RESTful Web API

优质资源排行榜

 python经典电子书大合集下载 下载次数 8104

 零基础java开发工程师视频教程全套,基础+进阶+项目实战(152G) 下载次数 7543

 零基础前端开发工程师视频教程全套,基础+进阶+项目实战(共120G) 下载次数 7438

 零基础大数据全套视频400G 下载次数 7001

 零基础php开发工程师视频教程全套,基础+进阶+项目实战(80G) 下载次数 6891

 零基础软件测试全套系统教程 下载次数 6501

 全套人工智能视频+pdf 下载次数 6436

 IOS全套视频教程 基础班+就业班 下载次数 4679

 编程小白的第一本python入门书(高清版)PDF下载 下载次数 3076

10  effective python编写高质量Python代码的59个有效方法 pdf下载 下载次数 3047

11  Python深度学习 pdf下载 下载次数 3035

12  使用python+pygame开发的小游戏《嗷大喵快跑》源码下载 下载次数 2998

13  python项目开发视频 下载次数 2996

14  python从入门到精通视频(全60集)python视频教程下载 下载次数 2993

15  黑马2017年java就业班全套视频教程 下载次数 2992

16  python实战项目 平铺图像板系统源码下载,适用于想要保存,标记和共享图像,视频和网页的用户 下载次数 2987

17  利用python实现程序内存监控脚本 下载次数 2986

18  老男孩python自动化视频 下载次数 2979

19  树莓派Python编程指南 pdf下载 下载次数 2976

20  尚硅谷Go学科全套视频 下载次数 2972

21  老王python基础+进阶+项目视频教程 下载次数 2971

22  某硅谷Python项目+AI课程+核心基础视频教程 下载次数 2966

23  Web前端实战精品课程 下载次数 2966

24  Python基础教程 pdf下载 下载次数 2962

25  tron python小游戏 下载次数 2962

26  [小甲鱼]零基础入门学习Python 下载次数 2959

27  老男孩python全栈开发15期 下载次数 2958

28  2017最新web前端开发完整视频教程附源码 下载次数 2948

29  最新全套完整JAVAWEB2018开发视频 下载次数 2926

30  Python算法教程_中文版 pdf下载 下载次数 2910

31  Spring boot实战视频6套下载 下载次数 2909

32  python全套视频十五期(116G) 下载次数 2901

33  Python项目实战 下载次数 2882

34  python全自动抢火车票教程-python视频教程下载 下载次数 2882

35  30个小时搞定Python网络爬虫 含源码 下载次数 2881

36  尚硅谷大数据之Hadoop视频 下载次数 2876

37  简明python教程 (A Byte of Python)pdf下载 下载次数 2870

38  Python A~B~C~ python视频教程下载 下载次数 2864

39  数据结构与算法视频(小甲鱼讲解-全) 下载次数 2863

40  web小程序表白天数倒计时源码下载 下载次数 2862

41  python基础视频教程 下载次数 2862

42  Python高性能编程 pdf下载 下载次数 2858

43  Python Cookbook第三版中文PDF下载高清完整扫描原版 下载次数 2856

44  go语言全套视频 下载次数 2852

45  清华学霸尹成Python爬虫视频-ok 下载次数 2845

46  黑马前端36期最全视频和代码 下载次数 2841

47  2018最新全套web前端视频教程+源码下载 下载次数 2839

48  利用Python进行数据分析 pdf下载 下载次数 2834

49  老男孩Python自动化开发12期 老男孩最强一期python高级运维开发课程 第二部分 70GB 下载次数 2832

50  python视频 神经网络 Tensorflow 下载次数 2827