def python菜鸟_Python菜鸟学习

Python菜鸟学习

本学习教程,并不是新手入门教程,更多偏向于学习大纲、指南一类的归纳总结类教程。如要了解Python的新手入门,请移步菜鸟教程。

[TOC]

零.前言

你需要一个Command Line Tool。

众所周知的原因,命令行操作是真正的核心内容,所有的视窗操作界面,都是套在命令行之上的一层UI,尤其是对于开发来说,熟悉命令行操作可以对开发了解的更为透彻。

几乎所有的非Windows系统都会自带命令行工具。而Windows内嵌的CMD异常难用,因此强烈建议安装并使用git bash作为Windows平台中的默认命令行工具。了解更多关于命令行的内容。

一.Python的版本管理

作为解释型语言之一的Python,版本之间的依赖关系较为繁琐,因此针对不同版本创建的项目,可以使用Python的多版本以及多环境来进行单一机器的版本隔离。

Python多版本管理

Python的多版本管理,类似于虚拟机的管理。即电脑安装某个固定的版本作为宿主版本,同时可以创建多个版本,用于对不同项目的拦截(Interceptor),即不同的项目使用不同的Python版本来执行。具体请参见 Python多版本管理 。

Python虚拟环境管理

Python的虚拟环境管理,是一个比较特殊的概念。此概念延伸自多版本管理,例如:可以利用Python 3.6.5 ,创建两个虚拟环境,例如:Env365_1,Env365_2。

当使用虚拟环境运行Python项目时,Python的环境搜索顺序为:当前目录-->虚拟环境-->创建虚拟环境时使用的具体版本-->宿主版本。具体请参见 Python虚拟环境管理。

二.开发工具的选择

进行 Python 语言的开发,一般会用 VSCode 和 PyCharm 这两个可视化的IDE工具,接下来会依次阐述:

VSCode

VSCode是微软发布的开发工具,可以通过安装组件,支持几乎所有的开发语言。点击了解详情查看在VSCode中开发Python的配置。

PyCharm

PyCharm是由Jetbrains开发的一款优秀的Python开发工具,囊括了开发Python所需的几乎所有功能,基本无需额外安装组件。同时提供了可以免费使用的社区版本。点击了解详情查看PyCharm的使用。

如果在使用IDE尝试开发时,遇到 Module 无法找到的错误,可先阅读 四.组件管理 章节进行了解。

三.Python 小技巧

Python作为一门面向对象的开发语言,有一些有特色的语言特性,同时也提供许多好用的内置函数,可以较大的提供编码的水平及质量,本章讲述一些比较常用的技巧。

自定义函数

Python 通过关键词 def 来定义一个函数,有一些特性有别于其他语言。点此了解更多。

面向对象

虽然 Python 是弱类型的解释型语言,但是依旧支持面向对象编程,有一些特性在使用中,需要予以注意。了解更多 Python 中面向对象编程的知识。

序列化

Python内置了JSON组件用于序列化,但是由于是弱类型的缘故,因此在序列化时,经常会遇到类型无法序列化的问题,需要特别予以处理。了解更多在 Python 中序列化对象的内容。

Enum枚举

Enum是编程语言中非常灵活好用的一种特殊的对象类型,通常可用于有限数目的值定义。用于约束方法或者取值的范围。了解更多如何在 Python 中使用 Enum。

加密与解密

在做前后端数据交互,以及敏感数据脱敏存储时,需要对数据进行加密/解密处理。了解更多关于Python加解密的内容。

文件与目录操作

Python对于文件与目录的操作,都提供了很简单的处理函数。了解更多文件读写以及目录操作的相关内容。

内置函数

Python还提供了几十个内置函数,多数与其他语言并无太大差异,但是有一些函数对于排序、筛选等操作有非常大的帮助。点此了解更多。

四.Python 组件分析

Python作为一款开源开发语言,有着庞大的开源组件库,例如:pypi上可以找到所有Python的开源组件。在此仅简略介绍日常最常用的组件。

组件管理

请节请务必优先阅读!

在学习Python组件之前,请务必了解更多关于Python如何搜索组件路径,如何安装,以及项目依赖等方面的知识。

Flask/Flask-Cors

Flask是一款轻量级,强大且已用的Web组件。内置WSGI轻量级服务器,内置路由解析,模板渲染等功能。Flask-Cors 是Flask的子组件,用于支持Flask实现跨域的支持。了解更多关于Flask 的入门知识。

内置WSGI启动Python仅限于开发时使用,项目部署生产环境时,强烈建议使用遵循wsgi标准的uWSGI服务软件,进行负载部署。

python-dotenv

python-dotenv是一款简易的环境配置文件加载工具,用于隔离在不同环境中的独立配置。了解更多关于加载配置的内容。

Requests

Requests是一款强大的网络请求工具,封装了常用的请求方法,支持常规数据传输、文件传输等。注意有别于Flask自带的Request组件。了解更多相关内容。

