首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python Web - Flask笔记8

防御CSRF攻击 CSRF攻击要点就是在服务器发送请求时候,相应cookie会自动发送给对应服务器,造成服务器不知道这个请求用户发送还是伪造,这时候,每当用户访问表单页面的时候,我们可以在网页源代码中添加一个随机字符串叫...csrf_token,在cookie中加入一个相同csrf_token字符串,以后给服务器发送请求时候,必须在body中以及cookie中携带csrf_token,服务器只有检测到cookie中...这个字典中值在所有模版中都可以使用。...请求方法 GET:从服务器上获取资源 POST:在服务器上新创建一个资源 PUT:在服务器上更新资源(客户端提供所有改变后数据) PATCH在服务器上更新资源(客户端只提供需要改变属性) DELETE...(比如服务器期望客户端发送某个字段,但是客户端没有发送) 500 internal server error 内部服务器错误,代码错误 67.

1.2K10

带你认识 flask ajax 异步请求

在这个模式中,客户端服务器发出一个请求,服务器响应一个网页,但与前面的情况不同,并不是所有的页面数据都是HTML,页面中也有部分代码,通常用Javascript编写。...当提供翻译链接并且用户点击它时,我需要将Ajax请求发送到服务器,服务器将联系第三方翻译API。一旦服务器发送了带有翻译文本响应,客户端JavaScript代码将动态地将该文本插入到页面中。...requests包中get()方法作为第一个参数给定URL发送一个带有GET方法HTTP请求。...由于客户端发送数据,因此我决定使用POST请求,因为它与提交表单数据请求类似。 request.form属性是Flask用提交中包含所有数据暴露字典。...这个函数以一种类似于浏览器提交Web表单格式服务器提交数据,这很方便,因为它允许Flask将这些数据合并到request.form字典中。

3.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

爬虫框架Scrapy(二)

举个简单例子: 简单回顾一下三次握手,客户端服务器发起请求;服务器客户端返回响应,同时也发起请求;客户端返回响应,确认连接。这是完整三次握手。...假设只有两次握手,客户端服务器发送连接请求,因为网络问题丢包了,根据重传机制客户端再次发送请求,这时没有丢包,然后服务器返回响应,两次握手后建立了连接。...客户端和服务器开始传输数据,但是在交流过程中如果丢包又回来了,然后服务器开了一个线程进行连接客户端,同时客户端发起连接请求,但是这个数据包失效了,客户端不会再发消息了,服务器会一直等待,空耗资源,...定义start_request函数,手动发送post请求,构造post请求数据,因为默认是get请求。 3. Request类只提供了get请求。...body:接收json字符串,为POST数据发送payload_post请求时使用。 5.web程序运行基本流程: a.客户端发送请求。b.服务器返回响应。

75510

SSE(Server-sent events)技术在web端消息推送和实时聊天中使用

