自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python day93

python day93动作链和切换frame(了解)# 切换framedriver.switch_to.frame('id')#动作链ActionChains(driver).drag_and_drop(sourse,target).perform()ActionChains(driver).drag_and_drop_by_offset(sourse,10,0).perform()# 鼠标点住,移动,松开鼠标ActionChains(driver).click_and_hold(sou

2021-05-25 00:07:08 161 1

原创 python day92

python day92代理池搭建##### 1 下载git clone git@github.com:jhao104/proxy_pool.git ##### 2 安装依赖pip install -r requirements.txt##### 3 修改配置文件 setting.pyDB_CONN = 'redis://127.0.0.1:8888/0'##### 4 启动爬虫,启动服务# 启动调度程序python proxyPool.py schedule# 启动web

2021-05-21 23:30:27 233

原创 python day91

python day91requests高级用法1 ssl携带证书(这种网站极少见)import requestsrespone=requests.get('https://www.12306.cn',verify=False) #不验证证书,报警告,返回200print(respone.status_code)import requestsrespone=requests.get('https://www.12306.cn', cert=('/p

2021-05-21 23:14:45 330

原创 python day90

python day90爬虫基本原理爬虫流程-(Request,selenium)使用请求库请求数据(http请求),网页,app--》很多反扒-(bs4,lxml)html格式解析,json格式---》数据清洗 ----》有反扒-入库(mysql,redis,mongodb,文件,excel)爬虫协议:https://www.cnblogs.com/robots.txt百度,谷歌,搜索引起都是爬虫-百度一刻不停的取互联网上爬取页面----》存到自己库中-使用百度搜索---》百度库中

2021-05-20 00:21:48 143

原创 python day89

python day89支付接口视图类class PayView(GenericViewSet, CreateModelMixin): # class PayView(ViewSetMixin,CreateAPIView): # 认证类,权限类 authentication_classes = [JSONWebTokenAuthentication] permission_classes = [IsAuthenticated,] queryset = Order

2021-05-19 01:22:02 121

原创 python day88

python day88课程列表前端<template> <div class="course"> <Header></Header> <div class="main"> <!-- 筛选条件 --> <div class="condition"> <ul class="cate-list"&gt

2021-05-18 00:16:01 88

原创 python day86

python day86redis的hash操作from redis import Redisconn = Redis()1 hset(name, key, value)conn.hset('hash_test','name','zhangsan')# name对应的hash中设置一个键值对(不存在,则创建;否则,修改)2 hmset(name, mapping)conn.hmset('hash_test1',{'name':'zhangsan','age':18})3 hget

2021-05-13 00:05:46 68

原创 python day85

python day85手机号登录接口views.py @action(methods=['POST'], detail=False) def login_phone(self, request, *args, **kwargs): # 序列化类 ser = UserPhoneModelSerializer(data=request.data) ser.is_valid(raise_exception=True) toke

2021-05-12 23:46:55 204

原创 python day84

python day84vue后端地址配置1 在vue项目的assets/js/settings.js export default { BASE_URL:'http://127.0.0.1:8000/' }2 在main.js中导入 import settings from './assets/js/settings' Vue.prototype.$BASE_URL=settings.BASE_URL3 在组件中直接使用 this.$$BASE_URL

2021-05-11 23:53:48 69

原创 python day83

python day83git协同开发1 多人开发同一个项目2 现在你们git clone 项目,在你本地了3 可以改代码了,当你git push 的时候,提交不了4 项目管理员分配给你权限(gitee中管理–》仓库成员–》邀请成员)5 这一个项目有一个管理员,若干开发者6 重点:不能夸版本提交,只能先拉到最新,再提交7 如果某个开发者再s1.py 的第14行加入了东西,我也加入了,他先提交(它没问题)8 当我再拉取,出冲突了<<<<<<<

2021-05-09 23:55:59 89

原创 python day82

