- 博客(92)
- 资源 (13)
- 收藏
- 关注
原创 192.gulp-concat插件合并多个文件
因为在网页的开发中,为了加快网页渲染的速度,如果我们的js文件比较多的话,就可以使用gulp-concat插件,将多个js文件合并成一个文件,该插件的安装同样是在终端窗口执行命令:npm install gulp-concat --save-dev.示例代码如下(1):var gulp = require('gulp');var concat = require('concat');var...
2020-02-29 23:41:53 560
原创 191.gulp处理JavaScript文件的任务
处理js文件的主要操作是,将js文件进行丑化,需要使用到一个插件为gulp-uglify,同样,是需要在cmd窗口执行npm install gulp-uglify --save-dev;示例代码如下:var gulp =require('gulp');var uglify = require('gulp-uglify');var rename = require('gulp-rename'...
2020-02-29 23:39:08 208
原创 190.gulp给文件重命名
在cmd窗口进入项目所在的文件夹,执行:npm install gulp-rename --save-dev–save-dev就是将此安装包,安装在该项目中,并且将安装包记录到项目中的package.json中。由之前对css文件进行压缩处理的情况来看,可以很好地进行文件的压缩,但是压缩过后的文件,保存到另外一个文件夹中还是原来未压缩的时候的文件名,这样的话,在进行引用的时候,他就不知道到底是...
2020-02-29 23:36:38 659
原创 189.gulp创建处理css文件任务
在cmd窗口执行命令:npm install gulp-cssnano,该插件为npm管理的一个包,其实npm就相当于是Python中的pip,pip是Python包的管理工具,而npm就是node包的管理工具。对于css文件的处理,主要就是将文件进行压缩,对css文件进行压缩只是依靠gulp包还是不能进行的,同样需要一个gulp的插件,gulp-cssnano,该插件可以将css文件进行压缩的...
2020-02-29 23:34:20 156
原创 188.gulp创建任务
1.通过required语句即可以引用已经安装的第三方依赖包,这个required只能医用当前项目安装的依赖包,不能引用全局下的,required语法是node.js独有的,只能在node.js环境下使用。2.gulp.task用来创建一个任务,gulp.task的一个参数是命令行的名字,第二个参数是一个函数,就是执行这个命令的时候,执行什么样的操作。3.如果想要执行该任务greet就可以在命...
2020-02-29 23:31:57 549
原创 187.gulp介绍和安装
安装gulp使用gulp自动化开发流程,配置好gulp后,可以自动给我们处理好一些工作,比如写完css后,要压缩成.min.css,写完js后,要进行相关的图片压缩等,这些工作都可以让gulp帮我们完成。1.创建本地包管理环境使用npm init 可以在本地生成一个package.json文件,package.json文件用来记录当前这个项目依赖了哪些包,以后别人拿到项目之后,不需要将nod...
2020-02-29 23:28:23 80
原创 186.npm使用详解
npmnpm(Node Package Manager)在安装node.js的时候就会对应的安装相应的版本了,如果先使用npm,就需要首先指定使用的nvm版本,即使用命令:nvm use 6.4.0,然后就可以使用npm了。使用淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org。以后就可以使用cnpm就可以...
2020-02-29 23:18:51 99
原创 185.nvm和node.js环境配置
安装nvmnvm(Node Version Manager)是一个用来管理node版本的工具,我们之所以使用node,是因为我们需要使用node中的npm(Node Package Manager)使用npm的目的是为了能够方便的管理一些前端开发的包!nvm的安装非常简单,步骤如下:安装nvm, Windows 10系统链接:https://github.com/coreybutler/nvm...
2020-02-25 12:23:33 928
原创 171.补充-在模板中添加权限控制
在模板中使用权限:在settings.TEMPLATES.OPTIONS.context_process下,因为添加了django.auth.context_processors.auth上下文处理器,因此,在模板中可以直接通过perms来获取用户的所有权限,示例代码如下:<!DOCTYPE html><html lang="en"><head> ...
2020-02-24 11:33:20 112
原创 170.分组-group、permission、user的操作
分组1.Group.objects.create(group_name):创建分组。2.group.permissions:某个分组上的权限。多对多关系。(1)group.permissions.add():添加权限。(2)group.permissions.remove():删除权限。(3)group.permissions.clear():清除所有权限。(4)user.get_gr...
2020-02-24 11:33:04 466
原创 内置中间件CommonMiddleware
django.middleware.common.CommonMiddleware:通用的中间件(1)如果网站在设计的时候,url带有“/”,而用户在访问的时候没有加上“/”,则这个中间件就会自动跳转至与用户访问的url相似的url。例如:在我们定义url的时候有:http://127.0.0.1:8000/list/ ,但是用户在访问的时候只输入了:http://127.0.0.1:8000...
2020-02-23 22:22:17 564
原创 Django内置的中间件
内置中间件1. django.middleware.gzip.GZipMiddleware:相应数据进行压缩。如果内容长度少于200个长度,那么就不会压缩。在settings.py文件中配置MIDDLEWARE,添加:django.middleware.gzip.GZipMiddleware中间件,之后,在浏览器中访问网页,查看Response Headers中的Content-Lengt...
2020-02-23 22:20:00 502
原创 144.中间件的原理和定义方式详解
中间件中间件是在request和response处理过程中的一个插件。比如request到达视图四千,我们可以定义中间件来做一些相关的事情,比如可以判断这个用户有没有登录,如果登录了,就绑定一个对象到request上,也可以在response到达浏览器之前,做一些相关的处理,比如想要统一在response上设置一些cookie信息等。自定义中间件中间件所处的位置没有规定,只要是放到项目中即可...
2020-02-23 22:17:30 401
原创 141.内置上下文处理器debug、request、auth、messages、media、static、csrf
上下文处理器上下文处理器可以返回一些数据,在全局模板中都可以使用,比如登录后的用户数据,在很多页面中都需要使用,那么我们就可以方在上下文处理器中,就没有必要在每个视图中返回这个对象了。在settings.py.TEMPLATES.OPTIONS.context_processors中,有许多内置的上下文处理器,这些上下文处理器的作用如下:(1)django.template.context_...
2020-02-23 22:15:35 409 1
原创 139.用户系统案例
1. 在models.py文件中定义一个用户模型User,示例代码如下:from django.db import models<!--导入验证器模块-->from django.core import validatorsclass User(models.Model): username = models.CharField(max_length=30) ...
2020-02-23 22:12:12 148
原创 138.更改session的存储机制
修改session的存储机制:默认情况下,session数据时存储到数据库中,当然也可以将session数据存储到其他地方。可以通过设置SESSION_ENGINE来更改session的存储位置,这个可配置为以下几种方案:1.django.contrib.session.backends.db:使用数据库,默认就是这种方案。2.django.contrib.sessions.backends...
2020-02-23 22:08:17 174
原创 137.在Django中操作session
在Django中操作session在django中session默认情况下是存储在服务器的数据库中的,在表中会根据sessionid来提取指定的session数据,然后再把这个sessionid放到cookie中发送给浏览器存储,浏览器下次在服务器发送请求的时候会自动的把所有的cookie信息发送给服务器,服务器再从cookie中获取sessionid,然后再从数据库中获取session数据。但...
2020-02-23 22:06:19 296
原创 135.在django中操作cookie
操作cookie设置cookie设置cookie是设置值给浏览器的,因此我们可以通过response的对象来设置,可以通过HttpResponse的对象或者是HttpResponseBase的子类对象来设置,设置cookie可以通过response.set_cookie来设置,这个方法的相关参数如下:(1)key:这个cookie的key。(2)value:这个cookie的value。...
2020-02-23 22:05:00 181
原创 134.cookie、session的工作机制
cookie和session(1)cookie:在网站中,http请求时无状态的,也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求的是哪个用户(在中国我们因为IP地址不足就会在同一个局域网下使用同一个公网ip地址,如果在同一个时间段有多位用户访问同一个网站的话,该网站就不能识别到底是哪个用户发起的请求了)。而cookie就是为了解决这个问题出现的,第一次登录服...
2020-02-23 22:03:23 118
原创 133.在django中使用memcached
1. 在django中使用memcached,可以在settings.py文件中DATABASES变量下面配置CACHES缓存相关配置信息,只允许本机连接memcached就可以设置LOCATION为:127.0.0.1:11211。示例代码如下:# memcached settingsCACHES = { 'default': { 'BACKEND': 'django...
2020-02-23 22:01:36 289
原创 127.限制上传文件的类型
限制文件的扩展名如果想要限制文件的扩展名,就要用到表单来限制。我们可以使用普通的Form表单也可以使用ModelForm表单,直接从模型中读取字段。示例代码如下:上传图片上传图片和上传普通文件一样,上传图片的时候Django会判断上传的图片的格式(除了判断后缀名,还会判断是否是可用的图片),如果不是那么,就会验证失败,我们首先来定义一个包含ImageField的模型,示例代码如下:from...
2020-02-23 21:59:51 1233
原创 126.自动处理上传的文件,获取上传文件的url
使用模型来处理上传的文件:在定义模型的时候,我们可以给存储的文件的字段指定为FileField,这个field可以传递一个upload_to参数,用来指定上传上来的文件保存到哪里,比如我们让它保存到项目的myfiles文件夹下,示例代码如下:from django.db import modelsclass Article(models.Model): title = model...
2020-02-23 21:58:23 479
原创 125.文件上传基本流程
文件上传文件上传是网站开发中的常见功能,Django中是怎么实现文件上传功能的呢?1.前端HTML代码实现1.在前端我们需要填入一个form标签,然后在这个form标签中指定enctype=‘mutipart/form-data’。不指定的话就不能上传文件。2.在form标签中添加一个input标签,然后指定input标签的name,以及type=‘file’。<form acti...
2020-02-23 21:56:03 277
原创 169.权限-权限验证装饰器
1.使用django.contrib.auth.decorators.permission_required可以非常方便的检查用户是否拥有这个权限,如果有,那么久可以进入到指定的视图中,如果不拥有,那么就会报一个400的错误。2.在用户访问article表之前,判断用户是否登录,并且有访问article表的权限。判断用户是否登录就可以使用到user对象的is_authenticated方法,如...
2020-02-23 21:49:35 538
原创 168.权限-用户权限和权限相关操作
(1)set():一次性的为用户添加多个权限,权限可以放在一个列表中。def user_permission(request): # 获取当前数据库中第一为user用户 user = User.objects.get(pk=1) # 首先获取当前app下的User模型在django_content_type表中的信息 content_type = Content...
2020-02-23 21:48:15 158
原创 167.权限-添加权限的两种方式
Django中内置了权限功能,他的权限都是针对表与模型级别的,比如对某个模型上的数据是否可以进行增删改查操作,它不能针对数据级别,比如针对某个表的某条数据进行增删改查操作如果要实现数据级别的,考虑使用django.guardian.1.通过定义模型的方式添加权限(1)权限都是django.contrib.auth.Permission的实例。这个模型包含三个字段:name、codename、c...
2020-02-23 21:46:40 398
原创 166.登录、退出登录以及登录限制案例
权限和分组登录、注销和登录限制1. 登录在使用authenticate进行验证后,如果验证通过了,那么就会返回一个user对象,拿到user对象之后,可以使用django.contrib.auth.login进行登录,部分示例代码如下:user = authenticate(username=username, password=password)if user is not None ...
2020-02-23 15:33:51 737
原创 165.扩展User模型-继承AbstractBaseUser
继承自AbstractBaseUser模型如果你想要修改默认的验证方式,并且对于User模型上的一些字段不想要,那么可以自定义一个模型,然后继承自AbstractBaseUser,再添加你想要的字段,这种方式会比较麻烦,最好是确定自己对Django比较了解才推荐使用。(1)创建模型, 示例代码如下:from django.db import modelsfrom django.contri...
2020-02-23 00:05:04 410 1
原创 164.扩展User模型-继承AbstractUser
继承自AbstractUser:如果Abstractuser中定义的字段不能够满足你的项目的要求,并且不想要修改原来User对象上的一些字段,只是想要增加一些字段,那么这时候可以直接继承自django.contrib.auth.models.AbstractUser。其实,这个类也是django.contrib.auth.models.User 的父类。(1)比如我们想要在原来的User模型的...
2020-02-22 23:56:39 469 1
原创 163.扩展User模型-一对一方式扩展
一对一外键如果你对用户验证方法authenticate没有更多的要求,就是使用username和password就可以完成用户的登录验证工作,但是想要在原来的模型的基础上添加新的字段,那么就可以使用一对一外键的方式,定义一个用户的扩展模型,示例代码如下:from django.contrib.auth.models import Userfrom django.db import model...
2020-02-22 23:54:34 189
原创 162.扩展User模型-使用Proxy模型
扩展用户模型:Django内置的User模型虽然已经足够强大了,但是有时候还是不能满足我们的需求,比如在验证用户登录的时候,它用的是用户名作为验证,而我们有时候需要通过手机号码或者是邮箱进行验证,还有比如我们想要增加一些字段,那么这时候我们就需要扩展用户模型了,扩展用户模型有多种方式。1.设置Proxy模型(设置代理的形式):如果你对Django中提供的字段,已经验证方式都比较满意,最主要的...
2020-02-22 23:52:59 196
原创 161.内置User模型的基本使用
User模型user模型是这个框架的核心部分,他的完整路径是在django.contrib.auth.models.User。对User对象做一个简单的了解。字段:内置的User模型有以下字段:(1)username:用户名,150字符以内,可以包含数字和英文字符,以及_ 、@、+、.和-字符。不能为空,并且必须唯一,所以django在判定是否是正确的用户时,可以通过这个唯一性字段进行判断...
2020-02-22 23:48:06 303
原创 160.验证和授权系统的概述
验证和授权概述Django有一个内置的授权系统,它用来处理用户、分组、权限以及基于cookie的会话系统。Django的授权系统包括验证和授权两部分。验证是验证这个用户是否是他生成的那个人(比如用户名和密码验证,角色验证),授权是给与他的相应的权限。Django内置的权限系统包括以下方面:(1)用户。(2)权限。(3)分组。(4)一个可以分配的密码哈希系统。(5)一个可插拔的后台管理系...
2020-02-22 23:45:54 342
原创 159.SQL注入的实现和防御措施
sql注入:所谓sql注入,就是通过把sql命令插入到表单中或页面请求的查询字符串中,最终达到欺骗服务器执行恶意的sql命令。具体来说,它是利用现有的应用程序,将(恶意的)sql命令注入到后台数据库引擎执行的能力,它也可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者的意图去执行sql语句。比如先前的很多影视网站泄露VIP会员密码大多数就是通过We...
2020-02-22 23:43:28 253
原创 158.Clickjacking点击劫持攻击实现和防御措施
clickjacking攻击:clickjacking攻击又称为点击劫持攻击,是一种在网页中将恶意代码等隐藏在看似无害的内容(如按钮)之下,并诱使用户点击的手段。clickjacking攻击场景:用户进入到一个网页中,里面包含了一个按钮(查看照片),但是这个按钮上面加载了一个透明的iframe标签,这个iframe标签加载了另外一个网页,并且他将这个网页的某个按钮和网页中的按钮(查看照片)重...
2020-02-22 23:41:27 389
原创 155.XSS攻击原理
XSS攻击:XSS(Cross Site Script)攻击叫做跨站脚本攻击,他的原理是用户使用具有XSS漏洞的网站的时候,向这个网站提交一些恶意代码,当用户在访问这个网站的某个页面的时候,这个恶意的代码就会被执行,从而来破坏网页的结构,获取用户的隐私信息等。XSS攻击场景:比如现在有一个发布帖子的入口,如果用户在提交数据的时候,提交一段js代码,比如,,然后网页在渲染的时候直接将该代码渲染...
2020-02-22 23:39:23 326
原创 154.Ajax处理csrf防御
在普通的form表单中采用post请求提交数据,可以在form表单的method=post的form标签下面,添加一个csrf_token标签{% csrf_token %},或者是直接手动的添加一个input标签,<input type=‘text’ name=‘csrfmiddlewaretoken value=’{{ csrf_token }}’>,都可以在form表单中做好cs...
2020-02-22 23:37:22 257
原创 148.CSRF攻击原理分析、防御、装饰器、中间件、IFrame以及js实现csrf攻击
CSRF攻击概述:CSRF(Cross Site Request Forgery 跨站域请求伪造)是一种网站攻击的方式,它在2007年曾被列为互联网20大安全隐患之一。其他的安全隐患,比如SQL脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CSRF还是很陌生的,Gmail在2007年底也存在csrf漏洞,从而被黑客攻击而使Gmail...
2020-02-22 23:34:23 684
原创 123.ModelForm的使用
ModelForm在我们的实例中,需要通过models.py中定义相关的模型字段,之后在forms.py中同样需要定义每个字段进行相应的验证,这样的话,我们会需要重复定义,这样的话,就相对比较麻烦,所以为了简化我们的操作。我们可以使用ModelForm,将二者进行结合。1.models.py文件中示例代码如下:from django.db import modelsfrom django....
2020-02-15 07:23:17 224
原创 122.简化表单错误信息的提取
在返回表单的错误信息的时候,可以通过forms.errors.get_json_data()返回字典类型的错误信息,但是这种错误信息,在观察的时候,感觉不是太友好,例如:{‘telephone’: [{‘message’: ‘188833332225您输入的手机号已经注册了,请确定之后重新输入!’, ‘code’: ‘’}]}会显示很多前端并不关心的东西,比如’code’:’’,所以我们就可以简化...
2020-02-15 07:17:04 118
课程设计网络规划.doc
2020-05-23
WLAN 典型配置案例集.zip
2020-04-01
毕业答辩PPT模板.zip
2020-03-14
openssl.zip
2019-12-13
维基百科中文数据处理---Word2vec.ipynb
2019-12-06
SecureCRT.zip
2019-12-06
简历模板10个.zip
2019-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人