前言2 教程缘起

我13年读博期间开始做深度学习方向的研究,当时用的最多的是Matlab、C++等语言。随着深度学习在工业界的兴起,越来越多的公开代码和公开的研究成果采用Python进行编写。当时不得已,学习了Python的基础语法。说句心里话,当时并没有觉得Python比Matlab好在哪里,尤其是Python是社区开发的,不管是PyCharm(有点像Visual Studio)、Spyder(有点像Matlab)还是其他IDE,与Matlab傻瓜式的软件比起来Python简直让人提不起兴趣。但是没办法,谁让Python是免费的,而Matlab是收费的呢,这也是为什么现在大公司都采用Python的最根本原因。有些人可能会说我的Matlab是盗版的,一样用。但是要知道去到公司,做真正意义上的产品是不会让你采用盗版软件的(侵权风险),没有哪家大公司会干这种事。后来Python用久了之后,逐渐的感受到了它的轻便、简洁和有效。毕竟,相比于C++等传统语言,使用Python确确实实减少了我的代码编写量,提高了我的开发速度。毕业后转去做算法开发,但是不成想接到的第一个任务就是搭建一个web端的图像智能检测平台,当时心里想的是:算法我可以研发,web平台我坚决不做。谁奈何项目组临时抽调人员,结果变成需要让我一个人将平台从头撸到尾。当时完全没接触过web编程的我雄赳赳气昂昂的开干了。可怜我当时都搞不清Web有前端和后端之分,想想自己读了这么些年计算机专业也真是白瞎祖国的辛勤培养了。

确定任务后接下来就是选择web框架进行攻关学习了,考虑到这个图像检测平台需要人工智能算法或者说是深度学习算法进行支撑,因此不是很想采用Java,Asp.net,PHP等常见的web编程框架。因为之前用的python也比较多,然后就决定采用python进行web开发。从整体开发环境来看,目前国内采用Python进行网站开发的并不多,国内比较知名的有豆瓣、知乎等,但是在国外基于Python的web开发就比较多,例如Instagram、Mozilla Pinterest、NASA等等,究其原因倒不是说python做web不可行,恰恰相反,python 开发网站非常快速方便。主要是因为Python在国内的流行也就在这几年,很多开发人员还没有来得及转移到python上来。目前,基于python的web框架常见的有Flask、Django和Tornado等。通过一阵子的摸索,网上调研,决定学习Django这个python web框架。要说Django是Python框架里最好的,有人同意也有人坚决反对,但说Django的文档最完善、市场占有率最高、招聘职位最多估计大家都没什么意见。下面详细说下学习的过程中遇到的问题:

  • 缺少Windows平台下Django教程资料

首先,发现大部分Django教程都是基于Linux平台的,ubuntu居多。这对于初学django并且习惯了在Windows上开发的人来说是个不小的瓶颈。在国内,本身python web开发的资料就比较少,遇到问题后难以搜到满意的解决方案。

  • 不注重实战

目前,大部分Django教材讲的都比较冗余,以大而全的讲解方式进行灌输,讲完基本的概念即可,没有有效的实例进行辅助,更少有一本Django教材全程以一个独立的网站开发作为主线,这样往往会使得读者学完后记忆凌乱易忘,而且在独立开发的过程中无法依葫芦画瓢立刻投身开发。

  • 不注重前端设计

很多教材都是以一个固定的预先设计好的前端网页模板进行开发的,也就是说完全得依照这个模板进行后续的开发。读者学完后会发现依然不能自主的、自由的、能够按照自己需求设计自己的页面。也就是说对于前端编程(html/CSS/javascript)尽可能的少讲,但是一个真正的网站怎么能少得了前端呢,如果说django后端编程是大脑,那么前端就是你的那张脸,脸长得歪瓜裂枣的,哪有回头率呢。

  • 烂尾

有不少学习资料,在讲完构建网站后戛然而止,如何将平台有效部署这方面的资料不多。所谓部署就是将你开发的网站发布到某个服务器或者云端(阿里云、百度云、腾讯云、华为云,好多好多的云),使得外网可以访问,或者通俗点说,能够通过Internet访问,这时候才算是真正的教会如何开发网站。

当时一根筋,硬着头皮在windows下面将整个图像测试网站开发完毕,全程连上基础知识学习一共花了4个月。最终开发的网站通过了测评。一路躺了很多坑,当然,代码也有很多缺陷,因为当时也是现学现卖,有很多不恰当的地方。之后开发了一个更通用的网站监测平台,然后就转到另外一个项目组做真正意义上的深度学习算法开发了,两年里面也好长时间不再碰django了,但是还是一直在用python写脚本,爬数据。最近,还是因为项目需要,需要做一个更庞大的web处理平台。两年内,发现django有了很多新的变化,版本也更新了很多,最让我欣喜的是有越来越多的人愿意学python,学django,学人工智能了。因此,为了方便大家入门,同时也算是对以前知识的梳理,决定写一个实用的以实战开发为目的的python web开发教程。由于现在新的python和django版本更新了不少内容,包括整个python的开发生态也友好了很多,我以前开发的网站还是基于python2.7,显得有些落伍,这与python与时俱进活力四射的形象不符,因此决定换种撰写方式,后续的实战教程部分可能会经常变更,因为我也是在不断的尝试新的版本和引入新的内容,中间可能突然会发现有更好的开发方式那么我实验成功后会立即更新本教程。有些章节可能第一次看只有简单的两个图或者几句话,那是因为我还来不及补上详细的内容,但是我会尽快的更新。另外一个好处在于希望水平高的朋友可以经常提意见,帮着一起更新本教程内容,纠正错误,提升品质,一起进步。

最后说明一下,本教程面向的是零python基础的读者,讲的内容在很多大牛看来犹如小学生一般,还请大牛们指出错误多多包涵,我会经常在线交流,更正教程内容。最终,我希望能够通过这个教程帮助更多的读者快速入门,能够在熟悉的windows平台下按照自己实际的需求学会网站开发和部署,能够轻松自由的做出一个相对漂亮的网站,能够掌握一种人工智能算法嵌入网站的方式。

 

2018年7月18日

钱彬

 

猜你喜欢

转载自blog.csdn.net/qianbin3200896/article/details/81094624
今日推荐