三个月编程学习小结:PYTHON+DJANGO+爬虫开发

01 引子

用三个月的业余和节假日时间,学习了编程,具体如下:

  • 8月学习PYTHON;
  • 9月学习DJANGO;
  • 10月实战用DJANGO+POSTGRESQL做项目,完成模型端(也就是后端和数据库的接口层面),能通过DJANGO提供的管理员后台(适当定制化)进行数据的增删改查。

后台仅给自己用,算是基本完善,就该往里面填充内容,手动添加了一些,感觉太费力,能不能自动化?于是在10月最后一周又学习了好几天爬虫开发,结果发现:这个PYTHON爬虫技术,真的够强大,但是哥真的没学会

尴尬了!

好,编程学习就到止如此。就这三个月的学习,来一段总结吧。

02 关于PYTHON

Python语言我算是学会了,而且用它比较有感觉,至少不会犯语法的错误。因此,对于基础的PYTHON语言,可以不必再借助书籍,有需要就在网上找找参考手册即可。

但这个PYTHON是入门容易,精通难。我翻看一些进阶的PYTHON书籍,发现,真TMD的难。可以说,以我的编程资质,中高级PYTHON程序员,是和我无缘的。

我是借助如下几本图书的练习,而学会PYTHON的,可参见:

http://www.xiaoyunhua.com/4670.html

手上还备用一两本国外的PYTHON学习教材,不时拿来翻翻,重在建立编程思维、提升点算法能力及灵活运用PYTHON来解决一些小问题。同时还在微信读书APP上收藏了几本PYTHON编程进阶书籍,适当的时候再通读一遍,增强了解。

03 关于DJANGO

全乱了

《PYTHON编程从入门到实践》(第2版)是我学习PYTHON的入门书,我把书中的练习全做完了,而且一一成功,这激发了我对PYTHON的持续热情。书中有关于DJANGO的练习,在练习后我发现这个DJANGO是我想要突破的方向——WEB开发。于是我买了一些django的书籍,经过验证后,以下三本是很有实用价值的,分别如下:

  • 《DJANGO3 WEB应用开发实战》黄永祥/著;
  • 《Django+vue.js实战派:PYTHON WEB开发与运维》杨永钢/著
  • 《Django3 项目实例精解》 安东尼奥.米勒/著

我本质上并不热爱编程,但我是做数字营销的,也具备互联网产品的知识和思维,知道WEB的价值,并有意寻找良好的方式方法。在学习过程中我发现DJANGO就是一套很好的或者说是很稳定且实用的WEB开发解决方案。

之前,我有用过超10年的CMS系统,如DEDECMS\帝国CMS\WORDPRESS,按理说,我应该选择PHP框架,如thinkphp、Laravel等,讲真,我也不是没有学习过PHP。但不知为什么,PHP那些满含美元符号的语法,基本上就是学过就忘,不习惯,难以巩固。

这或许跟我很多年前学习过C#+ASP.NET有关,PYTHON和C#在语法上是接近的,而DJANGO和ASP.NET也蛮接近。直到我学习完Django后,才发现这个ASP.NET已成为跨平台的.NET Core了。如果我当时就知道这个信息,我想直接就是学习.NET Core,不关PYTHON和DJANGO什么事。

因为我学习编程的目的,就是自己能定制开发一套基于数据库的WEB系统出来。我以前是有基础的,开发过近似CMS的内容管理后台,只是时过境迁,我得找一套新的工具,来实现我的构想。

学习DJANGO的过程中,MTV模式倒是不难理解,因为这是一个通用标准(基于MVC的变体),后面接触到前后端分离开发模式,哇!这可是先进的东西,基于这种模式,那么只需一套统一的数据库,输出符合标准规范的API,这样,前端网站、小程序或开放平台等都可以调用数据,只是表现方式不同而已。

这个非常好,要知道PC端一个新网站是没有什么流量红利的,现在开发一套系统,必须考虑适合多个端,网站只是其中的一个端而已。但如果在多端这样的环境下,每个端都去开发一套,那成本太高了。

我认为DJANGO里面最为核心的东西,就是ORM-模型层,很多东西,如表单、序列化、视图类、还有输出API等,都是要基于模型的,没有模型,就啥都没有。模型搭好了,系统核心就有了,其他的,只是各种表现形式了。

例如路由,一开始感觉好复杂,学习发现比较简单,就是网址列表嘛,重在规划。模板也是比较简单,DJANGO的模板语法,和很多年的ASP或PHP并没有什么太大的差异,有几个参考范例或文档就够,视图中实现逻辑会复杂一些,不过有很多现在的范例可以参考,可以说,模型层弄好了,其他技术不是问题。

其实使用DJANGO还有一个看不见的难点,那就是数据库的设计(遵循范式或反范式),我是找了不少电子商务数据库设计资料(在中国,电商已经很成熟了,很难见到有比电子商务产品更复杂或更成熟的数据库系统规划资料),并借助E-R图,反复修改调整了好多次,并套入数据实践验证(我在网上学到的一个技巧),才算基本完成。于是尝试在DJANGO中写model,也是反复试验了好几次,终于成了。

数据库我用了POSTGRESQL,虽然也是初次用,但我的数据库底子还可以的,基本上拿来就可以用了。严谨一点看,DJANGO+POSTGRESQL是一套很靠谱的WEB开发解决方案。

04   关于爬虫

坦白地说,爬虫技术,我学不会

在《PYTHON编程从入门到实践》(第2版)的练习中,就有抓取网页的实例章节,练习倒是很顺畅,本身我对网页也是很熟悉的,感觉并不难。

后来有看到,说爬虫技术重在一套流程,并不涉及太多复杂的编程逻辑,于是我就选择了scrapy来练手,有初步成功的,但更多的进阶练习,都没有成功过。

Scrapy能和DJANGO结合,实现自动化采集内容入库,这是很理想的状态,可惜我一时半会没有学会,于是我退了出来,不再琢磨它,后面有好的学习案例再练练吧。

05 总结

我能怎么办

最后,我的技术应用也就止步如此,我学习PYTHON编程的目的,是加强自己的互联网技术内核,并寻找一套比CMS更能定制化的WEB开发解决方案,我找着了,那就是DJANGO。

我注重的是实用,且目的较明确,就是通过书籍和网上的实例代码,能加以整合和修改,用在自己的WEB项目上,就够了——也就是自己能全盘开发一个数据驱动的WEB系统(包含网站及其他多端)。

至于前端,我认为对我来说,bootstrap比那个火爆的VUE..JS更重要,前端的发展现在搞得很复杂,反正JS我也是懂的,那些花里胡哨的东西我也会弄,但前端技术用于增强用户体验才是王道。我想这都不是问题,重要的是有参考范例即可。

编程学习结束后,我终归是要回归数字营销,这才是我吃饭的家伙。学习编程可以说是补了一下我的短板,但短板终归是短板,你不能依赖它参与社会竞争。不过编程还是有助于互联网产品开发和运营的,我可以在擅长营销及了解编程的基础上,再补充一些当前热门又高大上的数字化转型知识,来增强我的综合实力。这些东西加以结合及时间上的沉淀,无疑就是个人未来的竞争力之所在。

没办法啊,整个神州大地上,没有哪块区域,不是“内卷”的。

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注