- 博客(62)
- 收藏
- 关注
原创 SQL注入 - GET注入与POST注入 一看就会
本文章讲了SQL注入中的显错注入(GET注入)和POST注入,一看就能学会。模仿里面的例子在靶场试试手,你就是下一个黑客帝王。
2021-12-31 15:30:14
4269
原创 PHP写一个登录表单,并实现注册+登录功能
后端开发基础PHP—Php 表单验证:写一个登录表单,并实现注册+登录功能1、表单必须与数据库交互2、注册和登录功能都必须有
2021-12-25 18:20:50
3897
原创 python实现Excel自动化处理
1、处理Excel文件的相关模块介绍及安装2、打开Excel文件读取Excel表格内容3、案例4、使用Python向Excel文件中写入数据5、使用Python向工作表中插入/删除行与列6、使用Python操作工作表对象7、案例8、使用Python操作Excel表格的格式9、案例10、使用Python向Excel中插入图片11、使用Python向Excel中插入柱状图12、使用Python向Excel中插入条形图13、案例 - 设置Excel的样式14、案例 - 批量生成新的文件
2021-12-02 10:40:35
5722
1
原创 python实现文件自动化
1、os模块简介 - 路径操作2、输出当前路径下所有文件及文件夹3、遍历指定路径下的文件及子文件夹下的文件4、搜索指定要求的文件5、查询文件具体的详细信息6、利用Python读写文件中的内容7、创建临时文件和文件夹8、创建文件夹9、复制文件和文件夹10、移动文件和文件夹11、删除文件或文件夹12、重命名文件和文件夹13、读取压缩包14、解压压缩包15、创建压缩包
2021-12-01 10:51:11
5923
1
原创 爬虫 - Scrapy框架超详解(一)
文章目录一、Scrapy框架原理1、Scrapy特点2、Scrapy安装3、Scrapy架构图4、Scrapy五大组件5、Scrapy工作流程二、Scrapy创建项目三、Scrapy配置文件详解1、项目完成步骤2.3.2 爬虫文件:baidu.py详解3、settings.py详解4、run.py 文件详解5、items.py详解四、案例1、抓取一页数据1.1 创建项目和爬虫文件1.2 items.py文件1.3 写爬虫:guazi.py1.4 管道:pipelines.py文件1.5 全局配置:setti
2021-11-25 17:19:45
4221
原创 selenium超详解
一、Selenium + PhantomJS | Chrome | Firefox1、Selenium概述定义开源的Web自动化测试工具特点可根据指令操控浏览器只是工具,必须与第三方浏览器结合使用安装Linux: sudo pip3 install seleniumWindows: python -m pip install selenium2、PhantomJS概述定义无界面浏览器(又称无头浏览器) 在内存中进行页面加载,高效使用场景页面
2021-11-24 17:42:32
18419
5
原创 python - requests库详解
1、Requests介绍2、requests库的安装3、requests库常用的方法4、response对象的常用属性5、使用requests发送get请求5.1不带参数的get请求5.2 带参数的get请求5.2.1查询参数params5.2.2 SSL证书认证参数 verify5.2.3 设置超时时间 timeout5.2.4 代理IP参数 proxies5.3 获取JSON数据5.4 获取二进制数据6、使用requests发送post请...
2021-11-24 12:10:59
17474
9
原创 生产者与消费者模式
目录1、生产者与消费者模式2、线程间的通信3、Queue线程安全队列4、课堂案例(Queue在多线程中的使用)5、课堂案例(多线程下载王者荣耀高清壁纸)1)分析URL2)爬取第一页壁纸的url3)存储壁纸4)多线程下载壁纸
2021-11-22 16:53:38
907
7
原创 爬虫 - 多线程
目录1、线程的基础内容2、线程与进程的区别3、继承方式实现多线程4、线程的常用方法5、多线程访问全局变量的安全性问题6、锁机制
2021-11-22 16:41:16
755
7
原创 关于爬虫解析数据的4种方式
爬虫之解析数据的4种方式:XPath解析数据、BeautifulSoup解析数据、正则表达式、pyquery解析数据。
2021-11-22 11:08:34
10195
13
原创 XShell远程连接Ubuntu
安装SSH服务1. 下载sshsudo apt-get install ssh2. 升级ssh服务sudo apt-get install openssh-server3. 测试主机和虚拟机是否能互相ping通查看虚拟机ip地址:ifconfig主机ping虚拟机ip地址: ping 192.168.91.128显示能ping通。反过来试试:查看主机ip地址:ipconfig虚拟机ping主机ip地址: ping 192.168.170.1显示也能ping通。这说明了
2021-11-22 10:37:31
348
原创 django项目部署-nginx-2
nginx+uwsgi排错常见问题排查排查问题宗旨 -> 看日志!看日志!!看日志!!!nginx日志位置:异常信息 /var/log/nginx/error.log正常访问信息 /var/log/nginx/access.loguwsgi日志位置:项目同名目录下,uwsgi.log常见问题排查(续)访问127.0.0.1:80地址,502响应502响应 代表nginx反向代理配置成功,但是对应的uWSGI未启动访问127.0.0.1:80/url
2021-11-22 10:37:07
706
原创 django项目部署-nginx-1
什么是NginxNginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡等一系列重要特性C语言编写,执行效率gaonginx作用负载均衡,多台服务器轮流处理请求反向代理原理:客户端请求nginx,再由nginx将请求转发 uWSGI 运行的django安装sudo apt install nginx如果下载速度很慢,考虑更换为国内源vim /etc/apt/sources.list更改国内源sudo apt-get update安装完毕
2021-11-22 10:36:22
327
原创 django项目部署-uwsgi
基础概念项目部署是指在软件开发完毕后,将开发机器上运行的软件实际安装到服务器上进行长期运行在安装机器上安装和配置同版本的环境[py,数据库等]django项目迁移sudo scp /home/tarena/django/mysite1root@88.77.66.55:/home/root/xxx请输入root密码:用uWSGI替代python manage.py runserver 方法启动服务器配置 nginx 反向代理服务器用nginx配置静态文件路径,解决静态路径问题
2021-11-19 15:49:14
1685
10
原创 用django发送邮件
业务场景业务警告邮件验证密码找回惯例,在说发送邮件的操作之前先来一点硬核知识:邮件相关协议 - SMTPSMTP的全称是“Simple Mail Trandfer Protocol”,即简单邮件传输协议(25号端口)它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转属于“推送”协议邮件相关协议 - IMAPIMAP全称是Internet Mail Access Protocol,即交互式邮件访问协议,是一个应用层协议(端口是143)用来从本地邮件客户端(Ou
2021-11-19 15:39:24
485
原创 django 实现文件上传
定义&场景定义:用户可以通过浏览器将 图片等文件传至网站场景:用户上传头像上传流程性的文档【pdf, txt等】上传规范 - 前端[HTML]文件上传必须为POST提交方式表单 ‘’ 中文件上传时必须有带有 enctype=“multipart/form-data” 时才会包含文件内容数据。表单中用标签上传文件# file : mysite7/views.pydef test_upload(request): if request.method == 'GE
2021-11-19 15:06:08
250
原创 django - 内建用户系统
定义Django带有一个用户认证系统。它处理用户账号、组、权限以及基于cookie的用户会话。用户可以直接使用Django自带的用户表。官方文档https://docs.djangoproject.com/en/2.2/topics/auth基本字段模型类位置 from django.contrib.auth.models import User字段说明username用户名password密码email邮箱first_name名l
2021-11-19 15:00:30
173
原创 django生成csv文件
csv文件定义逗号分隔值(Comma-Separated Values, CSV, 有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)说明:可被常见制表工具,如excel等直接进行读取python中生成csv文件Python提供了内建库 - csv;可直接通过该库操作csv文件案例如下:import csvwith open('eggs.csv','w',newline='') as csvfile: writer = csv.writer
2021-11-19 14:59:05
321
原创 django - 分页
分页分页是指在web页面有大量数据需要显示,为了阅读方便在每个页面中只显示部分数据。优点:方便阅读减少数据提取量,减轻服务器压力。Django提供了Paginator类可以方便的实现分页功能Paginator类位于 ‘django.core.paginator’ 模块中。Paginator对象负责分页数据整体的管理对象的构造方法paginator = Paginator(object_list, per_page)参数object_list:需要分页数据
2021-11-19 14:56:22
195
原创 django - 中间件-2
练习1用中间件实现强制某个IP地址只能向/test开头的地址 发送5次请求。超过5次提示访问次数已达上限。提示:request.META[‘REMOTE_ADDR’]可以得到远程客户端的IP地址request.path_info 可以得到客户端访问的请求路由信息# file : middleware/mymiddleware.pyclass VisitLimit(MiddlewareMixin): visit_times = {} # 访问次数 def p
2021-11-19 14:45:04
312
原创 django - 中间件-1
中间件的定义中间件是Django请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改变Django的输入或输出。中间件以类的形式体现每个中间件组件负责做一些特定的功能。例如,Django包含一个中间件组件AuthenticationMiddleware,它使用会话将用户与请求关联起来。编写中间件中间件类须继承自 django.utils.deprecation.MiddlewareMixin 类中间件类须实现下列五个方法中的一个或多个:process_reque
2021-11-19 14:44:25
130
原创 django - 缓存-2
局部缓存策略缓存案例案例分析from django.shortcuts import renderdef index(request): # 时间复杂度极高的渲染 book_list = Book.objects.all() # -> 此处假设耗时2s return render(request, 'index.html', locals())缓存api的使用先引入cache对象方式1:使用caches['CACHE配置key']导入具体对象from
2021-11-19 14:43:59
105
原创 django - 缓存-1
缓存的定义定义:缓存是一类可以更快的读取数据的介质统称,也指其它可以加快数据读取的存储方式。一般用来存储临时数据,常用介质的是读取速度很快的内存。意义:视图渲染有一定成本,数据库的频繁查询过高;所以对于低频变动的页面可以考虑使用缓存技术,减少实际渲染次数;用户拿到响应的时间成本会更低。案例分析from django.shortcuts import renderdef index(request): # 时间复杂度极高的渲染 book_list = Book.ob
2021-11-19 14:43:29
263
原创 django - 云笔记项目-5-网站首页
网站首页url : /index视图函数:index_view模板位置:templates/index/index.html界面样式:登录前:登录后:python manage.py startapp index# file : tedu_note/settings.pyINSTALLED_APPS = [ 'index',]# file : index/views.pydef index_view(request): return render(r
2021-11-18 14:06:36
224
原创 django - 云笔记项目-4-用户登陆
用户登陆url : /user/login视图函数: login_view模板位置:templates/user/login.html界面样式:勾选 记住用户名 时,会话状态保存时间多一些# file : user/views.pydef login_view(request): if request.method == 'GET': # 获取登录页面 return render(request, 'user/login.html') e
2021-11-18 11:31:22
664
9
原创 django - 云笔记项目-3-注册问题优化
注册问题 - 优化密码如何处理?插入问题产品经理要求 注册 则免登录一条,这功能怎么做此处插入 哈希算法 的知识点:哈希算法给定明文,计算出一段定长,不可逆的值; md5,sha-256特点:定长输出:不管明文输入长度为多少,哈希值都是定长的, md5 - 32位16进制不可逆:无法反向计算出 对应的 明文雪崩效应:输入改变, 输出必然变场景:密码处理文件的完整性校验如何使用:在ipython中试验:import hashlibm = hashlib.md5(
2021-11-18 11:14:58
276
原创 django - 云笔记项目-2-用户注册
用户模型类设计class User(models.Model): username = models.CharField("用户名", max_length=30, unique=True) password = models.CharField("密码", max_length=32) create_time = models.DateTimeField('创建时间', auto_now_add=True) updated_time = models.DateTimeFi
2021-11-18 11:10:37
851
8
原创 django - 云笔记项目-1
项目介绍云笔记项目:用户可在该系统中 记录 自己的 日常学习/旅游 笔记,用户的数据将被安全的存储在 云笔记平台;用户与用户之间数据为隔离存储(用户只有在登录后才能使用相关笔记功能,且只能查阅自己的笔记内容)部分页面展示如下:云笔记项目 - 项目组成员角色产品/运营经理:负责产品功能细节的把控开发前端 - 负责显示部分内容的开发【多】后端 - 负责服务器部分的功能开发【少】运维 - 管理linux服务器,组件化配置,安全问题测试 - 负责找出产品功能的问题【BUG】美术 - 负
2021-11-18 10:57:54
404
1
原创 django - cookies和session-2
会话保持 - 登录流程Session定义Session是在服务器上开辟一段空间用于保留浏览器和服务器交互时的重要数据。实现方式使用session需要在浏览器客户端启动cookie中存储sessionID每个客户端都可以在服务器端有一个独立的Session注意:不同的请求者之间不会共享这个数据,与请求者一一对应。session初始配置setting.py中配置session向INSTALLED_APPS列表中添加:(默认情况下是已有的)INSTALLED_APPS = [
2021-11-18 10:51:28
132
原创 django - cookies和session-1
会话从打开浏览器访问一个网站,到关闭浏览器结束此次访问,称之为一次会话。HTTP协议是无状态的,导致会话状态难以保持试想一下,如果不保持会话状态,在电商网站购物的场景体验?Cookies和Session就是为了保持会话状态而诞生的两个存储技术Cookiescookie是保存在客户端浏览器上的存储空间Chrome浏览器 可能通过开发者工具的 Application >> Storage >> ‘Cookies’ 查看和操作浏览器端所有的Cookies值火狐浏览器
2021-11-18 10:40:40
114
原创 cookie和session
Cookie与Session流程与区别实现状态保持的原理登录一个网站时常常会涉及到用户登录的状态保持,来使得用户获得更好的体验。那么cookie和session就是为了实现状态保持的CookieCookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据。Cookie就是服务器保存在客户端的数据,是一个键值对Cookie通过请求头和响应头在服务器与客户端之间传输,大小限制在4KB之内实现流程:用户在登录时向后端服务器发送post请求,服务器接受请求,检验请求参数无误后,处理
2021-11-18 10:30:54
132
原创 django - 关系映射-2- 一对多|多对多
一对多映射一对多是表示现实事物间存在的一对多的对应关系。如:一个学校有多个班级,一个班级有多个学生,一本图书只能属于一个出版社,一个出版社允许出版多本图书一对多需要明确出具体角色,在多表上设置外键语法当一个A类对象可以关联多个B类对象时class A(model.Model): ...class B(model.Model): 属性 = models.ForeignKey("一"的模型类, on_delete=xx)ForeignKey必须指定 on_delete 模式
2021-11-18 10:24:21
114
原创 django - 关系映射-1- 一对一映射
什么是关系映射在关系型数据库中,通常不会把所有数据都放在同一张表中,不易于扩展,常见关系映射有:一对一映射0. 如:一个身份证对应一个人一对多映射0. 如:一个班级可以有多个学生多对多映射0. 如:一个学生可以报多个课程,一个课程可以有多个学生学习一对一映射 【创建】一对一映射表示现实事物间存在的一对一的对应关系。如:一个家庭只有一个户主,一个男人有一个妻子,一个人有一个唯一的指纹信息等。语法:OneToOneField(类名, on_delete=xxx)class A
2021-11-18 10:05:33
594
7
原创 django - admin后台管理-2-自定义模型类
注册自定义模型类若要自己定义的模型类也能在 /admin 后台管理界中显示和管理,需要将自己的类注册到后台管理界面注册步骤:在应用app中的admin.py中导入注册要管理的模型models类,如:from .models import Book调用 admin.site.register 方法进行注册,如:admin.site.register(自定义模型类)# file : bookstore/admin.pyfrom django.contrib import adminfrom
2021-11-17 20:52:33
620
原创 django - admin后台管理-1
什么是admin管理后台django提供了比较完善的后台管理数据库的接口,可供开发过程中调用和测试使用django会搜集所有已注册的模型类,为这些模型类提供数据管理界面,供开发者使用图片中的 ‘用户’ 可以对应数据库中的 ’ auth-user ’admin配置步骤创建后台管理账号 - 该账号为管理后台最高权限账号python manage.py createsuperuserpython manage.py createsuperuserUsername(leave b
2021-11-17 19:17:06
280
原创 django - 聚合查询和原生数据库操作
聚合查询聚合查询是指对一个数据表中的一个字段的数据进行部分或全部进行统计查询,查bookstore_book数据表中的全部书的平均价格,查询所有书的总个数等,都要使用聚合查询聚合查询分为整表聚合分组聚合聚合查询 - 整表聚合不带分组的聚合查询是指导将全部数据进行集中统计查询聚合函数【需要导入】:导入方法:from django.db.models import *聚合函数:Sum, Avg, Count, Max, Min语法:MyModel.objects.aggre
2021-11-17 17:20:40
359
原创 django - F对象和Q对象
F对象一个F对象代表数据库中某条记录的字段的信息信息:通常是对数据库中的字段值在不获取的情况下进行操作用于类属性(字段)之间的比较语法:from django.db.models import FF('列名')示例1:更新Book示例中所有的零售价涨10元Book.objects.all().update(market_price=F('market_price')+10)'UPDATE 'bookstore_book' SET 'market_price' = ('boo
2021-11-17 17:01:26
158
原创 django - ORM-删除操作
单个数据删除步骤查找查询结果对应的一个数据对象调用这个数据对象的delete()方法实现删除try: auth = Author.objects.get(id=1) auth.delete()except: print(删除失败)批量删除步骤查找查询结果集中满足条件的全部QuerySet查询集合对象调用查询集合对象的delete()方法实现删除# 删除全部作者中,年龄大于65的全部信息auths = Author.objects.filter(age_
2021-11-17 16:48:15
437
原创 django - ORM-更新操作
更新单个数据修改单个实体的某些字段值的步骤:查0. 通过get()得到要修改的实体对象改0. 通过 对象.属性 的方式修改数据保存0. 通过 对象.save() 保存数据批量更新数据直接调用QuerySet的update(属性=值)实现批量修改实例# 将 id大于3的所有图书价格定为0元books = Book.objects.filter(id__gt=3)books.update(price=0)# 将所有书的零售价定为100元books = Book.obje
2021-11-17 16:35:17
485
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人