![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Django-python从入门到精通336
文章平均质量分 85
长大的小蚂蚁
高分英文电影《教父》中有句话令人受益终生:“一分钟看清事物本质的人与花半辈子也看不清事物本质的人,他们的人生将会有很大不同。”
展开
-
template-web.js:3 Uncaught TemplateError: template not found: Cannot read property 'value' of null
在使用arttemplate,通过js添加模板的时候,出现报错:template-web.js:3 Uncaught TemplateError: template not found: Cannot read property ‘value’ of null。示例代码如下:(1)html代码:{% extends 'front/base/front_base.html' %}{% bl...原创 2020-04-17 17:39:46 · 6353 阅读 · 0 评论 -
antAuth.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor
在继承AbstractBaseUser和PermissionsMixin重新定义User模型的时候,如果没有在项目的settings.py文件中定义AUTH_USER_MODEL = “app名.User”,就会出现该错误。原因是因为在创建Django项目的时候,就会自动创建一个User模型,如果你重新定义自己的User模型的时候,并且没有指定AUTH_USER_MODEL = “app名称.类...原创 2020-04-16 20:38:34 · 1319 阅读 · 0 评论 -
Django 开发,在上传图片的时候出现:'X-Frame-Options' to 'deny'成功解决办法
浏览器默认遵循X-Frame-Options协议头,它表明一个资源是否允许加载到frame或者iframe中。如果响应包含值为SAMEORIGIN的协议头,浏览器会在frame中加载同源请求的资源。如果协议头设置为DENY,浏览器会在加载frame时屏蔽所有资源,无论请求来自于哪个站点。Django中提供了一些简单的方法来在你站点的响应中包含这个协议头:(1)一个简单的中间件,在所有响应中设置...原创 2020-04-05 12:26:53 · 1198 阅读 · 0 评论 -
html、scss、js实现登录与注册功能实例代码
首先看一下效果图,登录界面,后面的背景图片可以替换成任意喜欢的图片,当然也可以设置为纯色背景:之后点击“立即注册”就可以来到注册页面:接下来就直接上代码了,只设计前端界面部分:1. html部分:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> &...原创 2020-03-21 18:24:54 · 717 阅读 · 0 评论 -
css中设置背景颜色、背景图片
对于在css中设置背景分为两种形式:1. 设置纯色为背景。背景background可以设置为纯色的背景颜色。2. 设置图片为背景。可以设置对象背景为图片,如果背景是图片,可以让图片重复平铺横铺,或将图片作为对象背景固定在对象任何位置。设置背景样式:1. background-color: 设置颜色作为对象背景颜色;2. background-image: 设置图片作为背景图片;3. b...原创 2020-03-21 11:02:26 · 6947 阅读 · 0 评论 -
Deep Learning with Python中英文版(附源码)
链接:https://pan.baidu.com/s/1_5HuW3i4iVW7g_VDC2ZRCA提取码:57xn原创 2020-03-01 19:20:58 · 7292 阅读 · 40 评论 -
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 · 550 阅读 · 0 评论 -
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 · 197 阅读 · 0 评论 -
190.gulp给文件重命名
在cmd窗口进入项目所在的文件夹,执行:npm install gulp-rename --save-dev–save-dev就是将此安装包,安装在该项目中,并且将安装包记录到项目中的package.json中。由之前对css文件进行压缩处理的情况来看,可以很好地进行文件的压缩,但是压缩过后的文件,保存到另外一个文件夹中还是原来未压缩的时候的文件名,这样的话,在进行引用的时候,他就不知道到底是...原创 2020-02-29 23:36:38 · 636 阅读 · 0 评论 -
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 · 148 阅读 · 0 评论 -
188.gulp创建任务
1.通过required语句即可以引用已经安装的第三方依赖包,这个required只能医用当前项目安装的依赖包,不能引用全局下的,required语法是node.js独有的,只能在node.js环境下使用。2.gulp.task用来创建一个任务,gulp.task的一个参数是命令行的名字,第二个参数是一个函数,就是执行这个命令的时候,执行什么样的操作。3.如果想要执行该任务greet就可以在命...原创 2020-02-29 23:31:57 · 536 阅读 · 0 评论 -
187.gulp介绍和安装
安装gulp使用gulp自动化开发流程,配置好gulp后,可以自动给我们处理好一些工作,比如写完css后,要压缩成.min.css,写完js后,要进行相关的图片压缩等,这些工作都可以让gulp帮我们完成。1.创建本地包管理环境使用npm init 可以在本地生成一个package.json文件,package.json文件用来记录当前这个项目依赖了哪些包,以后别人拿到项目之后,不需要将nod...原创 2020-02-29 23:28:23 · 66 阅读 · 0 评论 -
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 · 90 阅读 · 0 评论 -
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 · 900 阅读 · 0 评论 -
171.补充-在模板中添加权限控制
在模板中使用权限:在settings.TEMPLATES.OPTIONS.context_process下,因为添加了django.auth.context_processors.auth上下文处理器,因此,在模板中可以直接通过perms来获取用户的所有权限,示例代码如下:<!DOCTYPE html><html lang="en"><head> ...原创 2020-02-24 11:33:20 · 102 阅读 · 0 评论 -
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 · 455 阅读 · 0 评论 -
内置中间件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 · 544 阅读 · 0 评论 -
Django内置的中间件
内置中间件1. django.middleware.gzip.GZipMiddleware:相应数据进行压缩。如果内容长度少于200个长度,那么就不会压缩。在settings.py文件中配置MIDDLEWARE,添加:django.middleware.gzip.GZipMiddleware中间件,之后,在浏览器中访问网页,查看Response Headers中的Content-Lengt...原创 2020-02-23 22:20:00 · 480 阅读 · 0 评论 -
144.中间件的原理和定义方式详解
中间件中间件是在request和response处理过程中的一个插件。比如request到达视图四千,我们可以定义中间件来做一些相关的事情,比如可以判断这个用户有没有登录,如果登录了,就绑定一个对象到request上,也可以在response到达浏览器之前,做一些相关的处理,比如想要统一在response上设置一些cookie信息等。自定义中间件中间件所处的位置没有规定,只要是放到项目中即可...原创 2020-02-23 22:17:30 · 385 阅读 · 0 评论 -
141.内置上下文处理器debug、request、auth、messages、media、static、csrf
上下文处理器上下文处理器可以返回一些数据,在全局模板中都可以使用,比如登录后的用户数据,在很多页面中都需要使用,那么我们就可以方在上下文处理器中,就没有必要在每个视图中返回这个对象了。在settings.py.TEMPLATES.OPTIONS.context_processors中,有许多内置的上下文处理器,这些上下文处理器的作用如下:(1)django.template.context_...原创 2020-02-23 22:15:35 · 397 阅读 · 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 · 141 阅读 · 0 评论 -
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 · 160 阅读 · 0 评论 -
137.在Django中操作session
在Django中操作session在django中session默认情况下是存储在服务器的数据库中的,在表中会根据sessionid来提取指定的session数据,然后再把这个sessionid放到cookie中发送给浏览器存储,浏览器下次在服务器发送请求的时候会自动的把所有的cookie信息发送给服务器,服务器再从cookie中获取sessionid,然后再从数据库中获取session数据。但...原创 2020-02-23 22:06:19 · 283 阅读 · 0 评论 -
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 · 157 阅读 · 0 评论 -
134.cookie、session的工作机制
cookie和session(1)cookie:在网站中,http请求时无状态的,也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求的是哪个用户(在中国我们因为IP地址不足就会在同一个局域网下使用同一个公网ip地址,如果在同一个时间段有多位用户访问同一个网站的话,该网站就不能识别到底是哪个用户发起的请求了)。而cookie就是为了解决这个问题出现的,第一次登录服...原创 2020-02-23 22:03:23 · 107 阅读 · 0 评论 -
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 · 276 阅读 · 0 评论 -
127.限制上传文件的类型
限制文件的扩展名如果想要限制文件的扩展名,就要用到表单来限制。我们可以使用普通的Form表单也可以使用ModelForm表单,直接从模型中读取字段。示例代码如下:上传图片上传图片和上传普通文件一样,上传图片的时候Django会判断上传的图片的格式(除了判断后缀名,还会判断是否是可用的图片),如果不是那么,就会验证失败,我们首先来定义一个包含ImageField的模型,示例代码如下:from...原创 2020-02-23 21:59:51 · 1219 阅读 · 0 评论 -
126.自动处理上传的文件,获取上传文件的url
使用模型来处理上传的文件:在定义模型的时候,我们可以给存储的文件的字段指定为FileField,这个field可以传递一个upload_to参数,用来指定上传上来的文件保存到哪里,比如我们让它保存到项目的myfiles文件夹下,示例代码如下:from django.db import modelsclass Article(models.Model): title = model...原创 2020-02-23 21:58:23 · 462 阅读 · 0 评论 -
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 · 271 阅读 · 0 评论 -
169.权限-权限验证装饰器
1.使用django.contrib.auth.decorators.permission_required可以非常方便的检查用户是否拥有这个权限,如果有,那么久可以进入到指定的视图中,如果不拥有,那么就会报一个400的错误。2.在用户访问article表之前,判断用户是否登录,并且有访问article表的权限。判断用户是否登录就可以使用到user对象的is_authenticated方法,如...原创 2020-02-23 21:49:35 · 526 阅读 · 0 评论 -
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 · 153 阅读 · 0 评论 -
167.权限-添加权限的两种方式
Django中内置了权限功能,他的权限都是针对表与模型级别的,比如对某个模型上的数据是否可以进行增删改查操作,它不能针对数据级别,比如针对某个表的某条数据进行增删改查操作如果要实现数据级别的,考虑使用django.guardian.1.通过定义模型的方式添加权限(1)权限都是django.contrib.auth.Permission的实例。这个模型包含三个字段:name、codename、c...原创 2020-02-23 21:46:40 · 389 阅读 · 0 评论 -
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 · 713 阅读 · 0 评论 -
165.扩展User模型-继承AbstractBaseUser
继承自AbstractBaseUser模型如果你想要修改默认的验证方式,并且对于User模型上的一些字段不想要,那么可以自定义一个模型,然后继承自AbstractBaseUser,再添加你想要的字段,这种方式会比较麻烦,最好是确定自己对Django比较了解才推荐使用。(1)创建模型, 示例代码如下:from django.db import modelsfrom django.contri...原创 2020-02-23 00:05:04 · 393 阅读 · 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 · 448 阅读 · 1 评论 -
163.扩展User模型-一对一方式扩展
一对一外键如果你对用户验证方法authenticate没有更多的要求,就是使用username和password就可以完成用户的登录验证工作,但是想要在原来的模型的基础上添加新的字段,那么就可以使用一对一外键的方式,定义一个用户的扩展模型,示例代码如下:from django.contrib.auth.models import Userfrom django.db import model...原创 2020-02-22 23:54:34 · 177 阅读 · 0 评论 -
162.扩展User模型-使用Proxy模型
扩展用户模型:Django内置的User模型虽然已经足够强大了,但是有时候还是不能满足我们的需求,比如在验证用户登录的时候,它用的是用户名作为验证,而我们有时候需要通过手机号码或者是邮箱进行验证,还有比如我们想要增加一些字段,那么这时候我们就需要扩展用户模型了,扩展用户模型有多种方式。1.设置Proxy模型(设置代理的形式):如果你对Django中提供的字段,已经验证方式都比较满意,最主要的...原创 2020-02-22 23:52:59 · 183 阅读 · 0 评论 -
161.内置User模型的基本使用
User模型user模型是这个框架的核心部分,他的完整路径是在django.contrib.auth.models.User。对User对象做一个简单的了解。字段:内置的User模型有以下字段:(1)username:用户名,150字符以内,可以包含数字和英文字符,以及_ 、@、+、.和-字符。不能为空,并且必须唯一,所以django在判定是否是正确的用户时,可以通过这个唯一性字段进行判断...原创 2020-02-22 23:48:06 · 294 阅读 · 0 评论 -
160.验证和授权系统的概述
验证和授权概述Django有一个内置的授权系统,它用来处理用户、分组、权限以及基于cookie的会话系统。Django的授权系统包括验证和授权两部分。验证是验证这个用户是否是他生成的那个人(比如用户名和密码验证,角色验证),授权是给与他的相应的权限。Django内置的权限系统包括以下方面:(1)用户。(2)权限。(3)分组。(4)一个可以分配的密码哈希系统。(5)一个可插拔的后台管理系...原创 2020-02-22 23:45:54 · 333 阅读 · 0 评论 -
159.SQL注入的实现和防御措施
sql注入:所谓sql注入,就是通过把sql命令插入到表单中或页面请求的查询字符串中,最终达到欺骗服务器执行恶意的sql命令。具体来说,它是利用现有的应用程序,将(恶意的)sql命令注入到后台数据库引擎执行的能力,它也可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者的意图去执行sql语句。比如先前的很多影视网站泄露VIP会员密码大多数就是通过We...原创 2020-02-22 23:43:28 · 243 阅读 · 0 评论