自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (1)
  • 收藏
  • 关注

原创 四:flask:flask高级

目录一、threading.local(和flask没有关系)1.local为每个线程的数据开辟一个独立的空间,使得线程对自己空间中的数据进行操作(数据隔离)2. 获取线程的唯一标记3. 自定义类似local的函数—Local 为每个协程或者线程开辟独立空间二、flask上下文管理三、flask源码一)项目启动一、threading.local(和flask没有关系)1.local为每个线程的数据开辟一个独立的空间,使得线程对自己空间中的数据进行操作(数据隔离)import threadingfro

2020-12-08 21:57:03 257

原创 五:flask:源码解析

目录flask源码分析一)项目启动二)请求进来时三)执行视图函数时四)请求结束前整个请求上下文执行流程flask源码分析一)项目启动实例化Flask对象 app = Flask(__name__) 1.对app对象封装一些初始化的值 static_url_path static_folder templates_folder 2.添加静态文件的路由 self.add_url_rule( self.static_url_path + "/

2020-12-08 20:18:31 484

原创 drf系列博客汇总

本系列博客是从0到1的学习Django-restframework,记录自己的学习历程,方便回忆查询知识点,同时可以给正在学习drf框架的童鞋一点点帮助…drf【第一篇】:drf-入门规范drf【第二篇】:drf-序列化组件drf【第三篇】:drf-请求与相应drf【第四篇】:drf-视图组件drf【第五篇】:drf-路由组件drf【第六篇】:drf-认证权限频率drf【第七篇】:drf-过滤排序异常处理分页drf【第八篇】:drf-自动生成接口文档drf【第九篇】:drf-JWT认证

2020-12-04 16:14:10 292

原创 三:flask:路由 / 视图 / 模板 / 特殊装饰器

目录一、路由系统1. flask中路由注册的两种方式2. 路由加载的源码流程3. 动态路由4. 自定制正则路由匹配二、视图1. fbv2. cbv三、模板1. url_for的使用2. 定义全局模板四、特殊装饰器一、路由系统1. flask中路由注册的两种方式from flask import Blueprintapp = Flask(__name__)"""方式一:使用装饰器方式"""@app.route('/f1/')def f1(): return 'f1'@app.

2020-12-02 20:34:42 228

原创 二:flask:flask对象以及配置文件

目录一、flask对象二、flask配置文件1. settings和localsettings2. 类的配置文件一、flask对象app = Flask(__name__,static_folder="static",template_folder="templates",)"""flask对象源码"""def __init__( self, import_name, static_url_path=None, # 引入静态文件时,用什么,如果值为

2020-12-02 11:15:04 267

原创 python连接收据库

目录普通的数据库连接使用Python数据库连接池DBUtils普通的数据库连接import pymysql conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='1234',db='mydb') cursor = conn.cursor()result = cursor.execute('sql语句')conn.commit() cursor.close()conn.close()使用Pyt

2020-12-01 20:13:03 119

原创 一:flask:初识

目录一、django和flask的区别?(面试题)二、flask的快速使用1. 安装1.1 依赖wsgi Werkzeug2. flask快速开发3. 简单登录案例由上简单总结flask知识点三、蓝图面试题:django的app和flask的蓝图有什么区别?一、django和flask的区别?(面试题)django是个大而全的框架,flask是个轻量级的框架。django内部为我们提供了非常多的组件:orm / session / cookie / admin / form / modelsfor

2020-11-30 11:41:05 115

原创 Django配置404页面

目录一.settings配置二.url设置三.views中设置四.最后附一个404页面的模板。一.settings配置1.首先需要在settings中将DEBUG由原来的True改为FalseDEBUG = False2.需要设置ALLOWED_OSTS = ["*"]二.url设置三.views中设置def page_not_found(request,**kwargs): # 全局404处理函数 response = render_to_response('404.

2020-11-23 20:44:22 2053 1

原创 数据库学习之--Redis

目录一、nosql介绍二、Redis基础1)Redis简介2)Redis特性3)Redis 优势4)redis应用场景三、数据操作1)String保存获取删除2)键命令3)hash4)list5)set6)zest一、nosql介绍NoSQL:(not only sql),它的特点:不支持SQL语法存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景NoSQL中的

