博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django-admin、基本数据类型、csrf攻击
阅读量:5251 次
发布时间:2019-06-14

本文共 3109 字,大约阅读时间需要 10 分钟。

django数据类型与mysql数据类型比较

1659176-20190717162419665-1437184460.png

参数

max_length=32null=True  : 可以设置为nulldb_index=True : 设置索引default : 设置默认值unique : 设置唯一索引                            db_column: 设置一个列名                        unique_together: 联合唯一索引index_together :普通联合索引class Meta:        unique_together = (        ('money', 'us_id'),                                    ....        )        index_together = (        ('money', '')                                    ....        )

django-admin

django自带的管理后台系统命令生成:    python3 manage.py  createsuperuser想要管理自己生成的表:    admin.py:    from app01 import models    admin.site.register(models.UserInfo)            django-admin中的列类型:EmailField(CharField):    - 字符串类型,Django Admin以及ModelForm中提供验证机制IPAddressField(Field)     - 字符串类型,Django Admin以及ModelForm中提供验证 IPV4 机制GenericIPAddressField(Field)    - 字符串类型,Django Admin以及ModelForm中提供验证 Ipv4和Ipv6- 参数:    protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"    unpack_ipv4, 如果指定为True,则输入::ffff:192.0.2.1时候,可解析为192.0.2.1,开启刺功能,需要protocol="both"URLField(CharField)    - 字符串类型,Django Admin以及ModelForm中提供验证 URLSlugField(CharField)    - 字符串类型,Django Admin以及ModelForm中提供验证支持 字母、数字、下划线、连接符(减号)CommaSeparatedIntegerField(CharField)    - 字符串类型,格式必须为逗号分割的数字UUIDField(Field)    - 字符串类型,Django Admin以及ModelForm中提供对UUID格式的验证FileField(Field)    djagno-admin中的参数 :    verbose_name        Admin中显示的字段名称                blank               Admin中是否允许用户输入为空    editable            Admin中是否可以编辑    help_text           Admin中该字段的提示信息    choices             Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作    choices = (        (1, '男'),        (2, '女')        )    gender = models.IntegerField(choices=chocies)                id name  gender (男女)

CSRF攻击

开启全局的csrf验证

  1. settings中,打开注释 'django.middleware.csrf.CsrfViewMiddleware',
  2. 表单中,开启csrf_token
{% csrf_token %}

如上, 全站都会进行csrf验证

关闭部分的csrf验证:

  1. settings中,打开注释 ====》'django.middleware.csrf.CsrfViewMiddleware',
  2. views中,引入如下函数
from django.views.decorators.csrf import csrf_exempt                    @csrf_exemptdef csrf1(request):if request.method == 'GET':    return render(request, 'csrf1.html')else:    return HttpResponse('ok')

如上, 即便全局开启验证,但是可以使用装饰器进行特殊处理,不使用

开启部分的CSRF验证:

  1. settings中,注释 ====》#'django.middleware.csrf.CsrfViewMiddleware',
  2. views中,引入如下函数
from django.views.decorators.csrf import csrf_protect@csrf_protectdef csrf1(request):    if request.method == 'GET':        return render(request, 'csrf1.html')    else:        return HttpResponse('ok')

如上, 即便全局关闭验证,但是可以使用装饰器进行特殊处理

CBV:

若是CBV:

from django.utils.decorators import method_decorator@method_decorator(csrf_protect, name='get')class User(View):def get(self, request):    passdef post(self, request):    pass

ajax:

csrftoken = $('input[name="csrfmiddlewaretoken"]').val()$.ajax({type:"POST",url : '/xxxx/',data: {"name":'xxxx'},headers : {'X-CSRFToken': token},success: function(){console.log(data)}})# 第一种data:{'csrfmiddlewaretoken':$('[name="csrfmiddlewaretoken"]').val()}# 第二种data:{'csrfmiddlewaretoken':'{
{ csrf_token }}'}

xxx.html

    
Title
{% csrf_token %}

转载于:https://www.cnblogs.com/huanghongzheng/p/11201749.html

你可能感兴趣的文章
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
S5PV210根文件系统的制作(一)
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>