自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 Redis操作

RedisRedis默认16个库,编号是0-15,但是不是绝对的,它可以修改redis-cli -h host -n 1 ----- 连接第一个redis库命令keys * 查询所有的键set key value 创建 set name zhangsan(创建键为name,value为张三的数据)get key 查询 get name(查询key为name的数据)del key 删除 del name(删除key为name的数据)fl

2020-06-28 18:14:27 179

原创 MySQL基础

数据库类型关系型数据库:Relational Database Management System RDBMS所谓的关系型数据库RDBMS,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据核心元素:数据行(记录)数据列(字段)数据表(数据行的集合)数据库(数据表的集合)非关系型数据库:安装mysql数据库:1.打开虚拟机终端(小黑框)2.输入 sudo apt-get install mysql-server启动数据库sudo s

2020-06-28 18:13:40 229

原创 MySQL报错信息

报错代码报错原因ERROR 1052 (23000): Column ‘name’ in on clause is ambiguous错误1052 (23000):on子句中的“name”列有歧义ERROR 1054 (42S22): Unknown column ‘id’ in ‘having clause’错误1054 (42S22):“having子句”中的未知列“id(未找到ERROR 1055 (42000): Expression #2 of SELE...

2020-06-28 18:13:00 4661

原创 MongoDB基础操作

MongoDBMongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。MongoDB如何导入数据?wget http://labfile.oss.aliyuncs.com/

2020-06-28 18:12:03 152

原创 Linux运行Django

Python -m venv 名称 --》创建虚拟环境pip show 包名 查看pip的包路径查看Django安装目录: pip show django添加软连接:ln -s /usr/local/python3/lib/python3.7/site-packages/django/bin/django-admin.py /usr/local/bin运行 django-admin.py 。。。。注意:1、在主应用的init下写import pymysqlpymysql.ins

2020-06-28 18:09:30 1136

原创 Linux安装Gitbook

可以将markdown生成为html文件 gitbook serveGitBook是基于nodejs的,下载gitbook需要先下载nodejsNodejs下载下载gitbooknpm install -g gitbook-cli --registry=https://registry.npm.taobao.orgnpm install -g gitbook --registry=https://registry.npm.taobao.orggitbook -v 测试是否安装成功成功后

2020-06-28 18:08:40 788

原创 Supervisor

安装Supervisoryum install epel-releaseyum install -y supervisorsystemctl enable supervisord # 开机自启动systemctl start supervisord # 启动supervisord服务systemctl status supervisord # 查看supervisord服务状态ps -ef|grep supervisord # 查看是否存在supervisord进程报错:。。。 .sock n

2020-06-28 18:07:27 199

原创 Linux安装redis

注意:阿里云服务器需要打开实例–》安全组–》配置规则–》添加新的安全组,允许全部选择在Linux下安装redis,现在用centos7 进行安装1.安装gcc redis是c语言编写的​ yum install gcc-c++2.下载redis安装包,在root目录下执行​ wget http://download.redis.io/releases/redis-5.0.4.tar.gz3.解压redis安装包tar -zxvf redis-5.0.4.tar.gz4.进入

2020-06-28 18:07:12 135

原创 Linux安装python

Linux的软连接在**/usr/bin**路径下Linux配置软连接方法:ln -s 【目标地址】 【软连接地址+文件(/usr/bin/文件)】类似于windows创建快捷方式,会自动创建软连接文件pip show 包名 查看pip的包路径常见错误,建议安装python前先安装这些环境错误:ModuleNotFoundError: No module named ‘_ctypes’解决办法:yum install libffi-devel错误:zipimport.ZipImportEr

2020-06-28 18:06:53 519

原创 Linux安装Node.js

Nodejs1、yum install gcc-c++ 安装编译环境2、wget https://npm.taobao.org/mirrors/node/v11.0.0/node-v11.0.0.tar.gz 下载源码包3、tar -zxf node-v11.0.0.tar.gz 解压并进入​ cd node-v11.0.04、./configure && make 编译(时间较长:30min左右)5、make install

2020-06-28 18:06:30 216

原创 Linux基本命令

基本命令-r 表示递归xx 例如: cp -r 递归复制(包括子文件) rm -r 递归删除 等 若存在子文件,直接复制或删除必须加-r-f 参数强制删除adduser 用户名 创建新用户(需要root权限) adduser需要完善用户信息,useradd只创建用户,不完善信息(密码等)passwd 用户名 修改用户的密码(需要root权限)deluser 用户名 删除用户mv 移动ls 查看文件 ls -l 或 ll 查看用户的权限情况 ls -l

2020-06-28 18:06:02 1068

原创 Linux安装MongoDB

安装MongoDBtouch /etc/yum.repos.d/mongodb-org-4.2.repovim /etc/yum.repos.d/mongodb-org-4.2.repo添加如下内容:[mongodb-org-4.2]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/gpgcheck=1enabled=1gpgk

2020-06-28 18:05:51 167

原创 Linux安装Nginx

1.做 html文件gitbook 把markdown生成html文件2. 上传html文件推荐:使用支持sftp协议的工具上传 ssh2协议例如:pycharm、filezilla等3. 使用Nginx提供HTML浏览服务Nginx:可以当做HTTP服务器,提供HTML的传输服务修改配置文件vi /etc/nginx/nginx.conf建议将server 单独拿出来,然后加入include /etc/nginx/sites-avilable/*.conf; (配置.conf的路径)

2020-06-28 18:05:25 277

原创 Linux安装MySQL

一、建组1、建立一个mysql的组输入命令: groupadd mysql2、建立mysql用户,并放到mysql组输入命令:useradd -r -g mysql mysql3、给mysql用户设置密码输入命令:passwd mysql二、下载安装包wget https://downloads.mysql.com/archives/get/file/mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz 此处是8.0.17版本将安装包解压到/usr/lo

2020-06-28 18:02:29 3139

原创 上下文管理

拥有__enter__和__exit__ 属性的才可以被上下文管理a = open('a.txt','w')dir(a) # 此时a有__enter__ 和 __exit__ 属性,所以才可进行打开与关闭,即可进行下文管理with open('a.txt','w') as f: pass # 正确with open(1,'w') as f: # 错误,1不存在__enter__ 和 __exit__ pass...

2020-06-28 17:55:38 174

原创 基础

数据结构数据结构是计算机存储、组织数据的方式按照不同的角度,数据可分为逻辑结构和物理结构 其中逻辑结构是面向问题的, 而物理结构是面向计算机的, 它们的基本目标都是将数据及其逻辑关系存储到计算机内存中。物理结构顺序存储结构:把数据元素放在地址连续的存储单元中,数据间的逻辑关系和物理关系一致。如,数组。链式存储结构:数据元素的存储关系不能反映其逻辑关系。如,链表。逻辑结构集合结构:数据之间无联系线性结构:数据之间有联系树形结构:数据之间是树形联系图形结构:数据

2020-06-28 17:55:28 111

原创 反射

反射核心本质其实就是利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动!demo:random.randrange(10)module,cls = input('').split('/') # 输入为 random/randrange 参数均为字符串obj = _import_(module) # `_import_`为动态导入模块,根据输入的名称导入该模块func = getattr(obj,cls) # getattr

2020-06-28 17:55:10 109

原创 定时任务

定时任务一、time模块(阻塞)# 此方法有一个弊端,若在sleep期间过去了第30s,则不会提示from datetime import datetimeimport timedef timer(): while True: a = datetime.now().strftime("%S") if a == '30': # 每分钟的第30s执行 print('铃铃铃') print(datetime.

2020-06-28 17:54:52 3102

原创 datetime模块

时间与时间段相加:timedeltaa = datetime.timedelta(minutes=45) # 时间段为45分钟b = datetime.datetime.now() + a # timedelta(时间段),可以将目标时间加上时间段,算出时间结果print(b.strftime('%H:%M:%S')) # 结果时间时间与字符串相减,求得相隔时间段a = datetime.datetime.strptime('16:12:00','%H:%M:%S') # 将字符

2020-06-28 17:54:34 112

原创 Python与mongo交互

Python与mongo交互# 导入模块import pymongo# 连接MongoDB数据库conn = pymongo.MongoClient('localhost', 27017)# 建库db = conn.goods# 建集合table = db.snacks# 数据操作: 插入数据table.insert(dict)table.insert_one(dict)table.insert_many([dict1, dict2, dict3])# 数据操作: 查询数

2020-06-28 17:52:52 190

原创 python 与 mysql 交互

python 与 mysql 交互# 1.导包 import puymysql# 2.创建连接 conn = pymysql.connect(host='localhost',port=3306,database='数据库名',user='root',password='密码',charset='utf8')# 3.创建光标 cs1 = conn.cursor()# 4.执行mysql语句(先创建语句) mysql = '要执行的mysql语句,如: select * from 数据

2020-06-28 17:51:41 148

原创 Python与Redis的使用

Redis基础使用redis读写import redis# decode_responses 若不加,取出的值可能为bytes,而不是python的数据类型conn = redis.Redis(host='39.97.XXX',port=6379,decode_responses=True) conn.set('chinese','test') # 存value = conn.get('chinese') # 取print(value)redis连接池import redi

2020-06-28 17:49:25 201

原创 Django基础

Django命令版本号python -m django --version创建项目django-admin startproject mysite(项目名称)创建子项目(要进到项目中)python manage.py startapp user(子应用名称)启动项目python manage.py runserver 127.0.0.1:8005(ip:端口)可不写创建超级用户python manage.py createsuperusersetti

2020-06-28 17:46:51 304

原创 Django模板

Django添加前端配置文件方法Django中,用相对路径有时候会出错,所以最好用这种方法:{%load staticfiles%}<!DOCTYPEhtml>{%load staticfiles%}<html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src={%sta

2020-06-28 17:44:50 108

原创 Flask

Web框架什么是web:​ 协助开发者快速开发web应用程序的一套功能代码​ 开发者只需要按照框架约定要求,在指定位置写上自己的业务逻辑代码Web开发的优点:​ 避免重复​ 稳定性和可扩展性强​ 可以降低开发难度,提高开发效率常见的Web框架:​ Flask : 小型​ Django : 功能全面​ Tornado :专门写接口​ MVC:三个层面,Flask简介:Werkzeug工具箱编写的轻量型Web开发框架,本身相当于一个内核,几乎所有功能都需第三方扩展,没有默认数据

2020-06-28 17:42:42 241

原创 Celery

Celery 是一款基于 python 的异步任务处理框架,用以实现分布式任务队列Celery组件worker (任务执行者),用来执行具体任务,可在多台服务器部署实现扩展,项目中我们使用 python 进行开发broker (中间人),用来实现任务调度、worker 管理等功能;支持 RabbitMQ、Redis、Zookeeper 等中间件,项目中我们使用 redis,RabbitMQ较难配置,但是队列效果比Redis好。backend 用来存储任务结果,项目中我们使用 redisapplic

2020-06-28 17:41:39 251 1

原创 类和方法

Class类类在创建时会被执行# 此时 test 会被输出class Demo(object): print('test') # 就算不调用类依然会输出 def __init__(self): pass魔法方法_new_ 一般在实例化类时使用# __new__ 方法必须返回类的引用class Demo(object): def __new__(cls): .... return object.__new__(c

2020-06-28 17:32:55 166

原创 位运算符

虚拟环境第一种python3 -m venv myenv 此代码可生成虚拟环境,并拥有独立的pip包source myenv/bin/activate 激活虚拟环境deactivate 退出虚拟环境第二种安装:pip install virtualenvwrapper-win常用命令:mkvirtualenv envname(名称) # 创建虚拟环境并自动切换到该环境下workon envname(名称) # 切换到某虚拟环境下pip list

2020-06-28 17:27:29 163

原创 字符串操作

切片取值name = "abcdefghijklmn"index = name[2:] #输出第3个之后所有的,包括第3个index_1 = name[:2] #输出到第3个,不包括第3个index_2 = name[2:8] #输出从第3个(包括)开始到第9个(不包括)index_3 = name[2:-1] #输出从第3个(包括)开始到倒数第1个(不包括)index_4 = name[2:8:2] #输出从第3个(包括)开始到第9个(不包括),然后开始输出第二

2020-06-28 17:06:23 326 1

原创 python生成二维码

python生成二维码pip install qrcode简单调用import qrcode# 调用qrcode的make()方法传入url或者想要展示的内容img = qrcode.make('https://www.baidu.com')# 第一种写入with open('baidu.png', 'wb') as f: img.save(f)data = {'code': 'token111111111111111111', 'user': 'id123123', 'ispay

2020-06-28 17:02:53 293

原创 字符串转字典

三种方式1、json# 问题:转字典的字符串中{}里必须是",不能是'。否则会报错import jsona = {'name': 'xl', 'age': 12, 'car': {'type': '汽车', 'price': 10}, 'person': {'job': 'programmer', 'age': 3}}a = json.dumps(a) # 字典转jsona = json.loads(a) # json转字典({}中必须是")2、eval# 问题:虽然不存在单双引号

2020-06-28 17:01:28 283 1

原创 日志配置

日志的配置文件import osPROJECT_NAME = "monitor_demo" # 项目名称,以此作为日志文件夹名TOOLS_PROJECT_NAME = "monitor_tools" # 项目中的常用脚本,需要日志记录# NOTE: default level is DEBUGLOG_LEVEL = os.getenv('LOG_LEVEL', "DEBUG") # 日志级别,低于此级别不会别记录# NOTE: default handler is 'console,

2020-06-28 16:59:54 161

原创 BeautifulSoup

BeautifulSoupBeautifulSoup也是一个解析库BS解析数据是依赖解析器的, BS支持的解析器有html.parser, xml,xml, html5lib等 (lxml速度快,容错能力强)选择器分类1.节点选择器2.方法选择器3.CSS选择器:1.根据节点名及节点层次关系定位标签:标签选择器 & 层级选择器 soup.select('title') # 标签选择器 soup.select('div>ul>li') #单层级选择器

2020-06-28 16:54:39 1208

原创 构建UA池/代理IP

构建UA池# 实现存入ua池10个uafrom fake_useragent import UserAgentua_pool = []user_agent = UserAgent()for i in range(10): ua = useragent.Ie # ie浏览器 ua = useragent.Firefox # 火狐浏览器 ua = user_agent.Chrome # 谷歌浏览器 ua_pool.app

2020-06-28 16:53:52 356

原创 scrapy

基础1.scrapy安装与环境依赖# 1.在安装scrapy前需要安装好相应的依赖库, 再安装scrapy, 具体安装步骤如下: (1).安装lxml库: pip install lxml (2).安装wheel: pip install wheel (3).安装twisted: pip install twisted文件路径 (twisted需下载后本地安装,下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

2020-06-28 16:51:53 349

原创 Scrapy&Django

Scrapy & Django项目# 需求: 编写爬虫项目与Django项目详解和, 将爬取到的数据展示到前端页面上# 爬虫的编写:# spider编写:import scrapyfrom dl.items import DlItemclass PSpider(scrapy.Spider): name = 'p' # allowed_domains = ['www.baidu.com'] start_urls = ['https://www.kuaidaili

2020-06-28 16:49:04 326

原创 selenium

selenium介绍:selenium是一个web自动化测试用的框架. 程序员可以通过代码实现对浏览器的控制, 比如打开网页, 点 击网页中的元素, 实现鼠标滚动等操作目的:在爬取数据的过程中, 经常遇到动态数据加载, 一般动态数据加载有两种, 一种通过ajax请求加载数据, 另 一种通过js代码加载动态数据。 selenium可以模拟人操作真实浏览器, 获取加载完成的页面数据使用from selenium import webdriver browser = webdriver.Chrome('

2020-06-28 16:46:48 131

原创 xpath解析

xpath解析库数据解析的过程中使用过正则表达式, 但正则表达式想要进准匹配难度较高, 一旦正则表达式书写错误, 匹配的数据也会出错。网页由三部分组成: HTML, Css, JavaScript, HTML页面标签存在层级关系, 即DOM树, 在获取目 标数据时可以根据网页层次关系定位标签, 再获取标签的文本或属性原理1. 根据网页DOM树定位节点标签 2. 获取节点标签的正文文本或属性值安装 pip install lxml==4.3.3 目前用的4.3.3版本使用步

2020-06-28 16:45:42 344

原创 爬虫基础

爬虫概念爬虫又称网页蜘蛛或网络机器人 是模拟人操作客户端(浏览器、app)向服务器发起请求,抓取数据的自动化程序或脚本。 模拟:用爬虫程序伪装出人的行为, 避免被服务识别为爬虫程序 。 客户端:浏览器、app都可实现人与服务器之间的交互 自动化:爬取的数据往往量很大(百万、千万条),所以需要自动化获取爬虫语言PHP 并发能力差,多多进程多线程支持不好,数据量较大爬虫效率低C/C++ 效率高,但是学习成本高,对程序员要求高,市场需求少,目前还在研究层面Java 代码臃肿,

2020-06-28 16:44:27 840

原创 增量式与分布式

基于crawlSpider的全站数据爬取# 项目的创建scrapy startproject projectnamescrapy genspider -t crawl spidername www.baidu.com# crawlspider全站数据爬取:- CrawlSpider是一个爬虫类, 是scrapy.spider的子类, 功能比spider更强大.- CrawlSpider的机制: - 连接提取器: 可以根据指定的规则进行连接的提取 - 规则解析器: 更具指定的规则

2020-06-28 16:42:22 135

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除