2020-11-20 18:31:22 75

原创 django项目--全文检索

目录全文检索框架以及搜索引擎的使用1. 安装与配置1) Python包的安装2) 在settings.py文件的配置。2. 创建引擎及索引1) 项目下创建`search_indexes.py`文件,并在此文件中创建引擎和索引(固定写法和用法)。2) 创建索引文件3) 生成索引文件3. 索引文件的使用1) 前端使用2) 路由配置3) 启动项目,点击搜索栏按钮4. 改变分词方式1) 安装jieba分词包2) 创建ChineseAnalyzer.py文件4) 更改whoosh_backend.py文件5) 重新生

2020-11-18 10:57:38 442

原创 九:drf-JWT认证

目录一、JWT认证1. 构成和工作原理JWT的构成1. header2. payload3. signature2. 本质原理jwt认证算法:签发与校验签发:根据登录请求提交来的 账号 + 密码 + 设备信息 签发 token校验:根据客户端带token的请求 反解出 user 对象drf项目的jwt认证开发流程(重点)二、 drf-jwt安装和简单使用安装简单使用三、一、JWT认证在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Js

2020-11-15 15:46:34 249

原创 八:drf-自动生成接口文档

目录自动生成接口文档1. 安装依赖2. 设置接口文档访问路径3. 文档描述说明的定义位置4. 访问接口文档网页两点说明:自动生成接口文档REST framework可以自动帮助我们生成接口文档。接口文档以网页的方式呈现。自动接口文档能生成的是继承自APIView及其子类的视图。1. 安装依赖REST framewrok生成接口文档需要coreapi库的支持。pip install coreapi2. 设置接口文档访问路径在总路由中添加接口文档路径。文档路由对应的视图配置为rest_fr

2020-11-14 17:04:35 173

原创 七:drf-过滤排序异常处理分页

目录一:过滤Filtering二:排序三:异常使用方式案例:处理关于数据库的异常四:分页一:过滤Filtering使用总结: 1. 安装-pip install django-filter 2. 注册-在APP中注册 3. 全局配,或者局部配 4. 视图类对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。pip install django-filter在配置文件中增加过滤后端的设置:INSTALLED_APPS = [ ..

2020-11-14 15:10:12 234

原创 六:drf-认证权限频率

目录一:认证1. 认证的实现一:认证1. 认证的实现认证如何实现?1.写一个类,继承BaseAuthentication,重写authenticate方法,认证的逻辑写在里面。认证通过,返回两个值,一个值最终给了Request对象的user;认证失败,抛出异常:APIexception或者AuthenticationFailed2.配置–全局使用,局部使用...

2020-11-12 17:11:58 258 1

原创 五:drf-路由组件

目录一:路由Routers1. 使用方法2. action的使用一:路由Routers对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。from rest_framework import routersREST framework提供了两个routerSimpleRouterDefaultRouter1. 使用方法views.py:from rest_framework.viewsets

2020-11-09 19:11:55 218

原创 四:drf-视图组件

目录一:视图二: 2个视图基类1. APIView2. GenericAPIView[通用视图类]1.提供的关于数据库查询的属性与方法2.提供的关于序列化器使用的属性与方法3.其他可以设置的属性4.代码示例3. 5个视图扩展类1)ListModelMixin2)CreateModelMixin3)RetrieveModelMixin4)UpdateModelMixin5)DestroyModelMixin4. GenericAPIView的七个视图子类三:视图集ViewSet一:视图Django RES

2020-11-09 10:20:43 430

原创 三:drf-请求与响应

