- 博客(58)
- 收藏
- 关注
原创 Python web 后端面试
基础Python这门语言的看法python是一门具有解释性、编译性、互动性和面向对象的脚本语言。python与php相比可以处理多进程多线程任务。语法没有java那么严格 java的可移植性是需要代价的什么是闭包函数中嵌套函数 且外层函数的返回值也是函数 闭包中需要注意的是变量的作用域,内层函数使用外层函数的值需要加nolocal 使用全局变量的值需要加global。什么是装饰器装...
2020-02-26 17:09:45 463
原创 50 MySQL单表ORM增删改查
ORM(Object Relation Mapping)ORM用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作实体对象的属性和方法根据类创建对象,对象转换成SQL,执行SQL。在ORM中,类代表的是数据库中的表,类对象代表的是数据库中的表记录,类属性代表的是数据库中的表字段。如何在p...
2019-12-08 14:59:15 191
原创 49 Python连接MySQL数据库
连接mysql数据库查询操作import pymysqlconn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='****',database='classsystem') # 创建链接cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # ...
2019-12-08 14:51:41 161
原创 48 Django的路由层
路由层(url.py)的作用Django的路由层,是所有Django所支持跳转URL的目录,它可以告诉Django在跳转URL时,要用视图层(views.py)中的哪一个方法。路由层的配置方式使用正则表达式(无名分组以及有名分组)1、 无名分组from django.urls import path,re_pathfrom app01 import viewsurlpatte...
2019-12-08 14:22:30 136
原创 面试题总结
Python中格式化输出应该使用%还是formatPython 新版本推荐使用format,Python 2.6才开始支持了format语法。c = (100,200)# print('坐标%s'%c) #会报错,因为%s只能传入一个值,但是c是一个元组,其中不止一个值。可以改写为print('坐标%s'%(c,))print('坐标{}'.format(c)).format(...
2019-11-13 15:25:27 127
原创 40 数据库基础
什么是数据库数据库就是存储数据的仓库,平时所用到的电脑上的资料等都可以看作是数据。对数据库的操作,我们可以通过SQL语句进行操作,也可以通过可视化界面操作。数据库的几个概念数据库服务器 —>对应计算机数据库管理系统 —>对应操作系统库 —>文件夹表 —>文件记录 —>文件中的表头数据 —>文件中的数据MySQL的下载以及安装可以参考网上的...
2019-10-24 11:02:38 1631 1
原创 47 创建Django的页面跳转
Django跳转当创建好Django文件之后,在urls.py文件中,可以先输入一下的代码,但是需要注意的是HttpResponse包只能返回字符串数据,不能跳转html文件。然后在重新启动一下项目,点击跳转页面,由于在第三部中设定的url后面的是login,所以我们需要输入完整的url:http://127.0.0.1:8000/login/,就可以发现网页发生了跳转,显示login跳...
2019-10-13 11:00:16 318
原创 46 PyCharm的Django初识
安装Django(Python3)在cmd终端中输入命令行:pip install django即可。创建文件在专业版PyCharm中打开File->New Project其中,Location代表的是所创建文件的路径,Projiect Interpreter选择Existing interpreter,选择已经安装好的Python3的安装路径。运行在创建完项目位置以及名称之...
2019-10-13 09:59:34 287
原创 Django连接MySQL数据库django.core.exceptions.ImproperlyConfigured错误
在Django的2.0版本之后,在使用自己创建app中的__init__.py文件中调用pymysql包,使用如下语句import pymysqlpymysql.install_as_MySQLdb()当运行是会出现如下错误:在网上搜了很多攻略,其中的一些方法是找到Python安装路劲下的Python36-32\Lib\site-packages\django\db\backends\...
2019-09-06 15:11:59 3680
原创 45 jQuery相关操作
jQuery介绍jQuery是一个轻量级的、兼容多浏览器的JavaScript库。jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do more.“jQuery对象jQuery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是...
2019-08-19 16:31:29 185
原创 44 BOM和DOM
JavaScript分为 ECMAScript,DOM,BOM。BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分...
2019-08-08 19:58:44 243
原创 43 JavaScript基础
JavaScript概述一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:核心(ECMAScript)文档对象模型(DOM) Document object model (整合js,css,html)浏览器对象模型(BOM) Broswer object model(整合js和浏览器)简单地说,ECMAScript 描述了JavaScript语言本身的相关内容。...
2019-08-06 20:22:42 152
原创 42 CSS基础
CSS介绍CSS(Cascading Style Sheet,层叠样式表)定义如何下那是HTML元素。当浏览器读到一个样式表,他就会按照这个CSS中的样式来进行渲染。CSS包括两部分:选择器{属性1:值1;属性2:值2}CSS的引入方式行内样式直接在标签的style中设定css样式。例如:<p style = 'color = red'>示例1</p>...
2019-08-02 15:03:04 150
原创 41 HTML简介
什么是HTMLHTML(Hypertext Markup Language,超文本标记语言)是一种用于创建网页的标记语言。本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页,对于不同的浏览器,对同一标签可能会有不同的解释,也就是我们常说的兼容性问题。HTML文档结构<!DOCTYPE html><html lang="zh-CN"><...
2019-07-31 15:22:34 221
原创 39 初始协程
协程主要用于高IO的操作的代码中,例如爬虫,如果只是单个的计算代码,不建议使用协程。进程:启动多个进程 进程之间是由操作系统负责调用线程:启动多个线程 真正被CPU执行的最小单位实际是线程开启一个线程 创建一个线程 寄存器 堆栈关闭一个线程协程:本质上就是一个线程能够在多个任务之间切换来节省一些IO时间协程中任务之间的切换也消耗时间,但是开销要远远小于进程线程之间的切换协程模...
2019-07-19 17:28:55 150
原创 38 线程池
线程池属性concurrent.futures模块提供了高度封装的异步调用接口ThreadPoolExecutor :线程池,提供异步调用ProcessPoolExecutor :进程池,提供异步调用基本方法:submit(fn,*args,**kwargs) 异步提交任务。map(func,*iterables,timeout = None,chunksize = 1) 取代f...
2019-06-13 20:37:31 279
原创 37 信号量、条件
信号量(Semaphore)控制只能由n个线程访问代码import timefrom threading import Semaphore,Threaddef func(sem,a , b): sem.acquire() time.sleep(1) print(a+b) sem.release()sem=Semaphore(4)for i in range...
2019-06-13 19:21:28 312
原创 36 守护进程、守护线程、锁
守护进程随着主进程代码的执行结束而结束守护线程会在主线程结束之后等待其他子线程的结束才结束import timefrom threading import Threaddef func1(): while True: print('*'*10) time.sleep(1)def func2(): print('in func2') ...
2019-06-13 11:35:39 5059 2
原创 Keras 深度学习框架方法及参数
Keras是python中基于Theano、CNTK等为计算后台的深度学习建模环境,相对于其他的深度学习框架,如tensorflow,theano,Caffe等,Keras具有其显著的优点,如,支持CNN,RNN等算法。大大地加快了开发的速度。本文主要介绍Keras的相关使用参数。核心层全连接层:神经网络中最常用到的,实现对神经网络中神经元的激活。keras.layers.core.De...
2019-06-12 15:57:15 870
原创 35 threading模块、基础代码、全局解释锁以及一些其他方法
通过继承的方式,实现线程:import timefrom threading import Threadclass MyThread(Thread): def __init__(self, args): super().__init__() #执行父类中的__init__() self.args = args def run(self):...
2019-06-12 15:54:26 683
原创 34 线程
一个进程中,会有一个或者多个线程。进程是资源分配的最小单位,线程是CPU。每个进程中,至少有一个线程。进程与线程的关系进程与线程的区别:地址空间和其他资源:进程间相互独立,同意进程的各个线程间共享,某进程内的线程和其他进程不可见。通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来仅从通信–需要进程同步和互斥手段的辅助,来保证数据的一致性。调度和切换:线程上下文切换比...
2019-06-12 10:39:01 253
原创 33 管道、数据共享、进程池、回调函数
###管道进程间通信(IPC)方式二:管道(不推荐使用,了解即可),端口易导致数据不安全的情况出现。from multiprocessing import Pipe,Processdef func(conn1,conn2): msg = conn1.recv() # 接收了conn2传递的 # msg1 = conn2.recv() # 接收了conn1传递的 ...
2019-06-11 21:14:15 507
原创 32 进程之间的通信
进程间通信(Inter-Porcess Communication,简称IPC),首先要了解队列,它是先进先出的。通过from multiprocessing import Queue来使用。from multiprocessing import Queueq = Queue(6)for i in range(6): q.put(i) print('%d放入队列'%i)pr...
2019-06-11 19:22:20 231
原创 31 事件
事件:通过一个信号来控制多个进程同时执行或者阻塞。一个信号可以使所有的进程都进入到阻塞状态,也可以控制所有的进程接触阻塞,一个时间被创建之后,默认是阻塞的状态from multiprocessing import Evente = Event()print(e.is_set()) #查看一个时间的状态,默认是阻塞状态print(123456)e.wait() #依据e.is_set()...
2019-05-24 21:11:04 290
原创 30 进程锁
为了保证数据的安全性。import json, timefrom multiprocessing import Process,Lockdef show(): with open(r'E:\Python FullStack\Interpreter\MultiProcessing\ticket') as f: dic = json.load(f) print...
2019-05-15 16:53:48 170
原创 29 守护进程
当主进程结束时,子进程应该随着主进程的结束而结束,能做到这件事的,就叫做守护进程。下面的代码,挡住进程结束之后,子进程还会继续执行from multiprocessing import Processimport timedef func(): while True: time.sleep(0.5) print('123456')if __name...
2019-05-15 16:14:53 165
原创 28 使用多进程实现socket服务端的并发效果
服务器端:import socketfrom multiprocessing import Processdef server(conn): ret = '你好' conn.send(ret.encode('utf-8')) msg = conn.recv(1024).decode('utf-8') print(msg) conn.close()if...
2019-05-11 17:08:10 253
原创 27 进程进阶
进程之间的运行次序import time,osfrom multiprocessing import Processdef func(args1,args2): print(args1,args2) print(1234) time.sleep(1) print(654323)if __name__ == '__main__': p = Proces...
2019-05-11 15:49:15 193
原创 26 初识进程
狭义上,进程就是正在运行的程序实例。广义上,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作i系统中,进程既是基本的分配单元,也是基本的执行单元。什么是进程为了将每个程序分离开来,在运行的时候,都有自己的运行空间,所以操作系统引入了进程的概念。(1) 进程是一个实体,每一个进程都有它自己的地址空间,一般情况下,包括文本区域,数据区域...
2019-05-07 12:05:03 364
原创 25 struct定制报头以及ftp实践
struct定制报头以及ftp传输文件我们自网络上传输的所有数据,都叫数据包,数据包里的所有数据,都叫报文。报文里不止包含要发送的消息信息,还包括了ip地址,mac地址,端口号等。。。所有的报文都有报头,这是协议决定的。报文中包含里要接受多少个字节的信息等。我们可以自己定义报文,在网络传输过程中,处处有协议,协议就是一堆报文和报头。实现一个大文件的上传或者下载#server端import...
2019-05-02 14:03:54 1249
原创 24 TCP黏包问题
黏包问题只发生在TCP传输的时候,UDP不存在黏包问题。TCP是面向字节流的传输,UDP是面向包的传输。#server端from socket import *ip_port=('127.0.0.1',8080)tcp_socket_server=socket()tcp_socket_server.bind(ip_port)tcp_socket_server.listen(5)co...
2019-05-02 10:19:57 239
原创 23 常用模块 hashlib
hashlib,是提供摘要算法的模块,它是一个集合。MD5,SHA1,SHAKE算法等。摘要算法:用于密码的密文存储、文件的一致性验证。对于同一个字符串,进行摘要,使用同一个算法得到的值始终是不变的。使用不同的算法对同一个字符串进行摘要算法,得到的值应该是不同的。,不管是用什么摘要算法,hashlib的使用方式永远不变。import hashlibmd5 = hashlib.md5()md...
2019-04-27 21:53:27 187
原创 22 内置方法__repr__、__str__、__del__
双下划线方法str、reprobj.__str__(object) #打印object信息obj.__repr__(object) #会把object中的信息完整的打印出来例如:a = 'abcde'print(a.__str__())print(a.__repr__())print(a) #打印一个对象的时候,就是调用了a.__str__()输出:class Pers...
2019-04-27 19:32:29 211
原创 爬虫【进阶】(套路二)
GitHub爬虫import requestsfrom bs4 import BeautifulSoupreq1 = requests.get('https://github.com/login')soup = BeautifulSoup(req1.text, features='lxml')tag = soup.find(name='input', attrs={'name': 'a...
2019-04-10 08:44:40 172
原创 19 接口类和抽象类
接口类和抽象类的界限比较模糊。接口类python原生是不支持的,支持多继承,接口类中的所有方法都必须不能实现,不能实例化抽象类python原生支持的,不支持多继承,抽象类中方法可以有一些代码实现。不能实例化。class Wechat: def pay(self,money): print('微信支付')class Alipay(): def pay(self,money): ...
2019-04-08 22:09:01 194
原创 21 @property、静态方法和类方法(反射)
staticmathod 静态的方法当一个方法的操作只涉及静态属性的时候,应该使用@classmethod来装饰这个方法。class Goods: __discount = 0.8 def __init__(self,name,price): self.name = name self.__price = price @property...
2019-04-08 22:08:26 254
原创 20 面向对象三大特性
继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,弗雷又可以称为基类或者超类,新建的类称为派生类或子类。继承分为单继承和多继承class A: #父类(基类或者超类) passclass B: #父类 passclass A_son(A,B): #子类(派生类) pass一个类可以被多个类继承,且可以继承多个父类(仅仅在pyt...
2019-04-08 19:33:32 146
原创 18 类命名空间、对象命名空间和实例的命名空间 (组合)
类中的静态变量可以被对象和类调用,但是对于不可变的数据类型来说,类变量最好使用类名操作,这样静态变量改变就会使共享的。对于可变数据类型来说,对象名的修改是共享的,重新赋值是独立的,例如下面的两个代码class Person: money = 0 def work(self): Person.money += 1000mother = Person()fath...
2019-04-04 19:51:44 316
原创 17 初识面向对象
面向对象精简代码,方便使用,方便修改。在为调用函数的时候,系统不会创建对象,只有在赋值之后,才会有一个对象生成。def Person(name, age, sex, hobby): person = { 'name': name, 'age': age, 'sex': sex, 'hobby': hobby } ...
2019-04-03 12:09:49 125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人