python day82git基本操作-初始化-提交暂存区-提交版本库-设置用户-设置全局(在家路径新建一个.gitconfig文件,把用户名邮箱写进去) >: git config --global user.name '用户名' >: git config --global user.email '用户邮箱' 注:在全局文件 C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用 -设置局部(在项目路径的.git文件夹下的c

2021-05-08 00:31:56 70

原创 python day81

python day81xss和cors和csrf区别xss,cors,csrf1 xss:跨站脚本攻击2 cors:跨域资源共享3 csrf:跨站请求伪造路飞后台配置1 封装日志对象1 django中使用日志2 日志的配置,复制到配置文件中真实项目上线后,日志文件打印级别不能过低,因为一次日志记录就是一次文件io操作LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': {

2021-05-07 20:34:56 72

原创 python day80

python day80项目生成requirements.txt1 项目的依赖,以后标准,每个项目都必须有,包括脚本项目2 直接手写requirements.txt,放在项目根路径下3 自动生成-pip3 freeze >requirements.txt后台本地化配置在配置文件中改LANGUAGE_CODE = ‘zh-hans’TIME_ZONE = ‘Asia/shanghai’USE_I18N = TrueUSE_L10N = TrueUSE_TZ = False数据

2021-05-07 01:19:03 82

原创 python day79

python day791 vue前端代理以及其他知识的1收尾1 es6 的导入导出2 pycharm跑vue项目3 vue项目中集成axios-npm install -S4 vue的前端代理解决跨域问题(偷数据)-项目根路径加入vue.config.jsmodule.exports = {devServer: {proxy: {‘/ajax’: {target: ‘https://m.maoyan.com/’,},}}}-组件中:this.$ajax.get(’/aj

2021-05-05 22:19:23 75

原创 python day78

vue组件化开发介绍组件化开发可以扩展 HTML 元素,封装可重用的代码,目的是复用。组件分为:全局组件与局部组件全局组件:整个项目中都能使用的组件局部组件:只能再局部使用注册全局组件和局部组件<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="./j.

2021-04-28 08:54:42 74

原创 python day77

python day77vue按键修饰符<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="./js/vue.js"></script></head><body><div id="app">&lt

2021-04-27 00:12:41 68

原创 python day76

python day76vue属性指令v-bind直接写js的变量或语法(不推荐):直接写js的变量或语法(推荐)style和class的使用js数组操作,增加值,修改值,删除值,vue的页面都会变可以检测到变动的数组页面也跟着编号的操作:push:最后位置添加 pop:最后位置删除 shift:第一个位置删除 unshift:第一个位置添加 splice:切片 sort:排序 reverse:反转检测不到变动的数组页面不变化的操作:

2021-04-25 23:42:48 72

原创 python day75

python day75多方式登录视图类from rest_framework.generics import CreateAPIViewfrom app01 import modelsfrom app01 import serializerfrom rest_framework.response import Responsefrom rest_framework.viewsets import ViewSetMixin# class UserLogin(CreateAPIView

2021-04-24 23:34:24 71

原创 python day74

python day74jwt 原理分析token是一个加密的串,它有三段头.荷载(数据).签名使用bsse64转码第一部分我们称它为头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature).drf+jwt开发流程1)用账号密码访问登录接口,登录接口逻辑中调用 签发token 算法,得到token,返回给客户端,客户端自己存到cookies中2)校验token的算法应该写在认证类中(在认证类中调用),全局配置给认证组件,

2021-04-23 00:29:27 81

原创 python day73

python day73三种分页方式基本分页:PageNumberPaginationpage_size = 2 # 每页显示两条page_query_param = 'page' #查询第几页的参数 ?page=3max_page_size = 4 #每页最大显示多少条page_size_query_param = 'size' #每页显示的条数查询条件(默认是page_size显示的条数) # ?page=3&size=3偏移分页:LimitOffsetPaginat

2021-04-22 23:55:42 56

原创 python day72

python day72从根上自定义频率类(了解)class MyThrottling(BaseThrottle): VISIT_RECORD = {} # 记录访问者的大字典 def __init__(self): self.history = None def allow_request(self, request, view): # (1)取出访问者ip # (2)判断当前ip不在访问字典里,添加进去,并且直接返回Tru

2021-04-21 00:11:15 133 2

原创 python day71

python day71认证类前奏登录功能,认证类编写认证类的使用流程-写一个类,继承BaseAuthentication-在类中写authenticate(self, request):-在方法中进行校验,如果校验通过,返回两个值(返回空)-使用认证类,在视图类上加authentication_classes = [LoginAuth,]登录功能先写两个表models.pyclass User(models.Model): name = models.CharField(ma

2021-04-19 00:04:53 54

原创 python day70

python day701 drf 响应格式和请求格式配置(了解)1.1 配置响应格式1 在配置文件中配置REST_FRAMEWORK = {‘DEFAULT_RENDERER_CLASSES’: ( # 默认响应渲染类‘rest_framework.renderers.JSONRenderer’, # json渲染器‘rest_framework.renderers.BrowsableAPIRenderer’, # 浏览API渲染器)}2 在浏览器访问就是浏览器方式,用postm

2021-04-18 23:51:13 47

原创 python day69

python day69序列化类源码分析(了解)many参数1 序列化类实例化的时候,传了many,序列化多条,不传,就序列化单条#many=True,实例化得到的对象是ListSerializerser=serializer.BookModelSerializer(instance=qs,many=True)print(type(ser))#rest_framework.serializers.ListSerializer# 列表中套了很多BookModelSerializer#man

2021-04-16 00:37:32 72

原创 python day68

python day68反序列化,局部钩子,全局钩子如果要反序列化,继承了Serializer,必须重写create方法使用#视图类def post(self, request): publish_ser = serializer.PublishSerializer(data=request.data) if publish_ser.is_valid(): # 直接保存,保存到哪个表里?需要重写save publish_ser.save()

2021-04-14 23:50:28 82

原创 python day67

python day67CBV源码分析和APIView源码分析cbv执行流程path('test/',views.TestView.as_view()),# path('test/',View类的as_view内部有个view闭包函数内存地址),'''1 path的第二个参数是:View类的as_view内部有个view闭包函数内存地址2 一旦有请求来了,匹配test路径成功3 执行第二个参数view函数内存地址(requset)4 本质执行了self.dispatch(request)

2021-04-14 23:45:05 85

原创 python day66

python day66前后端开发模式1 前后端混合在开发期间前后端共同商定好数据接口的交互形式和数据格式。然后实现前后端的并行开发,其中前端工程师在开发完成之后可以独自进行mock测试,而后端也可以使用Postman等接口测试软件进行接口自测,然后前后端一起进行功能联调并校验格式,最终进行自动化测试。2 前后端分离前端写好静态的HTML页面交付给后端开发。静态页面可以本地开发,也无需考虑业务逻辑只需要实现View即可。后端使用模板引擎去套模板,同时内嵌一些后端提供的模板变量和一些逻辑操作。然后

2021-04-12 00:29:29 128 1

原创 python day65

python day65BBS续写评论的render显示后端def article_detail(request, username, id): article = models.Article.objects.filter(id=id).first() comment_list=article.commit_set.all() return render(request, 'article.html', {'article': article, 'username': u

2021-04-12 00:18:58 65

原创 python day64

python day64BBS续写左侧查询和个人主页路由整合路由整合re_path('^(?P<username>\w+)/(?P<condition>category|tag|archive)/(?P<params>.*).html$', views.personal_site),视图函数def personal_site(request, username, **kwargs): user = models.UserInfo.objects.fi

2021-04-09 01:03:59 79

原创 python day63

python day63BBS首页布局<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>首页</title> <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css"> <link rel="

2021-04-07 19:14:37 53

原创 python day62

python day62BBS项目(续)注册功能前端发送ajax请求,使用的Formdata$('#id_submit').click(function () { let formdata = new FormData() formdata.append('myfile', $('#myfile')[0].files[0]) //方案一 /* formdata.append('username',$('#id_u

2021-04-07 00:44:56 96 1

原创 python day61

python day61BBS项目)数据库设计(设计表)-用户表(auth的扩展) -头像字段 -blog字段-博客表(个人站点):跟用户一对一 -博客标题 -博客名称 -博客样式-文章表 -文章标题 -文章摘要 -文章内容 -创建时间 -user_id -分类id -标签多对多关系(没有字段)-分类表 -分类id -分类名字 -blog字段-标签表 -标签id -标签名字 -blo

2021-04-05 23:47:31 44

原创 python day59

python day59cbv加装饰器cbv加装饰器可以加在类上:加在类上需要給name属性传一个值@method_decorator(auth,name='post')class Tndex(View): def get(self,request,*args,**kwargs): return HttpResponse('ok')也可以加在方法上@method_decorator(auth)def get(self, request, *args, **kwar

2021-03-31 16:49:08 57

原创 python day58

python day58forms组件源码分析校验流程-先校验字段自己的规则(最大,最小,是否必填,是不是合法)-校验局部钩子函数-全局钩子校验流程-is_valid()---》return self.is_bound and not self.errors -self.errors:方法包装成了数据数据 -一旦self._errors有值,就不进行校验了(之前调用过了) -self.full_clean():核心 self._errors = ErrorDict(

2021-03-30 17:32:32 78

原创 python day57

python day57分页器后端def books_page(request): current_num = int(request.GET.get('page_num', 1)) book_list = models.Books.objects.all() paginator = Paginator(book_list, 20) try: page = paginator.page(current_num) except Exception

2021-03-29 17:05:48 52

原创 python day56

python day56基于ajax登录用户在表单输入用户名与密码,通过Ajax提交给服务器,服务器验证后返回响应信息,客户端通过响应信息确定是否登录成功,成功,则跳转到首页,否则,在页面上显示相应的错误信息。后端from django.shortcuts import render,HttpResponsefrom app01 import modelsfrom django.http import JsonResponsedef login(request): if reques

2021-03-28 23:58:47 44

原创 python day55

python day55orm常用和非常用字段(了解)1 常用AutoField :int自增列,必须填入参数 primary_key=TrueIntegerField :整数列(有符号的) -2147483648 ~ 2147483647CharField :字符类型 必须提供max_length参数, max_length表示字符长度DateField: 日期格式 YYYY-MM-DDDateTimeField: 日期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuu

2021-03-25 16:00:50 87

原创 python day54

python day54分组查询annotate()为调用的QuerySet中每一个对象都生成一个独立的统计值(统计方法用聚合函数)。orm实现标准 annotate() 内写聚合函数values在前,表示group by 的字段values在后,表示取字段filter在前,表示where条件filter在后,表示having总结 :跨表分组查询本质就是将关联表join成一张表,再按单表的思路进行分组查询。例:# 查询出版社id大于1的出版社id,以及出书平均价格res=models

2021-03-24 17:41:36 47

原创 python day53

python day53采用admin页面添加数据要采用admin页面添加数据需要先在admin.py中导入from app01 import modelsadmin.site.register(models.Book)admin.site.register(models.Publish)admin.site.register(models.Author)admin.site.register(models.AuthorDatail)然后需要创建一个超级管理员python3 manag

2021-03-23 23:34:40 44

原创 python day52

python day52django测试环境搭建方式有两种方式一:任意创建一个py文件,在该文件内书写固定的配置import osif __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day06.settings") import django django.setup()方式二:直接使用pycharm提供的python console单表查询关键字QuerySet对象

2021-03-22 23:20:06 67

空空如也

空空如也

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

TA关注的人

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