热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Pythonweb开发从入门到放弃

微信公众号:当程序员以后越来越多的同学知道我在做软件开发,想学Python,所以都来咨询我,怎么从入门到实践,

微信公众号:当程序员以后

640

越来越多的同学知道我在做软件开发,想学Python,所以都来咨询我,怎么从入门到实践,所以索性今天写一篇入门的教程。再来咨询我的同学也方便一些。

Python学习

640

Python 语言的学习,我在之前我推送过一篇Python文章Python那么火,我只推荐这两本书,推荐了「Python编程从入门到实践」这本书,学习这本书你就可以开发日常小程序了。

其次开发环境,Sublime,Vim,Atom,VScode,Pycharm随你,但是我强烈推荐用Pycharm,熟练之后配合Vim,方便而又快捷。

HTTP协议

为了开发Web应用程序,光是Python方面知识还是不够的,我们还需要很多东西,比如我们访问 baidu.com 怎么返回内容给我的,这里面经历了什么,这里面需要我们的计算机网络方面的知识,其中主要需要了解HTTP协议。

我推荐两本书「图解HTTP」,「HTTP权威指南」大家可以去了解下,第一本较简单图非常多。

640

第二本讲的较详细如指南一般各个方面都有涉猎。


640

前端知识

另外Web开发过程会用到一些前端开发知识,比如html,css,大家可以去看看「Head First HTML与CSS、XHTML」,另外「Head First」系列的书都比较不错,讲的很容易让人理解,大家买书的时候可以优先考虑下。

640

当然你也可以直接看MDN上面的内容,也是非常简单。

https://developer.mozilla.org/zh-CN/docs/Learn

Django/Flask/Tornado框架

由于是Web开发,我们需要一个快速开发的Web框架,来加快我们开发应用的速度。

这里我推荐Django,原因无他,功能强大,使用人最多,有很多成熟的工具套件,由于Django发展较快,一直没有一本非常好的书来指导,建议大家看官方文档就好。在「Python编程从入门到实践」里面有相关的Django项目了。

当然也有同学喜欢Flask,Tornado等框架的轻量简洁等,如果喜欢Flask方面的话,下面这本书是不错的,记得买第二版。

640

数据库

使用了开发框架之后,我们需要把我们数据存储起来,那么我们需要数据库,数据库方面首要推荐关系性数据库MySQL,你也可以用非关系型数据库MongoDB等等。

这里我推荐一本「MySQL必知必会」,感兴趣的同学去了解非关系型数据库,其实我个人工作中使用Nosql更多一点。

640

单元测试

开发之后我们需要进行测试,我们可以利用Django自带的Unittest,配合coverage可以看到测试覆盖率,当然这个过程你可能需要mock来进行模拟数据测试,有了测试猜可以保证你的代码质量和功能完备性,从入门到进阶必备的,虽然是入门文章,但还是希望一开始能养成习惯。

这里面推荐一本书「Python Web开发 测试驱动开发」。

640

版本发布部署

代码开发完成之后,我们怎么把我们代码「发布」到线上服务器呢?这里我们需要学习了解一下Fabric或者Ansbile,SaltStack这一类自动化工具。

代码发布到线上服务器了,我们服务器怎么才能跑起来呢?

那么我们需要了解一下Linux服务器配置部署,Linux方面资料,这里面推荐由happypeter翻译的「The Linux Command Line」中文「快乐的Linux」命令行(关注我的公众号,回复Linux可以下载)。

我自己是看鸟哥的私房菜进行学习入门的,大家有兴趣也可以看看。

640

知道了基本命令行操作,我们还需要让我们的代码在服务器上面跑起来,正如本地运行一样但是和本地又有一些不一样。

这里我们部署上线需要了解 nginx,supervisor,uwsgi/gunicorn(任意一个),nginx这方面写的好的书籍不是很多,其他几个服务大家自行Google参考对应官方文档就行。

这里有一篇nginx指南可以看看,Beginner’s Guide,点击原文。

Python Web应用程序线上服务器部署主要是采用 nginx + supervisor + (uwsgi/gunicorn) + flask/django/tornado方式。

最后

坚持到了这儿,恭喜你,表示你有做开发的潜力,其实我想说的上面的内容还是刚刚开始,刚开始大家不需要多么精通了解这些内容,除了Python方面的知识,每个部分掌握一点儿能进行基本开发就好,主要是不断练习,让自己跳出「舒适区」,进入「学习区」,但是又不进入「恐慌区」,不断给自己「喂招」。

参看我之前写过的工作以后,我们如何实现自我提升

随着开发过程一定要主动学习去掌握之前不熟悉的东西,不建议抱着工作用到才学这种态度。

工作用到很多时候已经来不及了,当然这个也看个人兴趣发展。

随着网站访问量的增大,我们还需要考虑服务高可用架构,缓存,消息队列,服务化,负载均衡等等各种问题,由于这是入门指导我就不深入了。

PS:有同学问我要不要报培训班,这个问题要我回答肯定是不需要的,当然主要还是看个人水平和身边有没有从事这方面的同学,如果有学习肯定能事半功倍的。

当然关注了我的公众号的同学,肯定也是不需要的。:)

640


推荐阅读
  • 架构师必读:日均500万数据,如何进行数据存储选型?
    点击上方关注我,选择“置顶或者星标”作者:麦田里的老农来源:https:zhuanlan.zhihu.comp37964096小编公司有一 ... [详细]
  • 在Ubuntu中安装MongoDB
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • MongoDB学习:(二)MongoDB简单使用
    MongoDB学习:(二)MongoDB简单使用MongoDB使用:执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面>mongo提示 ... [详细]
  • 关于mysql原理与web系统开发的信息
    本文目录一览:1、在做web开发的时候,MySQL主要功能是什么? ... [详细]
  • hackingTeam是如何被黑的
    hackingTeam是如何被黑的 ... [详细]
author-avatar
用户q4oaa53j5h
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有