python写数据库中间件_python 20 day form、model多对多操作、sql、中间件
跨站请求伪造:
一、简介
django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成。而对于django中设置防跨站请求伪造功能有分为全局和局部。
全局:
中间件 django.middleware.csrf.CsrfViewMiddleware
局部:
@csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件。
@csrf_exempt,取消当前函数防跨站请求伪造功能,即便settings中设置了全局中间件。
注:from django.views.decorators.csrf import csrf_exempt,csrf_protect
二、应用
1、普通表单
veiw中设置返回值:
return render_to_response('Account/Login.html',data,context_instance=RequestContext(request))
或者
return render(request, 'xxx.html', data)
html中设置Token:
{% csrf_token %}
2、Ajax
对于传统的form,可以通过表单的方式将token再次发送到服务端,而对于ajax的话,使用如下方式。
view.py
from django.template.context import RequestContext
# Create your views here.
def test(request):
if request.method == 'POST':
print request.POST
return HttpResponse('ok')
return render_to_response('app01/test.html',context_instance=RequestContext(request))
Text.html
1
2
3
4
5
6
7
8 {% csrf_token %}9
10
11
12
13
14
15 varcsrftoken=$.cookie('csrftoken');16
17 functioncsrfSafeMethod(method) {18 //these HTTP methods do not require CSRF protection
19 return(/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));20 }21 $.ajaxSetup({22 beforeSend:function(xhr, settings) {23 if(!csrfSafeMethod(settings.type)&& !this.crossDomain) {24 xhr.setRequestHeader("X-CSRFToken", csrftoken);25 }26 }27 });28 functionDo(){29
30 $.ajax({31 url:"/app01/test/",32 data:{id:1},33 type:'POST',34 success:function(data){35 console.log(data);36 }37 });38
39 }40
41
42
python写数据库中间件_python 20 day form、model多对多操作、sql、中间件相关推荐
- python写数据库校验_python 验证 sqlite数据库隔离级别
sqlite3支持三种数据库锁级别,也叫隔离级别.下面代码中我们对数据库中task表进行更新,然后由另一个线程读取这个表的数据 import logging import sqlite3 import ...
- python写数据库校验_Python:生成验证码并插入到数据库!
1import pymysql 2import uuid 3 4codeList = dict() // 声明一个字典 5 6i = 1 // 为了保证字典 key 的唯一性而声明 7 8// 封装函 ...
- 怎么用python写数据库_Python实现数据库编程方法详解
本文实例讲述了Python实现数据库编程方法.分享给大家供大家参考.具体分析如下: 用PYTHON语言进行数据库编程, 至少有六种方法可供采用. 我在实际项目中采用,不但功能强大,而且方便快捷.以下是 ...
- python写数据库中间件_python3开发进阶-Django框架的中间件的五种用法和逻辑过程...
阅读目录 一.什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出. 每个中间件组件都 ...
- python生成数据库指令_Python学习—数据库操作
python2中操作数据库:MySQLdb python3中操作数据库:pymysql python接连数据库 1.创建数据库连接: mysql.connect()函数 2.执行数据库操作: 执行数据 ...
- python 通用数据库类型_Python开发基础之Python常用的数据类型
博文大纲 一.Python介绍 二.Python的变量 三.Python常用的数据类型 1.数字 2.字符串 3.元组 4.列表 5.字典 一.Python介绍 Python是一种动态解释型的编程语言 ...
- python处理数据库数据类型_python 导入表格数据库数据类型
Django 博客开发教程 3 - 创建 Django 博客的数据库模型 设计博客的数据库表结构 博客最主要的功能就是展示我们写的文章,它需要从某个地方获取博客文章数据才能把文章展示出来,通常来说这个 ...
- 用python写一个通讯录_python写一个通讯录
闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下 接下来就按照这个流程实现各个模块的功能 1. 定义一个类,并初始化 def __init__(self): w ...
- python写安卓游戏_python写lol游戏脚本(用python开发安卓脚本)
python写lol游戏脚本 俾格米人和搅拌机的引擎. python-ogre和panda3d是用c/c编写的,但只提供了一个python接口. 你好,蟒蛇可以在Android上工作. 因为你可以在A ...
- python写了代码_Python写代码的用法建议
1.Mutable and immutable types Python有两种内置或用户定义的类型 可变类型是允许就地修改内容的类型.典型的可变列表是列表和词典:所有列表都有变异方法,如 list.a ...
最新文章
- 吴恩达推荐笔记:22 张图总结深度学习全部知识
- JavaScript 日期联动选择器
- Jetson TX1使用usb camera采集图像 (1)
- DL之RNN:基于RNN实现模仿贴吧留言
- spring mvc+spring + hibernate 整合(二)
- 首届中国高校计算机大赛-人工智能创意赛启动,百度加盟全面赋能
- VTK:可视化之ProjectSphere
- 第十四章:详解Jenkins节点配置
- Java基础17:Java IO流总结
- 利用计算机语言实现ID3算法,机器学习之决策树学习-id3算法-原理分析及c语言代码实现.pdf...
- java中 15db9742_请问我这个报错[I@15db9742是怎么回事啊?
- nodejs安装服务器系统,window下,nodejs安装http-server,并开启HTTP服务器
- 成绩的案例java_java-成绩案例
- 使用fastadmin的页面跳转模板
- 马上上线!谷歌与苹果联手抗疫,打造基于蓝牙设备的接触史回溯 | 凌云时刻...
- hevc参考代码matlab版,HEVC部分源码剖析
- java中this和this()区别
- uniApp H5微信网页授权,微信支付
- python怎么变白-Python将png透明变为白色并保存为jpg图片
- ue小知识点 动画蓝图 ABP的 begin、init和Character的posses的先后
热门文章
- 网页设计制作CSS实现隔行换色两种方法
- Hibernate存取JSON数据
- 磁盘类型 GetDriveType
- UITableViewCell 添加 checkbox 多选
- vue slot插槽_Vue之路 | 08vue插槽slot使用
- vue 组件 not defined_Vue、Spring Boot开发小而完整的Web前后端分离项目实战10
- HTML和CSS面试题第35题
- Javascript基础知识笔记一
- C# winfrom 添加Log4Net日志库
- -bash:ls:command not found,执行命令总是报找不到