- 博客(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">
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"><
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关注的人