
python
SpringBears
这个作者很懒,什么都没留下…
展开
-
更新了sqlite3之后仍然报错SQLite 3.8.3 or later is required (found 3.7.17)
跟着步骤更新了sqlite3,依然报错SQLite 3.8.3 or later is required (found 3.7.17)下面是经过搜索得到了一个有趣的解决方案“我终于理解为什么毕达哥拉斯会把希帕索斯扔进爱琴海里了, 解决问题的最好方法果然是消灭提出问题的人,我把check_sqlite_version的那个函数pass掉,软件就能正常运行了。”File "/usr/local/lib64/python3.6/site-packages/django/db/backends/s..原创 2020-06-20 18:30:50 · 2937 阅读 · 5 评论 -
post 变成option 请求的三种原因以及解决办法
1.Http Options Method简而言之,OPTIONS请求方法的主要用途有两个:获取服务器支持的HTTP请求方法; 用来检查服务器的性能。2.CORS(跨域资源共享)CORS是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。前端客户端使用XmlHttpRequest发起Ajax请求,当前绝大部分浏览器已经支持CO...原创 2020-06-20 16:22:24 · 18787 阅读 · 2 评论 -
linux部署django遇到的问题
在虚拟机中的linux上运行了Django项目,虚拟机中可以访问,但外部主机无法访问(连接超时),但主机能ping同虚拟机,虚拟机也能ping通主机需检查三个地方:(后面发现虚拟机的ip地址存在改变的情况,可能是由于主机网络是通过wifi连接的,所以地址经常变,虚拟机ip地址变更后,未改变下面的第二步的设置,主机依旧可以访问虚拟机的django网站,所以第二步并不是必须的步骤)1.运行Django的命令,要写成:python3 manage.py runserver 0.0.0.0:8000 ,重.原创 2020-06-20 15:24:02 · 410 阅读 · 0 评论 -
内存、顺序表、链表
内存计算机的作用 用来存储和运算二进制的数据 问题:计算机如何计算1+2? 将1和2的二进制类型的数据加载到计算机的内存中,然后使用寄存器进行数值的预算。 变量的概念 变量就是某一块内存 内存空间是有两个默认的属性: 内存空间的大小 bit(位):一个bit大小的内存空间只能存放一位二进制的数 byte(字节):8bit kb:1024byte 内存空间的地址 使用一个十六进制的数值表示 作用:让cup寻址 形象化原创 2020-06-17 18:44:15 · 267 阅读 · 0 评论 -
用python实现栈和队列
栈:class Stack(): def __init__(self): self.items = [] def push(self,item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return len(self.items) - 1 def isEmpty(self):原创 2020-06-17 18:33:06 · 280 阅读 · 0 评论 -
用python实现基本的排序
冒泡排序def sort(alist): for j in range(len(alist)-1): for i in range(len(alist)-1-j): if alist[i] > alist[i+1]: alist[i], alist[i+1] = alist[i+1], alist[i] return alist选择排序def sort(alist): max_inde原创 2020-06-17 17:05:24 · 177 阅读 · 0 评论 -
查找算法之二分查找
def find(alist, item): find = False first = 0 last = len(alist) - 1 while first <= last: mid_index = (first + last) // 2 if alist[mid_index] < item: first = mid_index + 1 elif alist[mid_index] .原创 2020-06-16 18:05:28 · 174 阅读 · 0 评论 -
用python实现排序二叉树(中序)
class SortTree(): def __init__(self): self.root = None def add(self, item): node = Node(item) cur = self.root if cur == None: self.root = node return while cur: if i.原创 2020-06-16 14:32:08 · 514 阅读 · 0 评论 -
用python实现一个二叉树结构,并实现前后后序遍历
class Node(): def __init__(self, item): self.item = item self.left = None self.right = Noneclass Tree(): def __init__(self): self.root = None def addNode(self, item): node = Node(item) if.原创 2020-06-16 12:18:45 · 283 阅读 · 0 评论 -
python 装饰器和中间件的联系和区别
一、 定义1.装饰器是Python的一种语法应用,利用闭包的原理去更改一个函数的功能,即让一个函数执行之前先到另外一个函数中执行其他需求语句,在执行该函数。在开发项目中,通常使用装饰器来管理权限,登录等等,配上Python的 @ 语法糖,轻松实现代码的重用性和低耦合性。2.而Django中的中间件是利用面向切面的编程思想,对Django服务器访问过程中间进行干预。是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出 激活:添加到Djang...原创 2020-06-11 14:31:34 · 559 阅读 · 0 评论 -
Python的两个字典列表的交集
我有2个像dic的列表list1 = [{'count': 351, 'evt_datetime': datetime.datetime(2015, 10, 23, 8, 45), 'att_value': 'red'}, {'count': 332, 'evt_datetime': datetime.datetime(2015, 10, 23, 8, 45), 'att_value': 'red'}, {'count': 336, 'evt_datetime': da...原创 2020-06-03 18:27:11 · 1883 阅读 · 0 评论 -
单例模式有什么作用
https://blog.youkuaiyun.com/ljhljh8888/article/details/8017701原创 2020-06-01 16:34:52 · 737 阅读 · 0 评论 -
简单的面试题汇总
1.带参数的装饰器https://blog.youkuaiyun.com/e15273/article/details/786174982.单例模式https://www.cnblogs.com/huchong/p/8244279.html原创 2021-06-27 11:09:52 · 196 阅读 · 0 评论 -
使用普通爬虫和协程爬虫爬取汽车之家所有文章的基础数据
普通版本:from time import sleepfrom lxml import etreeimport requestsimport jsonimport randomimport timeheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'原创 2020-05-19 19:46:43 · 447 阅读 · 0 评论 -
mongodb和python结合的操作
# 开始使用PyMongo 操作MongoDB# 导入PyMongoimport jsonfrom pymongo import MongoClientMC = MongoClient("127.0.0.1",27017) # 创连接 创建MongoDB客户端db = MC["S22"] # 选择或创建数据库 (内存)player_info = { "name":"张三...原创 2020-04-29 18:02:21 · 210 阅读 · 0 评论 -
requests里面的.text和.content的区别
resp.text返回的是Unicode型的数据。resp.content返回的是bytes型也就是二进制的数据。也就是说,如果你想取文本,可以通过r.text。如果想取图片,文件,则可以通过r.content。(resp.json()返回的是json格式数据)# 例如下载并保存一张图片import requestsjpg_url = 'https://...原创 2020-04-29 10:03:27 · 387 阅读 · 0 评论 -
面向对象的散碎知识
OOP 面向对象反射# __call__方法# class Foo(object):# def __call__(self, *args, **kwargs):# return "i am call"### f = Foo() # f 是Foo的对象# print(f()) # f() 对象加括号执行当前对象下__call__ 函数# __setattr__ ,...原创 2020-04-28 17:24:25 · 180 阅读 · 0 评论 -
Flask的参数以及对app的配置
Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢?有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? 它能给我们带来怎么样的方便呢?首先展示一下:from flask import Flaskapp = Flask(__name__) # type:Flaskapp.config["DEBUG"] = True这句 app.conf...原创 2020-04-27 11:22:24 · 349 阅读 · 0 评论 -
Flask的路由系统相关知识
1. @app.route() 装饰器中的参数methods : 当前 url 地址,允许访问的请求方式@app.route("/info", methods=["GET", "POST"])def student_info(): stu_id = int(request.args["id"]) return f"Hello Old boy {stu_id}" # P...原创 2020-04-27 11:18:12 · 147 阅读 · 0 评论 -
python高级:闭包
由于闭包这个概念比较难以理解,尤其是初学者来说,相对难以掌握,所以我们通过示例去理解学习闭包。给大家提个需求,然后用函数去实现:完成一个计算不断增加的系列值的平均值的需求。例如:整个历史中的某个商品的平均收盘价。什么叫平局收盘价呢?就是从这个商品一出现开始,每天记录当天价格,然后计算他的平均值:平均值要考虑直至目前为止所有的价格。比如大众推出了一款新车:小白轿车。第一天价格为:10...原创 2020-04-26 15:11:30 · 281 阅读 · 0 评论 -
scrapy中专门用于二进制和bytes类型的数据下载的管道(下载图片)
img.py# -*- coding: utf-8 -*-import scrapyfrom imgPro.items import ImgproItemclass ImgSpider(scrapy.Spider): name = 'img' # allowed_domains = ['www.xxx.com'] start_urls = ['http://s...原创 2020-04-22 09:57:21 · 986 阅读 · 0 评论 -
scrapy与selenium结合爬取网易新闻
# -*- coding: utf-8 -*-import scrapyfrom selenium import webdriverfrom wangyiPeo.items import WangyipeoItemclass WangyiSpider(scrapy.Spider): name = 'wangyi' # allowed_domains = ['www.xxx...原创 2020-04-21 20:31:08 · 379 阅读 · 2 评论 -
scrapy的爬虫中间件和下载中间件
- scrapy的中间件 - 爬虫中间件 - 下载中间件(***):处于引擎和下载器之间 - 作用:批量拦截所有的请求和响应 - 为什么拦截请求 - 篡改请求的头信息(UA伪装) - 修改请求对应的ip(代理) - 为什么拦截响应 - 篡改响应数据,篡改响应对象...原创 2020-04-21 19:57:17 · 847 阅读 · 0 评论 -
scrapy通过手动请求传参来实现全站深度爬取
- 基于Spider父类进行全站数据的爬取 - 全站数据的爬取:将所有页码对应的页面数据进行爬取 - 手动请求的发送(get): yield scrapy.Request(url,callback) - 对yield的总结: - 向管道提交item的时候:yield item - 手动请求发送:yield scrapy.Req...原创 2020-04-21 18:07:50 · 404 阅读 · 0 评论 -
scrapy五大核心组件
- 基于Spider父类进行全站数据的爬取 - 全站数据的爬取:将所有页码对应的页面数据进行爬取 - 手动请求的发送(get): yield scrapy.Request(url,callback) - 对yield的总结: - 向管道提交item的时候:yield item - 手动请求发送:yield scrapy.Req...原创 2020-04-21 17:07:27 · 2480 阅读 · 1 评论 -
scrapy框架的基本使用
什么是框架? - 就是一个具有很强通用性且集成了很多功能的项目模板(可以被应用在各种需求中)- scrapy集成好的功能: - 高性能的数据解析操作(xpath) - 高性能的数据下载 - 高性能的持久化存储 - 中间件 - 全栈数据爬取操作 - 分布式:redis - 请求传参的机制(深度爬取) - scrapy中合理的...原创 2020-04-21 10:11:58 · 219 阅读 · 0 评论 -
selenium设置了启动配置,但是window.navigator.webdriver的结果依然为true
selenium做爬虫能解决很多反爬问题,但是selenium也有很多特征可以被识别,比如用selenium驱动浏览器后window.navigator.webdriver值是true,而正常运行浏览器该值是未定义的(undefined),如下:网上的各种文章往往告诉大家把selenium做一下启动配置即可,如下:option.add_experimental_option("excl...原创 2020-04-18 12:37:14 · 3032 阅读 · 3 评论 -
用selenium基本知识和流程
- cookie的处理 - 手动处理 - cookie从抓包工具中捕获封装到headers中 - 自动处理 - session对象。- 代理 - 代理服务器 - 进行请求转发 - 代理ip:port作用到get、post方法的proxies = {'http':'ip:port'}中 -...原创 2020-04-18 11:17:24 · 251 阅读 · 0 评论 -
爬虫.多线程爬虫 和 单线程+多任务异步协程
协程 在函数(特殊的函数)定义的时候,如果使用了async修饰的话,则该函数调用后会返回一个协程对象,并且函数内部的实现语句不会立即执行 任务对象 任务对象就是对协程对象的进一步封装。任务对象==高级的协程对象==特殊的函数 任务对象时必须要注册到事件循环对象中 给任务对象绑定回调:爬虫的数据解析中 事件循环 把事件循环当做是一个循环的容器,容器中必须存放任务对象 当...原创 2020-04-17 15:17:35 · 227 阅读 · 0 评论 -
Django 权限分配、权限组件的迁移
一、权限分配 需求:为用户分配角色,为角色分配权限,如下图效果:1、视图代码:from django.shortcuts import renderfrom django.http import JsonResponsefrom rbac.models import User, Role, Permissiondef distribute_permissions(r...原创 2020-01-15 14:43:29 · 327 阅读 · 0 评论