笨办法学 Python · 续 练习 46:`blog`
练习 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`相关推荐
- 《笨方法学python》_《笨办法学Python》 第46课手记
<笨办法学Python> 第46课手记 这节课制作了一个Python的项目骨架,花了我一个晚上和一个早上的时间,原因是我下载的pdf里面只有OX S的命令行,而没有win下的.我为此在知道 ...
- 笨办法学 Python · 续 中文版
笨办法学 Python · 续 中文版 原书:Learn More Python 3 The Hard Way 译者:飞龙 自豪地采用谷歌翻译 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓 ...
- 笨办法学 Python · 续 练习 33:解析器
练习 33:解析器 原文:Exercise 33: Parsers 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 想象一下,你将获得一个巨大的数字列表,你必须将其输入到电子表格 ...
- 笨办法学 Python · 续 练习 0:起步
练习 0:起步 原文:Exercise 0: The Setup 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你需要设置和配置一些工具来学习此书.有可能你已经有了很多这些东西 ...
- 笨办法学 Python · 续 第二部分:简单的黑魔法
第二部分:简单的黑魔法 原文:Part II: Quick Hacks 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你有最好的想法,你会打动世界!你会成为一个亿万富豪!你的大 ...
- 笨办法学 Python · 续 练习 52:`moreweb`
练习 52:moreweb 原文:Exercise 52: moreweb 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 现在,你已经使用 Python http.server ...
- 笨办法学 Python · 续 练习 24:URL 快速路由
练习 24:URL 快速路由 原文:Exercise 24: Fast URL Search 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们将结束数据结构和算法的部分,并将 ...
- 笨办法学 Python · 续 练习 32:扫描器
练习 32:扫描器 原文:Exercise 32: Scanners 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我的第一本书在练习 48 中非常偶然涉及到了扫描器,但现在我 ...
- python描述器 有限状态机_笨办法学 Python · 续 练习 30:有限状态机
练习 30:有限状态机 每当你阅读一本关于解析的书,都有一个可怕的章节,关于有限状态机(FSM).他们对"边"和"节点"进行了详细的分析,每个可能的" ...
最新文章
- 中国科学:中科院遗传发育所揭示拟南芥二半萜对根系微生物组的调控机制
- php读取dxf,分享个DXF转G代码的实例
- 使用docker部署mysql主从复制集群
- Qt工作笔记-自定义菜单(右键菜单)
- Mongo DB命令简介
- 你身边有没有“万事不求人”的人?他们后来怎么样了?
- “强化学习说白了,是建立分布到分布之间的映射”?数学角度谈谈个人观点
- 高性能高并发服务的瓶颈及突破思路
- css样式中的border-radius属性
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table doesn't exist
- 360云盘怎么用连接服务器异常,360云盘突然登录不上去了怎么回事 网络没问题但是360云盘登不上去怎么办...
- css炫酷标题,炫酷 CSS 背景效果的 10 个代码片段
- BeiJing2006 狼抓兔子
- Android带数字拼音与带音标拼音互转工具类
- bzoj 5185 Lifeguards - 动态规划 - 贪心
- Android LeakCanary使用详细教程
- Go实战--Golang中http中间件(goji/httpauth、urfave/negroni、gorilla/handlers、justinas/alice)
- 2022年上海市安全员C证特种作业证考试题库模拟考试平台操作
- Python|判断字符串是否符合日期要求
- 有一个函数 x , x大于1 ,y等于 { 2x-1 1大于等于x小于10 3x-11 x大于等于10 写一段程序,输入x,输出y。
热门文章
- (32)Verilog HDL按位运算
- java concurrent 框架_Java Concurrent 框架图
- php中调行高代码_网页代码如何调整行距
- TCP VS UDP
- STM32基础定时器详解
- 【Pre蓝桥杯嵌入式】【STM32】学习索引
- 计算机游戏动漫制作自我鉴定,动漫设计专业自我鉴定
- python获取计算机信息系统数据罪_使用 python 收集获取 Linux 系统主机信息
- mysql报错注入实战_手工注入——MySQL手工注入实战和分析
- STM32f407与STM32F103 串口采用DMA收发数据配置方法的异同