练习 46:blog

原文:Exercise 46: blog

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

你应该按照本节开头的描述编写流程主题,你应该将流程列出并做好准备。为了起步,我们将为本节的其余部分提供一个名为blog的全新工具作为热身。

你应该慢慢参与这个项目,尽量不要赶时间。你的目标不是成为快速的程序员。通过系统地缓慢起步,你最好缓慢、流畅地建立速度,直到你的工作方式成为第二本能。如果你总是赶时间,那么你会粗心。

确保将你的笔记放在手边,并跟踪你的工作的实际情况和指标。你正在试图看看是否有一个适合你的流程,作为稍后的工作方式。并不是所有的方法一直有用,这就是为什么我试图教你各种工作策略,不同的程序员使用它们。如果你做这个项目,你发现你做的事情没有起作用,那么你的笔记将帮助你找出原因。在下一个项目中更改它,看看其它的东西是否效果更好。

挑战练习

我让你编写一个名为blog的简单的命令行博客工具。这是一个非常有创意的项目名称,用于一个有创意的项目。博客是一些早期程序员编写的第一个项目,但是你的项目将在本地生成博客,然后使用另一个名为rsync的工具将其发送到服务器。以下是此练习的要求:

  • 如果你不知道什么是博客,那么你应该去创建一个,然后尝试一下。有很多平台,但你可能会喜欢 Wordpress 或 Tumblr。只需使用它一会儿,并记下你可能想要复制的功能。不要太疯狂了。
  • 你将要学习如何使用模板系统来设计 HTML 页面。我建议你使用 mako 或 jinja 模板系统。这些系统允许你制作模板 HTML 文件,然后你可以根据用户放置在目录中的文本文件,将真实内容放入。
  • 你将要使用 Markdown 作为你的博客格式,因此请为你的项目安装 markdown 库。
  • 你的博客将是一个静态文件博客,因此你将需要使用python -m SimpleHTTPServer 8000,就像SimpleHTTPServer指南中演示的那样。这会把转储目录中的文件提供给浏览器。
  • 你需要一个名为blog的命令行工具,来处理他人的博客。
  • 在你起步之前,请考虑你的博客工具所做的所有事情,然后设计所需的所有命令及其参数。然后查看docopt项目,来实现这些命令。
  • 你应该使用 mock 来模拟你需要测试的东西,特别是错误情况。参考我在第三部分和第五部分中,我如何使用mock
  • 除此之外,你可以按照自己的意愿,随意开发这个blog工具。变得有创造力。所有要做的事情是,博客是以某种方式创建的,然后我可以放在要查看的服务器上。

最后,我会使用rsync将这样的博客放到网上,使用下列命令:

rsync -azv dist/* myserver.com:/var/www/myblog/

这可能更高级,但这可能是一个好时机,来学习如何部署静态文件。这里有一个研究性学习,也谈到如何使用亚马逊 S3 来实现它。

研究性学习

  • 将静态文件部署到你自己的服务器是所有的事情,也很有趣,但如果blog工具适用于 Amazon S3 不是更好吗?有一个名为boto3的项目,将为你提供你所需的一切,使blog实现它。
  • 编写一个blog serve命令,它使用SimpleHTTPServer类来简单部署博客,而不是单独生成博客。

笨办法学 Python · 续 练习 46:`blog`相关推荐

  1. 《笨方法学python》_《笨办法学Python》 第46课手记

    <笨办法学Python> 第46课手记 这节课制作了一个Python的项目骨架,花了我一个晚上和一个早上的时间,原因是我下载的pdf里面只有OX S的命令行,而没有win下的.我为此在知道 ...

  2. 笨办法学 Python · 续 中文版

    笨办法学 Python · 续 中文版 原书:Learn More Python 3 The Hard Way 译者:飞龙 自豪地采用谷歌翻译 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓 ...

  3. 笨办法学 Python · 续 练习 33:解析器

    练习 33:解析器 原文:Exercise 33: Parsers 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 想象一下,你将获得一个巨大的数字列表,你必须将其输入到电子表格 ...

  4. 笨办法学 Python · 续 练习 0:起步

    练习 0:起步 原文:Exercise 0: The Setup 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你需要设置和配置一些工具来学习此书.有可能你已经有了很多这些东西 ...

  5. 笨办法学 Python · 续 第二部分:简单的黑魔法

    第二部分:简单的黑魔法 原文:Part II: Quick Hacks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你有最好的想法,你会打动世界!你会成为一个亿万富豪!你的大 ...

  6. 笨办法学 Python · 续 练习 52:`moreweb`

    练习 52:moreweb 原文:Exercise 52: moreweb 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 现在,你已经使用 Python http.server ...

  7. 笨办法学 Python · 续 练习 24:URL 快速路由

    练习 24:URL 快速路由 原文:Exercise 24: Fast URL Search 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们将结束数据结构和算法的部分,并将 ...

  8. 笨办法学 Python · 续 练习 32:扫描器

    练习 32:扫描器 原文:Exercise 32: Scanners 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我的第一本书在练习 48 中非常偶然涉及到了扫描器,但现在我 ...

  9. python描述器 有限状态机_笨办法学 Python · 续 练习 30:有限状态机

    练习 30:有限状态机 每当你阅读一本关于解析的书,都有一个可怕的章节,关于有限状态机(FSM).他们对"边"和"节点"进行了详细的分析,每个可能的" ...

最新文章

  1. 中国科学:中科院遗传发育所揭示拟南芥二半萜对根系微生物组的调控机制
  2. php读取dxf,分享个DXF转G代码的实例
  3. 使用docker部署mysql主从复制集群
  4. Qt工作笔记-自定义菜单(右键菜单)
  5. Mongo DB命令简介
  6. 你身边有没有“万事不求人”的人?他们后来怎么样了?
  7. “强化学习说白了,是建立分布到分布之间的映射”?数学角度谈谈个人观点
  8. 高性能高并发服务的瓶颈及突破思路
  9. css样式中的border-radius属性
  10. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table doesn't exist
  11. 360云盘怎么用连接服务器异常,360云盘突然登录不上去了怎么回事 网络没问题但是360云盘登不上去怎么办...
  12. css炫酷标题,炫酷 CSS 背景效果的 10 个代码片段
  13. BeiJing2006 狼抓兔子
  14. Android带数字拼音与带音标拼音互转工具类
  15. bzoj 5185 Lifeguards - 动态规划 - 贪心
  16. Android LeakCanary使用详细教程
  17. Go实战--Golang中http中间件(goji/httpauth、urfave/negroni、gorilla/handlers、justinas/alice)
  18. 2022年上海市安全员C证特种作业证考试题库模拟考试平台操作
  19. Python|判断字符串是否符合日期要求
  20. 有一个函数 x , x大于1 ,y等于 { 2x-1 1大于等于x小于10 3x-11 x大于等于10 写一段程序,输入x,输出y。

热门文章

  1. (32)Verilog HDL按位运算
  2. java concurrent 框架_Java Concurrent 框架图
  3. php中调行高代码_网页代码如何调整行距
  4. TCP VS UDP
  5. STM32基础定时器详解
  6. 【Pre蓝桥杯嵌入式】【STM32】学习索引
  7. 计算机游戏动漫制作自我鉴定,动漫设计专业自我鉴定
  8. python获取计算机信息系统数据罪_使用 python 收集获取 Linux 系统主机信息
  9. mysql报错注入实战_手工注入——MySQL手工注入实战和分析
  10. STM32f407与STM32F103 串口采用DMA收发数据配置方法的异同