Django学习手册 - csrf】的更多相关文章

CSRF csrf原理 无csrf时存在隐患 Form提交 Ajax提交 默认为全局都csrf Form表单提交方式: <div> <form action="/login/" method="post"> {% csrf_token %} <p>用户名:<input type="text" name="user"/></p> <p>密码:<inpu…
CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站请求伪造的功能工作原理:客户端访问服务器端,在服务器端正常返回给客户端数据的时候,而外返回给客户端一段字符串,等到客户端下次访问服务器端时,服务器端会到客户端查找先前返回的字符串,如果找到则继续,找不到就拒绝.访问流程:客户端->URL路由系统 - > CSRF ->视图函数需要在客户端页面的post表单内添加:{% csrf_token %}全局生效: 中间件 django.middleware.csrf.…
验证需要知道requests提交数据的几种方式: GET 方式: # get 方式,传递数值可以直接通过url传递:(服务端接受 GET) requests.get(url='http://127.0.0.1:8000/api/?k1=a1') # get 方式也可通过参数 params:(服务端接受 GET) requests.get(url='http://127.0.0.1:8000/api/',params={"K1":'a1'}) POST 方式:(在django中需要注意c…
下载XLS表格方式: 前置: 需要安装xlwt模块 views : def export_users_xls(request): response = HttpResponse(content_type='application/ms-excel') response['Content-Disposition'] = 'attachment; filename="abc.xls"' wb = xlwt.Workbook(encoding='utf-8') ws = wb.add_she…
原理分析: API接口验证 1.一个认证的key server端 和 client端都必须有这么一个认证key. 2.认证登录的时间限定 3.保存已验证的信息,在以后的验证不能再次登录 client 端: import requests import hashlib import time # 基于验证的key au_key = "dawefgdsfsafdsadas" # 基于验证的时间 au_time = time.time() # 将验证的key与时间合并成一个字符 au_key…
从数据库获取数据后,对数据进行清洗 目标: 数据1,存放至session 中的数据 数据2,显示至前端的菜单数据 清洗数据: 1.session存放的数据:(menu_leaf_dict) 2.前端菜单数据(rasult) from app01 import models # 取用户角色 uname juese data = models.Juese.objects.filter(utoj__u__uname='xguo') # 获取当前用户角色的权限 uname_juese quanxian_…
权限管理原理: 不同角色拥有不同的角色权限,所以能否访问的页面也就不相同. 通过控制URL使用户访问到不同的URL,从而达到权限控制的目的. 设计权限数据库 权限管理 from django.db import models # Create your models here. class Userinfo(models.Model): uname = models.CharField(max_length=30) pwd = models.CharField(max_length=30) cl…
生成验证码函数 import random from PIL import Image, ImageDraw, ImageFont, ImageFilter _letter_cases = "abcdefghjkmnpqrstuvwxy" # 小写字母,去除可能干扰的i,l,o,z _upper_cases = _letter_cases.upper() # 大写字母 _numbers = ''.join(map(str, range(3, 10))) # 数字 init_chars…
ORM 查询的数据类型: QuerySet与惰性机制(可以看作是一个列表) 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行. QuerySet特点: <1>  可迭代的 <2>  可切片 <3>  惰性计算和缓存机制 例: info=models.table_name.objects.all()[0:5] #切片 info= mode…
""" 核心: from django import formsfrom django.forms import fieldsfrom django.forms import widgets class table_name(forms.Form) 自定义字段名 = fields.字段数据类型(字段参数) 字段数据类型: 基本字段: fields.CharField() #字符串类型 fields.IntegerField() #整型类型 fields.FloatField(…