07 2020 档案
摘要:知识点:join()函数的用法 语法: 'sep'.join(seq) 参数说明sep:分隔符。可以为空seq:要连接的元素序列、字符串、元组、字典上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串 返回值:返回一个以分隔符sep连接各个元素后生成的字符串 示例: from r
阅读全文
摘要:安装包 如果安装出错比如超时,我们可以点击这个网站下载相关包进行安装 我们还可以使用国内豆瓣源进行相关包的安装,这样安装速度比较快,用法: pip install -i https://pypi.douban.com/simple pillow
阅读全文
摘要:一、安装mysql 1、安装mysql sudo apt-get install mysql-server 此外还能安装mysql-workbench sudo apt-get install mysql-workbench 2、安装之后查看默认的用户名和密码 sudo cat /etc/mysql
阅读全文
摘要:海燕 hashlib提供了常见的摘要算法,如md5和sha1等等。那么什么是摘要算法呢?摘要算法又称为哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。注意:摘要算法不是一个解密算法。(摘要算法,检测一个字符串是否发生了变化)应涂:1.做文
阅读全文
摘要:海燕 字符组 字符 量词 .^$ *+?{} 贪婪匹配 字符集 分组()与或|[^]: (1)^[1-9]\d{13,16}[0-9x]$ #^以数字0-9开始, \d{13,16}重复13次到16次 $结束标志 上面的表达式可以匹配一个正确的身份证号码 (2)^[1-9]\d{14}(\d{2}[
阅读全文
摘要:海燕 一、time模块 import time # 时间分为三种形式 #1、时间戳 print(time.time()) start_time=time.time() time.sleep(3) stop_time=time.time() print(stop_time-start_time) ''
阅读全文
摘要:一、序列化与反序列化 import json dic={'k1':'v1','k2':'v2','k3':'v3'} print(type(dic)) # 序列化:内存中的数据结构 》转成一种中间格式(字符串) 》存到文件中 #dumps str_dic = json.dumps(dic) #将字典
阅读全文
摘要:示例: #1、列表生成式 l=[] for i in range(6): l.append('egg%s' %i) print(l) ''' ['egg0', 'egg1', 'egg2', 'egg3', 'egg4', 'egg5'] ''' l=['egg%s' %i for i in ran
阅读全文
摘要:一、三元表达式 应用于: 1、条件成立返回 一个值 2、条件不成立返回 一个值 示例: x=12 y=11 res=x if x > y else y print(res) ''' 12 ''' def max2(x,y): return x if x > y else y print(max2(1
阅读全文
摘要:一、迭代器 1、什么是迭代?迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来 2、要想了解迭代器到底是什么?必须先了解一个概念,即什么是可迭代的对象?可迭代的对象:在python中,但凡内置有__iter__方法的对象,都是可迭代的对象字符串,列表,元组,集合,字典都是可迭代的 #以下都是
阅读全文
摘要:一、 闭包函数 #闭:指的是定义在函数内部的函数 #!!!作用域关系 在函数定义阶段就规定死了,与调用位置无关 def outter(): x=2 def inner(): x=1 print('from inner',x) return inner f=outter() #f=inner prin
阅读全文
摘要:一、dupefilter去重 1、编写类 dupefilters.py from scrapy.dupefilter import BaseDupeFilter from scrapy.utils.request import request_fingerprint #自定义去重规则 class X
阅读全文
摘要:注意:pipeline是所有爬虫公用的,如果想要给某个爬虫定制需要使用spider参数自己进行处理。 流程: 1、先写pipeline类,默认会生成 #pipelines.py class XXXPipeline(object): def process_item(self, item, spide
阅读全文
摘要:wusir Twisted下载 Twisted安装不成功解决办法:把Twisted-17.1.0-cp36-cp36m-win_amd64.whl改为Twisted-17.1.0-py36-none-any.whl然后再进行安装。 Scrapy是一个大而全的爬虫组件; Scrapy是一个为了爬取网站
阅读全文
摘要:发送数据格式与对应接收方法 方式一: request.post( url='xx', data={'k1':'v1,'k2':'v2'} ) #数据: POST / http1.1\r\nContent-type:urlencode-form.......\r\n\r\nk1=v1&k2=v2 re
阅读全文
摘要:一、轮询 前端通过定时器每隔多少秒钟发送一次请求。 投票示例: app.py from flask import Flask,render_template,request,jsonify app = Flask(__name__) USERS = { '1':{'name':'贝贝','count
阅读全文
摘要:wusir requests模块 import requests """ # 1. 方法 requests.get requests.post requests.put requests.delete ... requests.request(method='POST') """ # 2. 参数 "
阅读全文
摘要:一、flask-sqlalchemy a. 下载安装 pip3 install flask-sqlalchemy b. chun.__init__.py 导入并实例化SQLAlchemy from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy(
阅读全文
摘要:wusir 一、介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 pip3 install sqlalchemy SQLAlchemy本身
阅读全文
摘要:- __mro__ - 应用:wtforms中meta使用(meta作用定制csrf token) 示例 from flask import Flask,request,render_template,session,current_app,g,redirect from wtforms impor
阅读全文
摘要:-对象为什么可以被for循环? 答:变为可迭代对象。 class Foo(object): # def __iter__(self): # return iter([11,22,33]) def __iter__(self): yield 1 yield 2 yield 3 obj = Foo()
阅读全文
摘要:wusir WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。 两大作用: - 生成HTML标签 - form表单验证 安装: pip3 install wtforms 用户登录注册示例 1. 用户登录 当用户登录时候,需要对用户提交的用户名和密码进行多种格式校验
阅读全文
摘要:DBUtils是Python的一个用于实现数据库连接池的模块。 pip3 install DBUtils 此连接池有两种连接模式: 模式一:为每个线程创建一个数据库连接,当前线程中如果进行多次数据库操作时永远使用同一个连接。线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供自己线
阅读全文
摘要:链接 #(1)__init__:初始化 #(2)__str__:在打印时改变对象的字符串显示,在打印类的时候会调用此方法,返回的是一个字符串 #(3)__repr__ #(4)__new__:创建对象。执行__init__之前执行__new__方法,在单例/rest framework序列化中使用过
阅读全文
摘要:请求上下文管理流程: - 请求到来之后wsgi会触发__call__方法,由__call__方法再次调用wsgi_app方法 - 在wsgi_app方法中: - 首先将 请求相关+空session 封装到一个RequestContext对象中,即:ctx。 - 将ctx交给LocalStack对象,
阅读全文
摘要:示例 #flask源码中Local对象 import functools try: from greenlet import getcurrent as get_ident except: from threading import get_ident #作用:为每个线程开辟空间 class Loc
阅读全文
摘要:示例 # by luffycity.com class Stack(object): def __init__(self): self.data = [] def push(self,val): self.data.append(val) def pop(self): return self.dat
阅读全文
摘要:示例 ''' class Foo(object): def __init__(self): self.storage = {} #上面代码想在对象中设置一个storage = {},但是上面语法执行完之后还没有进行创建,因为它要执行__setattr__方法进行创建, #但执行上面代码会触发类中__
阅读全文
摘要:示例 class Base(object): def func(self): print('Base.func') class Foo(Base): def func(self): # 方式一:根据mro的顺序执行方法 # super(Foo,self).func() # 方式二:主动执行Base类
阅读全文
摘要:偏函数: 偏函数是2.5版本以后引进来的东西。属于函数式编程的一部分,使用偏函数可以通过有效地“冻结”那些预先确定的参数,来缓存函数参数,然后在运行时,当获得需要的剩余参数后,可以将他们解冻,传递到最终的参数中,从而使用最终确定的所有参数去调用函数。 示例 import functools def
阅读全文
摘要:作用:为每个线程创建一个独立的空间,使得线程对自己的空间中的数据进行操作(数据隔离)。 import threading from threading import local import time obj = local() def task(i): obj.xxxxx = i time.sle
阅读全文
摘要:链接 wusir 海燕 为开发者提供目录结构 之前我们已经通过代码了解了一些Flask基本的用法,现在出现一个问题,我们要做的功能越来越多,路由是不是都要放在启动类中呢?例如我们在不同的文件都定义了一些路由,如果想要访问他们,是不是要开启很多个不同的服务呢? Flask中提供了蓝图,专门用作Flas
阅读全文
摘要:链接 app.py # session执行流程源码初探 from flask import Flask # 1. 实例化Flask对象 app = Flask(__name__) # 2. 设置路由 """ self.url_map=Map() url.map是一个对象,里面可以看作是一个列表或者字
阅读全文
摘要:链接 知识点: - 给你一个路径 “settings.Foo”,找到类并获取去其中的大写的静态字段。 settings.py class Foo: DEBUG = True TEST = True xx.py import importlib path = "settings.Foo" p,c =
阅读全文
摘要:链接 mysql是一个软件,帮助开发者对一台机器的硬盘进行操作。 redis是一个软件,帮助开发者对一台机器的内存进行操作。 特点: a. 持久化 --AOF、RDB b. 单进程、单线程 c. 5大数据类型 redis={ k1:'123', 字符串 k2:[1,2,3,4,4,2,1], 列表
阅读全文
摘要:链接 # 1. 装饰器 import functools def auth(func): # @functools.wraps(func) 加上这个后print(index.__name__)打印的结果是index, 但本质上执行的还是inner函数,把原函数的源信息封装到闭包函数里了 # 可避免e
阅读全文