2016年5月10日
10.1 最近的礼物 我们的首页会显示最近的赠送书籍列表。这个列表有三个限制条件: 1.数量不超过30 2.按照时间倒序排列,最新的排在最前面 3.去重,同一本书籍的礼物不重复出现 1.首先编写复杂SQL对应的ORM代码 由于是最近的礼物,所以应该编写在models/gift.py中 @classmethod def recent(cls): # 链式调用……
阅读全文
2016年5月9日
本章是一个综合应用章节。我们将看到如何使用多个Python的知识点综合解决问题。我们将进一步的使用@contextmanager来改善前面所学到的上下文管理器,并结合yield来优化数据库事务。此外,我们还将重写Flask中的一些对象的方法,来实现我们自己的业务逻辑 9.1 鱼豆 我们的鱼……
阅读全文
2016年5月8日
8.1 viewmodel意义的体现与filter函数的巧妙应用 在搜索书籍页面里,需要将每一条结果的作者,出版社,价格在一行展示,并以”/“分割。由于这三个属性还有可能为空,所以在html模板里处理不太方便。我们选择将这些数据处理的工作放在viewmodel中。 简单粗暴一点的方法是写一……
阅读全文
2016年5月7日
本章,我们将通过借助学习flask的模板来间接学习:列表推导式的应用、三元表达式的应用、@Property属性描述符、filter函数的应用、管道过滤器 7.1 静态文件访问原理 1.默认访问方法 Flask访问静态文件非常简单,只需要在项目根目录建立static文件夹。将静态资源文件放入s……
阅读全文
2016年5月6日
本章我们提出一个概念ViewModel,并详细解释ViewModel的意义。此外面向对象虽然是老生常谈,但你真的理解面向对象吗?我们将在本章中通过重构来一步步揭示到底什么才是对象,如何写出面向对象的代码来。思维的训练,永远比业务要重要 6.1 ViewModel的基本概念 大多时候,我们从……
阅读全文
2016年5月5日
5.1 线程进程与多线程 1.进程 资源是稀缺的,进程是竞争计算机资源的基本单位。 一台计算机至少要有一个进程。 单核CPU用眼只能执行一个应用程序吗?No,他可以在不同的应用程序直接进行切换。由于切换的时间非常短,短到人类无法感知到,所以造成了一种假象,一个进程可以同时执行多个进程。 多核CP……
阅读全文
2016年5月4日
flask最核心的是两个上下文,而这两个上下中包含大量的Python高级编程应用。我们需要理解上下文的意义,并且通过借鉴flask的下文机制,学习Python的上下文管理器(With)、栈结构的应用。我们还将学习,到底如何通过阅读源码来解决问题 4.1 flask中经典错误 working outside application context 在 3.……
阅读全文
2016年5月3日
3.蓝图、模型与CodeFirst 本章我们尝试把单文件的flask重构为具有模块意义的分文件模型,接着我们会探讨如何使用CodeFirst的思想来创建数据库表。 3.1 应用、蓝图与视图函数 1.Flask的层级关系 Flask最上层是app核心对象 在这个核心对象上可以插入很多蓝图,这个蓝图……
阅读全文
2016年5月2日
2.数据和路由 鱼书项目中的图书数据并不是使用自己构建的数据库的,构建这么多的图书数据需要花费很大的力气。当然可以通过数据爬取的方式来构建,但是这和课程的核心内容就有点冲突了。课程中使用调用web api的方式获取数据,下面的api中其中yushu的api都是课程老师七月构建的,个人……
阅读全文
2016年5月1日
1.0 pipenv 的安装与使用 # 安装pipenv pip install pipenv # 进入虚拟环境(需要在项目目录上执行,如果当前目录没有虚拟环境,则会新建虚拟环境,如果有则启用该虚拟环境) pipenv shell # 退出虚拟环境 exit # 使用pipenv安装Python包 pipenv install #{package} # 卸载Python包 pipenv uninstall #{package} # 查看按照包的依赖关系 pipenv graph # 查看虚拟环境执行文……
阅读全文