Python Java 技术爱好者,从业人员,呆萌小男生。 简书地址:https://www.jianshu.com/u/f90444508f73
image.png 最近有个需求,老大让用 Django 来做,以前入门 Python 时就听过 Django 的大名,今日一见果然名不虚传~~~~。
很早以前学 Python 的时候就知道虚拟环境这个东西的存才,但是由于当时只想一心急切的想掌握 Python 基础语法而不想把时间浪费在环境搭建上(当时作者本人还算刚入门编程),所以一直没有详细搭建虚拟环境。
方法 方法其实就是一个函数,在 func 这个关键字和方法名中间加入了一个特殊的接收器类型。接收器可以是结构体类型或者是非结构体类型。接收器是可以在方法的内部访问的。
字符串 Go 语言中的字符串是一个字节切片。把内容放在双引号""之间,我们可以创建一个字符串。 Go 中的字符串是兼容 Unicode 编码的,并且使用 UTF-8 进行编码。
可变参数函数 可变参数函数是一种参数个数可变的函数。 如果函数最后一个参数被记作 ...T ,这时函数可以接受任意个 T 类型参数作为最后一个参数。 只有函数的最后一个参数才允许是可变的。
File类的使用 文件是:文件可认为是相关记录或放在一起的数据的集合。 Java中,使用java.io.File类对文件进行操作 public class FileDemo { public static void main(String[] ...
线程是比进程还要小的运行单位,一个进程包含多个线程。 什么是多线程 线程的创建 两种方式: 创建一个Thread类,或者一个Thread子类的对象 创建一个实现Runnable接口的类的对象 Thread类: Thread是一个线程类,位于java.
应用场景: 无法预测存储数据的数量 同时存储具有一对一关系的数据 需要进行数据的增删 数据重复问题 集合概览 image.png List(列表) List是元素有序并且可以重复的集合,称为序列。
String的常用方法 image.png 以上是我们平时常用的方法,建议自己手动测试练习加以记忆,其他方法可以查阅文档。 将字符串转换为byte数组 示例代码: String name = "java 编程 基础"; byte[] b = name.
包装类用途 Java中有些异类(8种基本数据类型)它们不能像对象一样进行属性和方法的调用以及进行相互之间的对象化处理,包装类的存在就是为了解决这些异类产生的问题,让它们能像对象一样进行交互。
Maven是一个软件项目管理和理解工具。基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目工具。 Maven官网地址 image.png 上图中,Maven3.3+要求jdk1.7以上。
异常处理 如何处理异常 1. try-catch-finally 2. throw 3. throws 4. 自定义异常 5. 异常链 根类:Throwable 两个子类:Error、Exception image.png 上图中非检查异常,表示的是编译器不要求强制处理的异常,包括: image.png 检查异常:在程序编码阶段就被要求必须进行异常处理,否则编译无法通过。
多态 多态是面向对象编程中最后一个(封装、继承、多态)也是最重要的特征。 程序设计当中,多态意味着,允许不同类的对象对同一消息做出不同的响应。 多态分为: 编译时多态 (设计时多态方法重载) 运行中多态 (程序运行时动态决定调用哪个方法) image.png 一般所说的java中的多态大多是运行时多态。
数组 数组是同一类型元素的集合。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(译者注:当然,如果是 interface{} 类型数组,可以包含任意类型) 数组声明:[元素的数量]类型 package main import ( "fmt" ) func main() { var a [3]int //数组中的所有元素都被自动赋值为数组类型的零值。
函数 Go 语言中,函数声明通用语法如下: func functionname(parametername type) returntype { // 函数体(具体实现的功能) } 函数的参数列表定义在 (和) 之间,返回值的类型则定义在之后的 returntype (返回值类型)处。
image.png 先讲一下,写这种笔记的目的: 自己在学的过程中能一字一句读下来并且写出来,便于理解加深记忆,这样做比只看教程记忆会更加深刻。
并发、并行,同步、异步,阻塞、非阻塞 并发、并行 并发是在一个时间段内,有几个程序在同一个cpu上运行,但是任意时刻只有一个程序在cpu上运行。 并行是任意时刻点上,有多个程序同时运行在多个cpu上。
线程同步 - condition介绍 多线程中的另外一个重要点就是condition:条件变量。 condition是python多线程编程中用于复杂线程间通信的一个锁 叫做条件变量。
HTTP、Socket、TCP概念 socket属于常用的http协议之下的让我们可以使用tcp/ip协议的一个接口。 socket编程 image.png socket编程的模式其实是非常固定的。
围棋少年 Python中的迭代协议 迭代协议有两个概念: 可迭代类型(Iterable) 迭代器(Iterator) 迭代器:迭代器是访问集合内元素的一种方式, 一般用来遍历数据。
dict的子类 首先,不建议自己编写代码继承dict和list这种原生使用c语言编写的,因为有时候,用c语言写的dict不会调用python写的覆盖的方法。
序列类型 Python中的序列类型,序列类型可以使用for循环遍历。 序列类,序列是python中非常重要的协议,如何通过实现这个协议,将类变为序列类。 Python中的序列分类两个维度区分: 容器序列:可以放置任意类型的数据。
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
image.png Python中一切皆对象 和Java相比,Python的面向对象更加彻底。 函数和类也是对象,是python的一等公民。 代码和模块也可以称之为对象。
timg (11).jpg 静态文件访问原理 app文件夹下新建文件夹static,放入一张图片demo.jpg,然后访问服务器启动默认地址127.0.0.1:81/static/demo.jpg就可以访问到这张图片。
20180522165151556.jpg 之前有一篇文章是讲解scrapyd的使用,但是scrapyd是纯命令行操作,显然很麻烦,现介绍一个开源免费使用的可视化系统。
timg (10).jpg image.png Flask多线程机制 发送请求和服务器处理请求的线程之间的关系? 客户端发送十个请求,Flask开启多少个线程处理请求?其实是由web服务器开启的多线程。
先上github地址:Scrapyd Scrapyd是一个服务,用来运行scrapy爬虫的 它允许你部署你的scrapy项目以及通过HTTP JSON的方式控制你的爬虫 官方文档:http://scrapyd.
timg (9).jpg 从本章开始,逐步引入数据库相关知识点。 关于数据库的工具以及一些入门的知识请自行查找资料学习(例如:创建数据表,数据库可视化工具)。
timg (8).jpg 上节讲到,视图函数可以以接受参数的形式来获取传入后台的参数,但是往往我们需要对参数进行校验,比如说请求一个10条数据,那么page=10,但是如果某些比较皮的小盆友传入一个page=10000,那服务器也要去数据库查询10000条记录返回吗?显然不能那么做,所以这就涉及到在Flask中做参数检查的工作。
timg (7).jpg 在上一节Python Flask学习知识点(二)文章中, 把视图函数从入口启动文件中分离了出来,把视图函数放到了book.py模块中,但是通过尝试,无法从启动文件run.py中导入Flask核心对象app,这也就导致无法使用Flask核心对象来注册视图函数的路由,解决这个问题的方法有很多种。
使用Flask写简单的API 所有API都一样,不限于编程语言,API的难点在于路由(URL)的设计,能否精准的找到资源,而不是在于如何用技术实现。
timg (5).jpg 在此记录Python Flask学习过程中的知识点,易忘记点,中间也会记录一些小的Python技巧及知识。 本文章根据慕课网七月老师的Python Flask高级编程课程,梳理课程中的知识点,供大家参考。
一、Homebrew是什么? Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。
1.下载 打开官网:https://redis.io/ Download---Stable---Download3.2.8,下载最新稳定版,这里是3.2.
小哈.jpg 在爬虫爬取过程中,我们常常会使用各种各样的伪装来降低被目标网站反爬的概率,其中随机更换User-Agent就是一种手段。 在scrapy中,其实已经内置了User-Agent中间件, class UserAgentMiddl...
timg.jpg 前言 在我们平时使用爬虫程序采集数据时,往往会遇到,因采集速度过快导致的自己网络ip被目标网站封禁,这种封禁有时候是封几分钟,有时候是封一天,封的时间不等,但是这样会导致我们局域网内其他人也无法访问目标网站,最大的问题是我们无法进行数据采集。
设计模式 是软件开发人员在软件开发过程中面临的一般问题的解决方案 单例模式 目的:使得类的一个对象成为该类系统中的唯一实例 定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供 因此,设计要点是: 某个类只能有一个实例 必须自行创建实例 必须自行向整个系统提供这个实例 实现: 只提供私有的构造方法 含有一个该类的静态私有对象 提供一个静态的公有方法用于创建、获取静态私有对象 代码实现方案: 饿汉式 懒汉式 饿汉式 类加载时,静态实例对象完成了实例化操作;空间换时间。
Object类 Object类是所有类的父类 一个类没有使用extends关键字明确标识继承关系,则默认继承Object类 (包括数组) Java中的每个类都可以使用Object中定义的方法 可以在Java官方文档中查找Object类中的自带的方法...
阐述LEGB前,需要先对Python的命名空间、作用域有一定的了解。 命名空间 命名空间表示变量的可见范围,一个变量名可以定义在多个不同的命名空间,相互之间并不冲突,但同一个命名空间中不能有两个相同的变量名。
二狗子.jpeg 面向对象: 关注现实存在的事物的各个方面的信息,从对象的角度出发,根据事物的特征进行程序设计。 类 类,是抽象的概念,可以理解为一个模型,用来确定对象将会拥有的特征(属性)和行为(方法) 对象,是类的实例表现形式,一个实体。
首先把官方文档搬出来: doc.png 英文棒的小伙伴们最好是去看下官方文档,毕竟原汁原味的英文表述才最准确。Python3.6 getattr 官方文档 getattr()函数是Python自省的核心函数,可以把一个要访问的变量或方法,通过字符串的形式传递过去并拿到返回的值。
假设: 三位互联网风云人物除了本身的职位外,给他们增加医生、警察、司机三个职务。现在他们要去学习一项Java开发的技术,对于老师来讲,三位都是学生,老师只关注学生这一个身份,其他的身份与老师无关。
一、map() 格式:map(func, *iterables) map函数接受两个参数,第一个是要执行的函数,第二个是可迭代对象,可迭代对象可以传入多个参数。
相信大家有一个感觉,就是每当写爬虫时,需要写xpath来找到我们要的数据,调试xpath会浪费很多时间,一次又一次的requests请求,每每看到取到的元素与自己心中想要的元素不符时.......... 今天为大家介绍一款谷歌浏览器插件,能帮大家在待抓取页面直接写xpath并且可以看到取到的元素,话不多说 上图: 打开Chrome商店,搜索 xpath-helper 会出现如图中的搜索结果,点击添加至CHROME按钮,根据提示完成添加即可。
HTTP 、Socket 、 TCP 七层OSI网络模型,这里只介绍五层常用网络模型,想知道全部七层详细内容自行查询。 应用层 :HTTP FTP SMTP DNS Telnet 传输层 :TCP UDP 网络层 :IP ICMP 数据链路层 :ARP等 物理层 :1000BASE-SX等 socket是用来连接传输层和应用层,使得应用层可以直接和传输层做交互。
同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication) 真正意义上的 异步IO 是说内核直接将数据拷贝至用户态的内存单元,再通知程序直接去读取数据。