五.数据持久化

数据持久化,一般是指将代码中运行的临时数据,通过存储实现持久化的使用、管理。比较常见的方式是程序语言将数据存储为xml文件或者存储到数据库中。

操作XML

XML是数据文件持久化经常使用的一种方式,Python提供了数种XML的操作类,一般综合性能与功能比较常用的是ElementTree。通常建议不要使用拼接String的方式来生成xml,因为String在编程语言中的特殊定义,会导致在并发或者数据量稍微多一点时,发生内存泄漏的问题。点此了解详情。

操作数据库

Python为操作数据库提供了Python DB-API接口。正如其名所属,Python仅内建了一套接口的定义,实际上并不能直接操作数据库。实际上要依赖底层系统安装的数据库链接实现。该接口支持的数据库包括:

MySQL

Microsoft SQL Server

Oracle等

对于可以操作哪种数据库,起到实际作用的是安装在底层操作系统中的对应数据库驱动,而上层的操作语句是基本一致的。点此了解更多。

SQLAlchemy

SQLAlchemy 是一款十分强大的ORM数据处理组件,以面向对象的形式来操作数据库,支持连接池、支持事务以及一些复杂查询功能。极大程度提高了编程语言操作数据库的能力。而为什么现代编程语言都强调使用ORM对象,而不是原生方式来操作数据库的原因,此处不再赘述,可百度了解。点此了解更多。

六.Flask深入学习

Request & Response

所有的应用,不外乎输入(Request)与输出(Response),因此学习Flask,可以由此开始。了解更多 请求和响应的介绍。

Route & Blueprint

路由是现代Web应用中格外重要的一个概念,一个遵循 RESTful 标准的路由结构,会大大提供代码的可读性,并且极易扩展。而 Blueprint 更像是路由的一个抽象子集。点此了解更多。

Session & Cookie

对于应用的安全管理,是一个绕不开的话题。现代Web应用,通常会采用前后端交互的方式,而在此交互模式下,比较常用的安全校验方式,一般是通过JWT和会话管理,JWT是一个单独的话题,与具体的语言实现无关,在此不再赘述。了解更多关于会话的内容。

静态文件 & 模板渲染

现代的Web应用,除了纯粹的 Web Server ,一般不需要静态文件的支持,其他应用,至少会需要一个 favicon ;而模板渲染,在现代前后端分离的前提下,用到的也不多,此处仅做简单说明。点此了解更多。

官方文档

想要了解更多,关于Flask的的信息,请移步官方文档。

七.最佳实践

最佳实践(best practice),是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或管理实践的结果达到最优,并减少出错的可能性。

而对于软件工程来说,最佳实践一般是在基础理论之上整理汇总出来的一些经验论与方法论,一方面可能会降低系统的维护与管理难度;另一方面会极大增强系统的稳定性与可延展性。

命名规范

由于Python是一种弱类型语言,官方也并不知道标准,因此除了内置的类库和函数之外,理论上可以任意命名,但这在编程中显然不是合理的操作,因此本节整理一些通用的规则进行说明。了解更多

工程结构

软件工程中的结构,指工程中的文件存储结构,一般会从两个维度来组织:项目结构与代码结构。项目结构是指该软件工程中,应用文件、资源文件、数据文件等的组织结构;代码结构,一般会结合开发中的多层架构而组织,例如:模型层、数据层、业务层等。了解更多。

单元测试

对于大型的,或者说流程较多的系统中,测试是一件比较繁琐的事情。这是由于在开发过程中,多数的逻辑异常可能会出现在各个环节中,而我们不可能做到每一项测试,都覆盖到流程中的每一个项目。

而单元测试,正是由此而生。顾名思义,即对系统最小单元的测试过程。了解更多单元测试的信息。

日志

提供Web服务的 Web Server 一般都会提供信息(info) 级别的日志,通常只能用于用户行为分析;对于错误(error) 级别的信息,也只能记录下 5XX 标识的系统级错误。而绝大多数情况下,我们并不想给用户展示这些详细的错误信息,但是又需要在用户不可知的情况下记录下这些错误信息,以便进行错误重现,而此时就要用到Python提供的日志组件进行记录。了解更多

八.项目部署

正如前面章节所提到的,Python提供的内置 WSGI 服务器仅适用于开发,将其用于生产会有很大的安全问题和性能问题。本章讲述在不同操作系统中如何部署Python项目。

uWSGI

在类 Linux 系统中较多使用 uWSGI 部署Python项目,请了解更多关于在类 Linux 系统中部署 Python项目的知识。

FastCGI

在 Windows 中,或者更准确的说在 IIS 中部署Python项目,有别于 Linux 系统的最大区别,只是无法使用 uWSGI,而要改用 IIS 所支持的 FastCGI 方式。请了解更多关于在 Windows 中部署Python项目的知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值