是基于http协议,和WebSocket全双工通道(web端和服务端相互通信)相比,SSE只是单通道(服务端主动推送数据到web端),但正是由于此特性,在不需要客户端频繁发送消息给服务端,客户端却需要实时或频繁显示服务端数据业务场景中可以使用...在web端消息推送功能中,由于传统http协议需要客户端主动发送请求,服务端才会响应;基本ajax轮寻技术便是如此,但是此方法需要前端不停发送ajax请求给后端服务,无论后端是否更新都要执行相应查询...在SSE中,浏览器发送一个请求给服务端,通过响应头中Content-Type:text/event-stream;等 客户端证明这是一个长连接,发送是流数据,这时客户端不会关闭连接,一直等待服务端发送数据...,自信以为在服务器返回数据时只要是response头部添加这三个字段便实现了SSE功能,但是在flask启动自带服务器后,发现浏览器总是触发error事件,并且从新连接。...--发送消息页面,发送给三个不同channel,点击发送按钮后,对于channel页面会接收到数据--> 18 $(function () { 19 $("#button")

4.6K90

Flask 实现远程日志实时监控

本文提供了一种实时日志监控 Python 实现。主要实现以下功能: 抓取远程机器终端输出到服务器上。 将服务器日志更新实时显示到客户端网页上。 文中示例基于 Python 以及 Flask。...主要依赖: Flask Redis 及其 Python 客户端 paramiko 分析 总体来说要完成实时监控日志功能需要分为两个方面: 实时读取远程输出 将输出实时显示到页面上 获取远程输出 那么下面要解决问题是如何从远程机器上获取终端输出并添加到日志队列中...要实现这种客户端子更新,大致有三种方法:AJAX, SSE 和 Websocket。 AJAX 就是客户端自动定时发请求,定时间隔事先指定,不是真正实时。...SSE 其实是一种长连接,只能实现服务器客户端主动发送消息。 Websocket 是服务器与客户端之间全双工通道,需要后端软件支持。 权衡以上三者,SSE 是能满足我要求代价最小选择。...在Flask上,已经有封装好扩展Flask-SSE,直接安装使用就行了。Flask-SSE是通过 Redis Pubsub 实现消息队列。然而,只有在连接建立以后发送数据才能收到。

3.1K40

带你认识 flask 用户通知

01 私有消息 我要实现私有消息功能非常简单。当你访问用户个人主页时,会显示一个可以该用户发送私有消息链接。该链接将带你进入一个新页面,在新页面中,可以在Web表单中发送消息。...完成了数据库更改后,现在是时候生成新迁移并使用它升级数据库了: (venv) $ flask db migrate -m "private messages" (venv) $ flask db upgrade...,以便在计数为0时隐藏徽章 07 客户端发送消息通知 现在剩下就是增加一种机制,通过这种机制,客户端可以定期接收有关用户拥有的未读消息数量更新。...实际上有两种方法可以让服务器将这些更新告知客户端,而且你可能会猜到,这两种方法都有优点和缺点,因此选择哪种方法很大程度上取决于项目。在第一种方法中,客户端通过发送异步请求定期服务器请求更新。...WebSocket是一种不同于HTTP协议,在服务器和客户端之间建立永久连接。服务器和客户端可以随时对方发送数据,而无需另一方请求。

1.9K30

Flask解决跨域问题

这里主要场景是iframe跨域情况,不同域名iframe是限制互相访问。 XmlHttpRequest同源策略:禁止使用XHR对象不同源服务器地址发起HTTP请求。...只要协议、域名、端口有任何一个不同,都被当作是不同域,之间请求就是跨域操作。 为什么要有跨域限制 跨域限制主要是为了安全考虑。 AJAX同源策略主要用来防止CSRF攻击。...执行了页面中恶意AJAX请求代码。...http://evil.comhttp://mybank.com发起AJAX HTTP请求,请求会默认把http://mybank.com对应cookie也同时发送过去。...银行页面从发送cookie中提取用户标识,验证用户无误,response中返回请求数据。此时数据就泄露了。 而且由于Ajax在后台执行,用户无法感知这一过程。

1.5K10

外行学 Python 第十一篇 数据可视化

数据可视化选用 pyecharts 来完成,通过将 pyecharts 集成到 Flask 中完成数据数据库到网页可视化显示过程。...来响应 select 标签改变事件,通过 ajax 服务端提交当前选中生产商,同时从服务器获取该厂商信息。...在 Flask 后端需要实现一个 get 方法和一个 post 方法。...get 方法用来获取所有的生产商名称,同时浏览器发送 html 页面;post 方法用来相应 html 页面中 ajax 请求,发送该生产商所提供各类元件数量。...方法中主要做数据查询,通过生产商名称来查询出该生产商在数据 id,从而获取其所提供所有元件,然后按照 Catalog 中分类获取其各个分类中元件数据

2K30

Python每日一练(21)-抓取异步数据

异步加载与AJAX 2. 基本原理 2.1 发送请求 2.2 解析响应 2.3 渲染页面 2.4 Flask框架模拟实现异步加载页面 3. 逆向工程 4....异步加载与AJAX 传统网页如果要更新动态内容,必须重新加载整个网页,因为不管是动态内容,还是静态内容,都是通过服务端以同步方式按顺序发送客户端,一旦某些动态内容出现异常,如死循环,或完成非常耗时操作...2.4 Flask框架模拟实现异步加载页面 本例使用 Flask 框架模拟实现一个异步加载页面。页面使用模板显示,并且通过 jQuery 服务端发送请求,获取数据后,将数据显示在页面上。...现在使用 Flask 实现 Web 服务,该服务通过根路由显示 index.html 内容,使用 /data 响应路由客户端请求。...通过观察发现,详情页企业详情数据也是动态加载出来,该请求是 POST 请求,所有POST 请求 URL 都是一样,只有参数 id 值是不同。

2.7K20

都0202年了,你还不会前后端交互吗

文章目录 一、后端 API 服务搭建 二、原生 ajax 2.1 不带参数 get 请求 2.2 带参数 get 请求 2.3 带参数 post 请求 2.4 get 请求返回 json 数据 三...get 请求 4.3 fetch 发起post 请求,并带参数 4.4 fetch 发送 get 请求, 返回 JSON 数据 四、更好封装 axios?...4.1 axios 基本使用 4.2 axios 常用 API 4.2.1 get 请求 4.2.2 post 请求 出了点小 bug, 为啥后面的 post 请求, Flask 都接收不到 一、...原生 ajax 是基于 XMLhttpRequest 进行数据传输,关于什么是 ajax,可以看这两篇解释,以及基本使用 原生 ajax 实现 (这个调试花了我好久时间) 原生 ajax + Java...后端 API 编写 @app.route("/ajax/post",methods=['POST']) def post(): # Flask 获取 post 参数 uname = request.form.get

1.8K21

都 0202 年了,你还不会自己编写一些简单 API 服务吗?

web 框架来搭建一个 web 服务器,这个web 服务器,具有监听路由功能,通过对指定路由监听来自客户端请求,接收参数,并处理,然后将处理结果响应给客户端过程 一、Python Flask 编写简单...,比如 Nginx 来反向代理 Flask 所有请求 1.1 搭建 Python Flask 环境 安装 Python 环境 安装 Flask 框架 在 Python 官网下载 Python 安装包...但是作为前后端交互,一些 get 请求带参处理,post 请求参数处理, JSON 数据传输等等,我们就要学习如下内容 Flask 动态路由:看第一部分路由内容 HTTP 请求基本原理,http 响应状态码...) request.values.get('age') :获取GET和POST请求携带所有参数(GET/POST通用) request.cookies.get('name'):获取cookies信息...,重定向等方式,用 servlet 四大域存储数据,然后返回到前端页面 先给大家分享几个我在学习 Java EE 用到 ajax 技术 原生 ajax 实现 (这个调试花了我好久时间) 原生 ajax

91920

实用,完整HTTP cookie指南

AJAX 请求是使用 JS (XMLHttpRequest或Fetch)进行异步HTTP请求,用于获取数据并将其发送回后端。...在浏览器控制台中,可以看到请求回来 数据。另外,在开发者工具Network选项卡中,可以看到一个名为Cookie头,这是通过AJAX请求传给后端。...默认情况下,除非服务器设置了Access-Control-Allow-Origin特定HTTP标头,否则浏览器将阻止AJAX对非相同来源远程资源请求。...也就是说,我在浏览器中访问该URL,并且如果我访问相同URL或该站点另一个路径(假设Path为/),则浏览器会将cookie发送回该网站。...此模式允许使用安全HTTP方法(即GET,HEAD,OPTIONS和TRACE)将 cookie发送回去。 POST 请求不会以任何一种方式传输 cookie。

5.8K40

测试开发进阶(十五)

ajax ajax技术目的是让javascript发送http请求,与后台通信,获取数据和信息。...同步 异步 局部刷新 无刷新 ajax可以实现局部刷新,也叫做无刷新,无刷新指的是整个页面不刷新,只是局部刷新,ajax可以自己发送http请求,不用通过浏览器地址栏,所以页面整体不会刷新,ajax获取到后台数据...常用参数: url 请求地址 type 请求方式,默认是'GET',常用还有'POST' dataType 设置返回数据格式,常用是'json'格式,也可以设置为'html' data 设置发送给服务器数据...success 设置请求成功后回调函数 error 设置请求失败后回调函数 async 设置是否异步,默认值是'true',表示异步 集合实例 使用ajax发送账号密码信息 首先使用Flask编写一份简单后台代码...: from flask import Flask, request, jsonify app = Flask(__name__) # 测试数据 user_info = { "user":

1.6K30

HTTP cookie 完整指南

AJAX 请求是使用 JS (XMLHttpRequest或Fetch)进行异步HTTP请求,用于获取数据并将其发送回后端。...在浏览器控制台中,可以看到请求回来 数据。另外,在开发者工具Network选项卡中,可以看到一个名为Cookie头,这是通过AJAX请求传给后端。...默认情况下,除非服务器设置了Access-Control-Allow-Origin特定HTTP标头,否则浏览器将阻止AJAX对非相同来源远程资源请求。...也就是说,我在浏览器中访问该URL,并且如果我访问相同URL或该站点另一个路径(假设Path为/),则浏览器会将cookie发送回该网站。...此模式允许使用安全HTTP方法(即GET,HEAD,OPTIONS和TRACE)将 cookie发送回去。 POST 请求不会以任何一种方式传输 cookie。

4.2K20
领券