目录一:Request1.常用属性1).data2).query_params二:Response1. 构造方法2. 常用属性一:RequestREST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。REST framework 提供了Parser解析器,在接收到请求后会自动根据Content-Type指明的请求数据类型(如JSON、表单等)将请求数据进行

2020-11-06 11:10:07 457

原创 二:drf-序列化组件

目录一:序列化器-Serializer二:序列化简单使用models.py:serializer.pyurls.pyviews.py三:序列化字段及参数序列化器常用字段介绍序列化字段参数序列化器通用参数介绍:四:反序列化4.1 数据校验4.1.1 validate_字段名 (局部钩子)4.1.2 validate (全局钩子)4.1.3 validators4.2一:序列化器-Serializer作用:序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串反序列化,把

2020-11-03 21:08:01 440 1

原创 ​ 一:drf --drf入门规范

目录一:web开发模式1.1 前后端不分离1.2 前后端分离二:API接口三:接口测试工具:Postman四:RESTful API规范restful十条规范1 数据的安全保障2 接口特征表现3 多数据版本共存4 (重点)数据即是资源,均使用名词(可复数)5 (重点)资源操作由请求方式决定(method)过滤,通过在url上传参的形式传递搜索条件7 响应状态码7.1 正常响应7.2 重定向响应7.3 客户端异常7.4 服务器异常8 错误处理,应返回错误信息,error当做key9 返回结果,针对不同操作,服

2020-11-02 12:33:40 887

原创 将网页侧边栏制成inclusion_tag

目录制作步骤详细文件`mytag.py``left_menu.html`将left_menu.html加载到需要填充的html页面制作步骤三步走: 1. 在应用下创建一个名字必须是 templatetags 的文件夹。 2. 在该文件夹下创建任意名字的 .py 文件。 eg:mytag.py 3. 在py文件下必须先写下面代码 from django import template register = template.Library()详

2020-10-31 11:49:43 165

原创 Auth认证模块

目录1. Auth模块是什么2. auth模块常用方法模块导入authenticate()方法login(HttpRequest, user)is_authenticated()装饰器login_requierd()check_password(password)set_password(password)logout(request)create_user()create_superuser()3. 扩展默认的auth_user表1. Auth模块是什么Auth模块是Django自带的用户认证模块:

2020-10-28 14:17:01 772 1

原创 csrf跨站请求伪造

全称Cross Site Request Forgery,跨站请求伪造某些恶意网站上包含链接、表单按钮或者JavaScript,它们会利用登录过的用户在浏览器中的认证信息试图在你的网站上完成某些操作,这就是跨站攻击防csrf的使用在django的模板中,提供了防止跨站攻击的方法,使用步骤如下:step1:在settings.py中启用’django.middleware.csrf.CsrfViewMiddleware’中间件,此项在创建项目时,默认被启用step2:在csrf1.html中添.

2020-10-27 13:17:17 84

原创 Django中间件

目录前戏中间件什么是中间件?django中自带七个中间件django生命周期图自定义中间件如何自定义中间件`process_request`方法总结`process_response`方法总结process_request 和 process_response 方法测试`process_view`方法`process_exception`方法`process_template_response`方法中间件的执行流程前戏学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面。我们

2020-10-24 17:58:42 155

原创 cookie和session

目录Cookie什么是Cookie?表现形式Django中操作Cookie设置Cookie获取Cookie删除CookieSession什么是Session?表现形式特别注意Django中Session相关方法django中的session配置Cookie什么是Cookie?Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息。简单来说 ---- 就是保存在浏览器端的键值对表现形式一般都是 k:v

2020-10-23 22:05:43 97

原创 Django Form表单组件

Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。Django form组件就实现了上面所述的功能。总结一下,其实form组件的主要功能如下:生成页面可用的HTML标签对用户提交的数据进行校验保留上次输入内容普通方式手写注册功能.

2020-10-23 10:21:13 467

原创 自定义分页器

