Python全栈
Python全栈工程师从0-1,小白到大师!
女王の专属领地
尼采曰:每一个不曾起舞的日子,都是对生命的辜负!
展开
-
Python全栈工程师(1:全目录)
目录:(一)算法基础(二)设计模式(三)语言基础(四)网络编程(五)Web基础开发(六)PY Web框架(七)项目实战(八)课后练习答案:http://www.cnblogs.com/catepython/p/8973372.html(九)课堂练习代码:https://github.com/teazj/OldBoy_Python【老男孩】http://w...原创 2018-04-29 14:38:57 · 9387 阅读 · 9 评论 -
python 全栈工程师(1:引言和基础)
Python擅长区域:学习步骤:Python解释器:CPython:命令下运行python就是启动CPython解释器;IPython:基于CPython上的交互解释器;PyPy:提高执行速度,才行JIT技术;Jython:运行在java平台上的解释器,可以直接将Python代码编译成Java字节码执行;IronPython:和Jython类似,运行在微软.Ne...原创 2018-03-18 20:37:24 · 581 阅读 · 0 评论 -
Python全栈工程师(2:数据类型)
列表:[]浅copy:只拷贝一层person = ['name',['a',100]]p1 = copy.copy(person)p2 = person[:]p3 = list(person)元组:() 只读列表,一旦创建,不能修改,只能查找;字典、数字、字符串、集合;列表与元组练习:购物车#!/usr/bin python...原创 2018-03-18 21:46:04 · 441 阅读 · 0 评论 -
Python全栈工程师(3:文件处理与字符编码)
1、文件#1. 打开文件,得到文件句柄并赋值给一个变量f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r#2. 通过句柄对文件进行操作data=f.read()#3. 关闭文件f.close() f=open('a.txt','r')的过程#1、由应用程序向操作系统发起系统调用open(...)#2、操作系统打开该文件,并返回一个文件句柄...原创 2018-03-20 19:39:22 · 377 阅读 · 0 评论 -
Python全栈工程师(4:函数)
函数基础:面向对象:基本单元-->类>>>class面向过程:基本单元-->过程>>>def :函数式编程:基本单元-->函数>>>def ;调用-->fun()注意:(1)、函数里面最好写函数说明,方便别人阅读;(2)、关键参数不能写在位置参数前面;eg:test(3,x=2,4)(3)、全局变量和局部变量函数...原创 2018-03-23 09:25:39 · 387 阅读 · 0 评论 -
Python全栈工程师(5:模块)
模块介绍第三方库一般存放在site-packages下模块的定义:一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过import spam使用。在python中,模块的使用方式都是一样的,细分模块可以分为四个通用类别: 1 使用python编写的.py文件 (自定义模块) 2 已被编译为共享库或DLL的C或C++扩展 (开源模块) 3 把...原创 2018-03-25 16:01:16 · 291 阅读 · 0 评论 -
Python全栈工程师(6:面向对象基础)
程序设计思想发展引子:http://www.cnblogs.com/alex3714/articles/5188179.html面向对象编程 OOP编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述,使用面向对象编程的原因一方面是因为它可以使程序的维护和扩展变得更简单,并且可以大大提高程序开发效率 ,另外,基于面向对象的程序可以使它人更加容易理解你的代码逻辑,从而使团队开发变得更从容。...原创 2018-03-26 13:55:18 · 297 阅读 · 0 评论 -
Python全栈工程师(7:面向对象高级进阶)
面向对象高级语法部分类的字段、方法、属性经典类vs新式类Python 2中:经典类--深度优先;新式类--广度优先Python 3中:均为广度优先super()方法:抽象接口# /usr/bin/env.python# -*- coding:utf-8 -*-import abcclass Alert(object): '''报警基类''' __metaclass__ =...原创 2018-03-28 08:32:29 · 404 阅读 · 0 评论 -
Python全栈工程师(8:异常处理)
1、异常基础在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面。1234try: passexcept Exception,ex: pass2、异常种类常用异常:AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性xIOError 输入/输出异常;基本上是无法打开文件ImportError 无法引入...原创 2018-03-29 10:12:45 · 338 阅读 · 0 评论 -
Python全栈工程师(9:软件开发规则)
软件开发规则:设计好目录结构的原因:提高项目可读性、可维护性:可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好。目录组...原创 2018-03-29 21:02:46 · 331 阅读 · 0 评论 -
Python全栈工程师(10:面向对象的软件开发)
面向对象的软件工程包括下面几个部分1.面向对象分析(object oriented analysis ,OOA) 软件工程中的系统分析阶段,要求分析员和用户结合在一起,对用户的需求做出精确的分析和明确的表述,从大的方面解析软件系统应该做什么,而不是怎么去做。面向对象的分析要按照面向对象的概念和方法,在对任务的分析中,从客观存在的事物和事物之间的关系,归纳出有关的对象(对象的‘特征’和‘技能’...原创 2018-03-29 14:19:40 · 579 阅读 · 0 评论 -
Python全栈工程师(11:网络基础_网络协议篇)
操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。注:计算机(硬件)->os->应用软件二.网络通信原理2.1 互联网的本质就是一系列的网络协议连接两台计算机之间的internet实际上就是一系列统一的标准,这些标准称之为互联网协议...原创 2018-04-04 10:18:04 · 485 阅读 · 0 评论 -
Python全栈工程师(12:Socket编程1)
实现一个socket至少要分以下几步,(伪代码)1234Socket socket = getSocket(type = "TCP") #设定好协议类型connect(socket, address = "1.2.3.4", port = "80") #连接远程机器send(socket, "Hello, world!") #发送消息close(socket) #关闭连接一 客户端/服务器架构1...原创 2018-04-01 11:14:43 · 443 阅读 · 0 评论 -
Python全栈工程师(13:Socket编程2-粘包)
注意:只有TCP有粘包现象,UDP永远不会粘包;粘包问题:主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。socket收发信息的原理:TCP协议容易出现粘包问题的原因:TCP协议是面向流的协议:发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整...原创 2018-04-17 08:37:20 · 466 阅读 · 0 评论 -
Python全栈工程师(14:Socket编程3-socketserver并发)
SocketServer模块SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求的Socket服务端。即:每个客户端请求连接到服务器时,Socket服务端都会在服务器是创建一个“线程”或者“进程” 专门负责处理当前客户端的所有请求。Socketserver模块简化了写network servers的任务.四个基本服务器类:class s...原创 2018-04-27 08:14:40 · 430 阅读 · 0 评论 -
Python全栈工程师(15:Socket编程4-paramiko模块和SSH秘钥)
Python的paramiko模块,该模块基于SSH,用于连接远程服务器并执行相关操作SSHClient用于连接远程服务器并执行基本命令基于用户名密码连接:import paramiko # 创建SSH对象ssh = paramiko.SSHClient()# 允许连接不在know_hosts文件中的主机ssh.set_missing_host_key_policy(paramiko....原创 2018-04-26 09:33:14 · 492 阅读 · 2 评论 -
Python全栈工程师(16:Socket编程5-操作系统回顾)
操作系统发展史手工操作(无操作系统)1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统,计算机工作采用手工操作方式。手工操作程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。 手工操作方式两个特点:(1)...原创 2018-04-28 10:11:02 · 296 阅读 · 0 评论 -
Python全栈工程师(18:Socket编程7-进程)
进程(process)一个程序的执行实例叫做一个进程.每个进程提供程序执行所需的资源,每个进程有一个 virtual address space, executable code, open handles to system objects, a security context, a unique process identifier, environment variables, a pri...原创 2018-05-01 09:24:25 · 269 阅读 · 0 评论 -
Python全栈工程师(17:Socket编程6-线程)
什么是线程(thread)?线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务Last: 一个线程是上下文的一个执行,进程是一大堆和计算相关的资源.一个进程可以包含多个线程.Clarification: 和计算相关的资源包括memory pages (all the ...原创 2018-04-28 10:11:58 · 386 阅读 · 0 评论 -
Python全栈工程师(19:Socket编程8-协程)
协程协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此:协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置。重点:...原创 2018-05-03 07:41:59 · 425 阅读 · 0 评论 -
Python全栈工程师(20:Socket编程9-事件驱动与异步IO)
论事件驱动与异步IO通常,我们写服务器处理模型的程序时,有以下几种模型:(1)每收到一个请求,创建一个新的进程,来处理该请求;如:scoketserver(2)每收到一个请求,创建一个新的线程,来处理该请求;如:socketserver中的threadingtcpserver、forkingtcpserver(3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求(事件驱动)...原创 2018-05-04 10:28:12 · 876 阅读 · 0 评论 -
Python全栈工程师(21:Socket编程10-异步IO:Select pool epoll)
I/O 多路复用之select、poll、epoll详解select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/...原创 2018-05-04 10:48:01 · 356 阅读 · 0 评论 -
Python全栈工程师(22:Socket编程11-Select解析Socket通信)
Python中有一个select模块,其中提供了:select、poll、epoll三个方法,分别调用系统的 select,poll,epoll 从而实现IO多路复用。Windows Python: 提供: selectMac Python: 提供: selectLinux Python: 提供: select、poll、epoll注意:网络操作、文件操作、终...原创 2018-05-20 11:04:15 · 560 阅读 · 0 评论 -
Python全栈工程师(23:消息队列RabbitMQ)
150-163原创 2018-05-21 11:22:54 · 512 阅读 · 0 评论 -
Python全栈工程师(24:Memcached 和Redis缓存)
Memcached & Redis使用 memcached 使用:http://www.cnblogs.com/wupeiqi/articles/5132791.html redis 使用:http://www.cnblogs.com/alex3714/articles/6217453.html原创 2018-05-21 12:03:29 · 334 阅读 · 0 评论 -
Python全栈工程师(25:Mysql数据库)
1. 数据库介绍什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。由于将数据存储在文件中,读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中...原创 2018-05-21 12:03:39 · 549 阅读 · 0 评论 -
Python全栈工程师(26:python操作Mysql:pymysql)
Python操作MySQL主要使用的两种方式:原生模块 pymysqlORM框架 SQLAchemypymsqlpymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。下载安装pip3 install pymysql使用操作1、执行SQL#!/usr/bin/env python# -*- coding:utf-8 -*-import pymysql # 创...原创 2018-05-05 17:22:29 · 319 阅读 · 0 评论 -
Python全栈工程师(27:python操作Mysql:ORM sqlchemy)
Python操作MySQL主要使用的两种方式:原生模块 pymysqlORM框架 SQLAchemy主要内容ORM介绍sqlalchemy安装sqlalchemy基本使用多外键关联多对多关系表结构设计作业1. ORM介绍orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系...原创 2018-05-21 12:04:03 · 1038 阅读 · 0 评论 -
Python全栈工程师(28:SQLAchemy)
SQLAchemySQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。安装:1pip3 install SQLAlchemy SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件,Dialect用于和数据API进行交流,根据配置文...原创 2018-05-21 12:06:23 · 440 阅读 · 0 评论 -
Python全栈工程师(29:关系型数据库还是NoSQL?)
推荐阅读1:全面梳理关系型数据库和NoSQL的使用情景关系型数据库和NoSQL数据库关于NoSQL非关系型的数据库详解不算题外话:关系型数据库(RDBMS)能够适应所有情况这个问题很明显,假设你开始就使用关系型数据库(RDBMS),这种传统的数据库系统能够解决任何问题且不容易被取代。这意味着什么?简单的举例:关系型数据库(RDBMS)一直被使用,所以他们和”新来者“相比在市场上有巨大的优势, “新...原创 2018-05-22 22:25:50 · 471 阅读 · 0 评论 -
Python全栈工程师(30:html)
HTML基础网站:http://www.w3school.com.cn/html/index.aspHTML参考手册:http://www.w3school.com.cn/tags/index.aspHTML参考资料:http://www.runoob.com/html/html-tutorial.htmlhtml文档定义文档类型:<! DOCTYPE html>结构 :<htm...原创 2018-04-07 09:19:08 · 374 阅读 · 0 评论 -
Python全栈工程师(31:css)
css属性设置方法:方式1:在标签上设置style属性;<div style="height:10px ; width:10px"></div>方式2:放在head里添加css模式;<head><style>#i1,#i2{ height:10px ; width:10px; } /*id选择器*/.c1{ height:10px ; widt...原创 2018-04-08 13:40:52 · 295 阅读 · 0 评论 -
Python全栈工程师(32:Dom)
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。一、查找元素1、直接查找1234document.getElementById 根...原创 2018-05-14 13:35:49 · 339 阅读 · 0 评论 -
Python全栈工程师(33:JavaScript)
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码,浏览器可以解释并做出相应的处理。编写1、可以在什么地方写?--html文件中写;--临时,浏览器终端console中写;2、JavaScript代码存在形式<!-- 方式一 --><script type"text/javascript...原创 2018-05-20 09:20:15 · 304 阅读 · 0 评论 -
Python全栈工程师(34:jQuery)
Python全栈工程师(34:jQuery)原创 2018-05-14 15:08:01 · 353 阅读 · 0 评论 -
Python全栈工程师(35:组件:EasyUI Bootstrap JQueryUI)
Python全栈工程师(35:组件:EasyUI Bootstrap JQueryUI)原创 2018-05-14 13:50:24 · 397 阅读 · 0 评论 -
Python全栈工程师(36:web框架)
Web框架本质众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。#!/usr/bin/env python#coding:utf-8 import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1....原创 2018-05-23 09:30:15 · 493 阅读 · 0 评论 -
Python全栈工程师(37:MVC)
MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,...原创 2018-05-23 11:10:11 · 545 阅读 · 0 评论 -
Python全栈工程师(40:Web框架Django基础)
Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。基本配置一、创建django程序终端命令:django-admin startproject sitenameIDE创建Django程序时,本质上都是自动执行上述命令二、程序目录mysite:对整个程...原创 2018-05-25 09:42:45 · 433 阅读 · 0 评论 -
Python全栈工程师(42:Web框架Django步骤)
1.创建Django工程django-admin startproject 工程名2.创建appcd 工程名python manage.py startapp cmdb3.静态文件project.settings.pySTATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), ) 4.模板路径TEMPLATE_DIRS ...原创 2018-05-23 19:59:50 · 627 阅读 · 0 评论