post请求

Python Day22

夙愿已清 提交于 2020-02-09 01:02:44
Django之Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 1、创建Form类 from django.forms import Form from django.forms import widgets from django.forms import fields class MyForm(Form): user = fields.CharField( widget=widgets.TextInput(attrs={'id': 'i1', 'class': 'c1'}) ) gender = fields.ChoiceField( choices=((1, '男'), (2, '女'),), initial=2, widget=widgets.RadioSelect ) city = fields.CharField( initial=2, widget=widgets.Select(choices=((1,'上海'),(2,'北京'),)) ) pwd = fields.CharField( widget=widgets.PasswordInput(attrs={'class': 'c1'}, render_value=True) ) 2、View函数处理

第十篇:跨站请求伪造csrf

假如想象 提交于 2020-02-07 21:04:45
钓鱼网站 钓鱼网站和正规网站的页面一模一样,提交网页数据的url也一样,但是会在页面中设置隐藏属性的form表单。例如转账:给用户书写的form表单,对方账号的input没有name属性,然后另外写一个具有默认的并且是隐藏的具有name属性的input框。 form表单如何通过csrf校验 为了防止此类事情的发生,我们使用csrf_token生成随机字符串 在form表单内添加: {% csrf_token %} browser客户端向服务端发动get请求,服务端返回给browser一串随机的字符串,当browser向服务端发送post请求时,会携带上该字符串,服务端会先对该随机字符串进行校验,如果客户端携带的字符串和服务器上的字符串一致,服务端会允许客户端提交post请求,否则会被forbidden掉。 当客户端向django服务端发送post请求,django中间件 django.middleware.csrf.CsrfViewMiddleware 会获取post中携带的name为“ csrfmiddlewaretoken ”的value是否和之前返回给客户端的value一致。 ajax如何通过csrf校验 第一种: 自己手动获取 <body> <form action="" method="post"> {% csrf_token %} <p>用户名:<input type=

第8关 带着小饼干登陆

我是研究僧i 提交于 2020-02-07 00:04:43
第0-7关我们学习的是爬虫最为基础的知识,从第8关开始,我们正式打开爬虫的进阶之门,学习爬虫更多的精进知识。 在前面几关,我们实操的爬虫项目里都没有涉及到登录这一行为。 但实际很多情况下,由于网站的限制,不登录的话我们只能爬取到一小部分信息。 而我们想要登录的话,则需要带上小饼干。 什么是小饼干?小饼干就是cookies的中文翻译,它是模拟登录时会涉及到的重要知识点。在后面,我会为你详细解释原理。 这一关我准备带你完成一个项目实操——借助Python发表博客评论。其中,会应用到这一块知识。 项目:发表博客评论 这个博客你之前见过,是我们搭建好的爬虫教学演练网站—— 因为博客的设置,如果我们不登录的话,就无法在文章下面评论留言。 我们先来看看,“正常人”的登录操作是怎样的。 作为“正常人”,我们会先找到博客的登录按钮(在博客首页的右下角),然后点击。 网页会跳转到登录页面,我们会填写账号密码,点击登录,完成登录操作。 为了让你也能动手操作,我提前注册了一个账号——账号:spiderman,密码:crawler334566。请你复制下面的博客登录网址在浏览器打开: https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php 上图左边是“正常人”的操作:填上账号和密码;右边我们可以用工程师的思维

关于Django的Ajax操作