自定义分页器代码封装class Pagination(object): def __init__(self, current_page, all_count, base_url, query_params, per_page=30, pager_page_count=11): """ 分页初始化 :param current_page: 当前页码 :param per_page: 每页显示数据条数 :param all

2020-10-22 19:26:47 95

原创 数据库查询优化

ORM语句的特点惰性查询:如果仅仅是编写了orm语句,后面没用到该语句查询出来的参数,那么orm会自动识别,不发起sql查询语句。(只有使用了才会去数据库查询数据)1: only和defer # res = models.Book.objects.all() res = models.Book.objects.only('title') # print(res.title) # 不会走数据库 print(res.authors) # 走数据库 """ 查询only括号里面的字段不会重新

2020-10-21 10:31:47 75

原创 python编写脚本测试文件

测试环境的准备去manage.py中拷贝前四行有效代码示例代码:import osif __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mytestproject.settings") import django django.setup() """ 测试代码的编写 例如: """ from app01 import models models.U

2020-10-19 19:37:19 1238

原创 Python爬虫学习(八)----scrapy框架

目录一:scrapy简介scrapy初识什么是框架?如何学习框架?什么是scrapy?scrapy基本使用环境安装scrapy使用流程:爬虫文件剖析scrapy基于xpath数据解析操作二:scrapy的数据持久化存储方式一:基于终端指令的持久化存储方式二:基于管道的持久化存储操作编码流程案例实战面试题:如果最终需要将爬取到的数据值一份存储到磁盘文件,一份存储到数据库中,则应该如何操作scrapy?三:scrapy基于Spider类的全站数据爬取基于scrapy如何进行全站数据爬取呢?案例实战:爬取校花网全

2020-10-02 09:12:57 314

原创 Python爬虫学习(七)----动态加载数据处理

目录selenium模块的基本使用简介selenium和爬虫之间的关联selenium使用流程环境安装下载浏览器驱动程序(比如谷歌浏览器)实例化一个浏览器对象编写基于浏览器自动化的操作代码selenium处理iframe实例代码案例实战无头浏览器 + 反检测谷歌无头浏览器selenium规避被检测识别基于selenium实现12306登录12306模拟登录编码流程selenium模块的基本使用简介selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决 requests 无法直接执行 J

2020-09-25 18:01:21 726

原创 Python爬虫学习(五)----requests模块高级

目录模拟登陆引入通过案例分析需求:对人人网进行模拟登录模拟登陆引入有时候,相关的需求会让我们去爬取基于某些用户的相关用户信息,例如爬取张三人人网账户中的个人身份信息、好友账号信息等。那么这个时候,我们就需要对当前用户进行登录操作,登录成功后爬取其用户的相关用户信息。通过案例分析需求:对人人网进行模拟登录**分析:- 点击登录后会发送一个post请求- post请求会携带登录之前录入的登录信息(用户名、密码、验证码....)...

2020-09-20 12:58:21 200

原创 Python爬虫学习(四)----验证码

目录什么是验证码?识别验证码的操作第三方打码平台打码平台一般使用流程(以超级鹰为例)使用打码平台识别验证码流程案例实战什么是验证码?验证码是一种区分用户是计算机还是人的公共全自动程序。验证码可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。验证码是一种反爬机制。识别验证码的操作肉眼识别。第三方自动识别第三方打码平台有很多,例如超级鹰、雯雯打码等

2020-09-19 10:44:16 351

原创 Python爬虫学习(三)----数据解析

目录引入数据解析原理概述数据解析分类方式一:正则表达式方式二:bs4引入聚焦爬虫:爬取页面中指定的页面内容编码流程:1、指定url2、发起请求3、获取响应数据4、数据解析5、持久化存储数据解析原理概述解析的局部的文本内容都会在标签或者标签对应的属性中进行存储。1.进行制定标签的定位2.标签或者标签对应的属性中存储的数据值进行提取(解析)数据解析分类正则表达式bs4解析xpath解析(***)方式一:正则表达式爬取图片import requests

2020-09-18 21:30:23 450

原创 python爬虫中使用lxml解析本地HTML文件报错lxml.etree.XMLSyntaxError: Opening and ending tag mismatch.....

问题描述使用lxml.etree.parse()解析html文件,该方法默认使用的是“XML”解析器,所以如果碰到不规范的html文件时就会解析错误,报错代码如下:lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 4 and column 问题解决自己创建html解析器,增加parser参数from lxml import etreeparser = etree.HTMLParser(encoding=

2020-09-16 21:00:40 4446 7

原创 Python爬虫学习(二)----requests模块基础

目录引入什么是requests?如何使用requests?环境安装使用流程第一个爬虫程序requests案例实战1.基于requests模块的get请求2.基于requests模块的post请求3.基于requests模块ajax的get请求4.基于requests模块ajax的post请求5. 综合实战引入在python实现的网络爬虫中,用于网络请求发送的模块有两种,第一种为urllib模块,第二种为requests模块。urllib模块是一种比较古老的模块,在使用的过程中较为繁琐和不便。当reque

2020-09-09 16:36:37 444

原创 Python爬虫学习(一)----基本介绍

目录什么是爬虫?爬虫分类反爬机制反反爬策略robots协议http & https 协议1. http协议2. https协议什么是爬虫?爬虫:通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。爬虫分类通用爬虫:通用爬虫是搜索引擎(Baidu、Google、Yahoo等)“抓取系统”的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。 简单来讲就是尽可能的;把互联网上的所有的网页下载下来,放到本地服务器里形成备分,在对这些网页做相关处理(提取

2020-09-02 11:29:18 139

原创 解决nginx访问问题connect() to 127.0.0.1:8000 failed (25: Permission denied) while connecting to upstream,.

问题描述搭建好项目之后,用nginx进行代理,进行日常配置之后,报502错误,查找nginx的error.log日志,发现connect() to 127.0.0.1:8000 failed (25: Permission denied) while connecting to upstream…,有这个错误。网上查阅得知是selinux没有关闭。问题解决关闭selinux[root@wmy ~]# getenforceEnforcing(account) [root@wmy ~]# seten

2020-08-29 21:43:06 798 1

原创 Django项目部署

目录一:Django + uwsgi 部署项目图示步骤使用 `uwsgi.ini ` 配置文件启动二:Django + uwsgi + nginx 部署项目步骤一:uwsgi步骤二:nginx三:Django + uwsgi + nginx 分布式部署单服务器模式【伪分布式】多服务器模式【分布式集群】一:Django + uwsgi 部署项目图示步骤使用 uwsgi.ini 配置文件启动项目文件下创建 uwsgi.ini 配置文件[uwsgi]#直接做web服务器使用http=127

2020-08-29 21:34:49 564

原创 Django的生命周期

第一步:浏览器发起请求第二步:WSGI创建socket服务端,接收请求(Httprequest)第三步:中间件处理请求第四步:url路由,根据当前请求的URL找到视图函数第五步:view视图,进行业务处理(ORM处理数据,从数据库取到数据返回给view视图;view视图将数据渲染到template模板;将数据返回)第六步:中间件处理响应第七步:WSGI返回响应(HttpResponse)第八步:浏览器渲染...

2020-07-16 10:36:31 180

原创 谈谈对Python中GIL的理解

GIL全称Global Interpreter Lock,中文是全局解释器锁。GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。Python完全可以不依赖于GIL。一个进程,python只有一个GIL,运行python时,就要拿到这个锁才能执行,在遇到I/O 操作时会释放这把锁。GIL是一把全局排他锁,毫无疑问全局锁的存在会对多线程的效率有不小影响。甚至就几乎等于Python是个单线程的程序。GIL的目的是确保每个进程中只有一个线程运行...

2020-07-15 22:18:56 344

算术表达式求值

数据结构课程设计-算术表达式求值,利用栈的知识,是一个比较简单的方法

2018-05-16

空空如也

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

TA关注的人

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