岁酱吖の 提交于 2020-02-05 06:18:23
一 什么是Ajax AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求; 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。 AJAX除了 异步 的特点外,还有一个就是:浏览器页面 局部刷新 ;(这一特点给用户的感受是在不知不觉中完成请求和响应过程) 场景: 优点: AJAX使用Javascript技术向服务器发送异步请求 AJAX无须刷新整个页面 二 基于jquery的Ajax实现 <button class="send_Ajax">send_Ajax</button> <script> $(".send_Ajax").click(function(){ $.ajax({ url:"/handle_Ajax/", type:"POST", data:{username:"Yuan",password:123}, success:function(data){ console.log(data) },        error: function (jqXHR,

爬虫爬取一击男吧漫画

南笙酒味 提交于 2020-02-05 02:18:07
爬虫分析: 简单流程: Created with Raphaël 2.2.0 一击男贴吧精品区url地址 用xpath和re筛选目标标题 保存标题名称和帖子url 获取下一页的url地址 循环获取所有符合的帖子标题和url 遍历符合的帖子url列表 分析帖子,获取所有一楼用户id所发的图片 帖子下一页url 获取所有图片url 构造图片url,请求 保存图片 分析筛选目标标题 精品区url地址: https://tieba.baidu.com/f?kw=%E4%B8%80%E5%87%BB%E7%94%B7&ie=utf-8&tab=good&cid=1&pn=0 参数kw=“贴吧名字”,这里是“一击男”。 tab=good 是精品区的意思,不用管。 cid=1 是精品区下的帖子分类,因为要爬取的是精品区的帖子,所以这里选cid=1,“村田重置” 浏览器进入开发者模式,看看代码。Ctrl+f搜索一下某个标题,“二人”,因为要用xpath和re,所以要。找一下一下标题代码的规律。 <a rel="noreferrer" href="/p/6366353276" title="164话嵌字汉化【二人小组】" target="_blank" class="j_th_tit ">164话嵌字汉化【二人小组】</a> 因为百度返回的html都在注释里面对使用xpath十分不友好

Web 手工测试

强颜欢笑 提交于 2020-02-03 07:23:33
day 1 学习目标: 熟练搭建本地测试环境 掌握熟悉项目的步骤和内容 掌握项目基本的测试流程 基础环境介绍: 项目环境的组成部分: 操作系统 windows win7 win10 Linux Centos 6.x,7.x Redhat 6.x,7.x Ubuntu 14.z,16.x,18.x Mac web 服务器 apache: 稳定,文档齐全 默认监听端口:80 nginx: 负载均衡器 默认监听端口:80 tomcat:默认监听端口"8080 ->JAVA 数据库 Mysql Oracle Sql Server DB2 项目 LNMP: LINUX+Nginx+Mysql+PHP WAMP: Windows+Nginx+Mysql+PHP 扩展: Apache 与 Nginx 的区别: apache 与 nginx 均可以作为web服务器使用 apche 系统稳定性更强文档丰富 nginx 消耗更少的系统资源(如CPU,内存等) nginx 更加典型的应用场景是作为负载均衡器使用 搭建测试环境 准备工作 phpstudy安装文件 项目部署包 部署说明书 安装集成环境 apache 监听端口: 80 mysql 监听端口: 3306 部署项目 将TPshop 项目压缩包解压后文件夹里的全部内容放入phpstudy安装路径\www中 常见故障 mysql 端口被占用

[JS]在新标签页中发送post请求

孤街醉人 提交于 2020-02-01 06:08:52
在新标签页中发送post请求 $ ( function ( ) { $ ( "#bt_Preview" ) . click ( function ( ) { $ ( '#form1' ) . removeAttr ( "target" ) ; var form = document . getElementById ( 'form1' ) ; form . action = "/地址" ; if ( verification ( $ ( "form" ) ) ) { var form = document . getElementById ( 'form1' ) ; form . action = "/地址" ; $ ( "#form1" ) . attr ( 'target' , '_blank' ) ; form . submit ( ) ; } } ) ; } ) 来源: CSDN 作者: hey_liar 链接: https://blog.csdn.net/hey_liar/article/details/103741332

requests beautifulsoup

独自空忆成欢 提交于 2020-02-01 02:56:56
requests Python标准库中提供了:urllib、urllib2、httplib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。 Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。 1、GET请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 1、无参数实例 import requests ret = requests.get( 'https://github.com/timeline.json' ) print ret.url print ret.text # 2、有参数实例 import requests payload = { 'key1' : 'value1' , 'key2' : 'value2' } ret = requests.get( "http://httpbin.org/get" , params = payload) print ret.url print ret

这些面试题你会怎么答?

对着背影说爱祢 提交于 2020-02-01 02:42:21
前言 最近参加了几场面试,积累了一些高频面试题,我把面试题分为两类,一种是基础试题: 主要考察前端技基础是否扎实,是否能够将前端知识体系串联。一种是开放式问题: 考察业务积累,是否有自己的思考,思考问题的方式,这类问题没有标准答案。 基础题 题目的答案提供了一个思考的方向,答案不一定正确全面,有错误的地方欢迎大家请在评论中指出,共同进步。 怎么去设计一个组件封装 组件封装的目的是为了重用,提高开发效率和代码质量 低耦合,单一职责,可复用性,可维护性 前端组件化设计思路 js 异步加载的方式 渲染引擎遇到 script 标签会停下来,等到执行完脚本,继续向下渲染 defer 是“渲染完再执行”,async 是“下载完就执行”,defer 如果有多个脚本,会按照在页面中出现的顺序加载,多个async 脚本不能保证加载顺序 加载 es6模块的时候设置 type=module,异步加载不会造成阻塞浏览器,页面渲染完再执行,可以同时加上async属性,异步执行脚本(利用顶层的this等于undefined这个语法点,可以侦测当前代码是否在 ES6 模块之中) css 动画和 js 动画的差异 代码复杂度,js 动画代码相对复杂一些 动画运行时,对动画的控制程度上,js 能够让动画,暂停,取消,终止,css动画不能添加事件 动画性能看,js 动画多了一个js 解析的过程,性能不如 css

requests and BeautifulSoup

ぐ巨炮叔叔 提交于 2020-02-01 02:09:24
requests Python标准库中提供了:urllib、urllib2、httplib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。 Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。 1、GET请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 1、无参数实例 import requests ret = requests.get( 'https://github.com/timeline.json' ) print ret.url print ret.text # 2、有参数实例 import requests payload = { 'key1' : 'value1' , 'key2' : 'value2' } ret = requests.get( "http://httpbin.org/get" , params = payload) print ret.url print ret