摘要:
django.middleware.common.CommonMiddleware:通用的中间件 (1)如果网站在设计的时候,url带有“/”,而用户在访问的时候没有加上“/”,则这个中间件就会自动跳转至与用户访问的url相似的url。 例如:在我们定义url的时候有:http://127.0.0. 阅读全文
摘要:
内置中间件 1. django.middleware.gzip.GZipMiddleware:相应数据进行压缩。如果内容长度少于200个长度,那么就不会压缩。 之后,在浏览器中访问网页,查看Response Headers中的Content Length与没有开启GZip中间件之前的Content 阅读全文
摘要:
中间件 中间件是在request和response处理过程中的一个插件。比如request到达视图四千,我们可以定义中间件来做一些相关的事情,比如可以判断这个用户有没有登录,如果登录了,就绑定一个对象到request上,也可以在response到达浏览器之前,做一些相关的处理,比如想要统一在resp 阅读全文
摘要:
上下文处理器 上下文处理器可以返回一些数据,在全局模板中都可以使用,比如登录后的用户数据,在很多页面中都需要使用,那么我们就可以方在上下文处理器中,就没有必要在每个视图中返回这个对象了。 在settings.py.TEMPLATES.OPTIONS.context_processors中,有许多内置 阅读全文
摘要:
1. 在models.py文件中定义一个用户模型User,示例代码如下: 2.实现用户在点击注册的时候可以将用户提交的信息保存到数据库中,如果用户用户输入信息不正确,会让重新用户输入;如果用户已经注册,并且在数据库中已经有了用户注册的信息,就将用户在表单中提交上来的数据与数据库中的数据进行比对,如果 阅读全文
摘要:
修改session的存储机制: 默认情况下,session数据时存储到数据库中,当然也可以将session数据存储到其他地方。可以通过设置SESSION_ENGINE来更改session的存储位置,这个可配置为以下几种方案: 1.django.contrib.session.backends.db: 阅读全文
摘要:
在Django中操作session 在django中session默认情况下是存储在服务器的数据库中的,在表中会根据sessionid来提取指定的session数据,然后再把这个sessionid放到cookie中发送给浏览器存储,浏览器下次在服务器发送请求的时候会自动的把所有的cookie信息发送 阅读全文
摘要:
操作cookie 设置cookie 设置cookie是设置值给浏览器的,因此我们可以通过response的对象来设置,可以通过HttpResponse的对象或者是HttpResponseBase的子类对象来设置,设置cookie可以通过response.set_cookie来设置,这个方法的相关参数 阅读全文
摘要:
cookie和session (1)cookie:在网站中,http请求时无状态的,也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求的是哪个用户(在中国我们因为IP地址不足就会在同一个局域网下使用同一个公网ip地址,如果在同一个时间段有多位用户访问同一个网站的话, 阅读全文
摘要:
1. 在django中使用memcached,可以在settings.py文件中DATABASES变量下面配置CACHES缓存相关配置信息,只允许本机连接memcached就可以设置LOCATION为:127.0.0.1:11211。示例代码如下: 2. 如果想让多台机器都可以使用memcached 阅读全文
摘要:
限制文件的扩展名 如果想要限制文件的扩展名,就要用到表单来限制。我们可以使用普通的Form表单也可以使用ModelForm表单,直接从模型中读取字段。示例代码如下: 上传图片 上传图片和上传普通文件一样,上传图片的时候Django会判断上传的图片的格式(除了判断后缀名,还会判断是否是可用的图片),如 阅读全文
摘要:
使用模型来处理上传的文件: 在定义模型的时候,我们可以给存储的文件的字段指定为FileField,这个field可以传递一个upload_to参数,用来指定上传上来的文件保存到哪里,比如我们让它保存到项目的myfiles文件夹下,示例代码如下: 调用完,就会把文件保存到files文件夹下面,并且会将 阅读全文
摘要:
文件上传 文件上传是网站开发中的常见功能,Django中是怎么实现文件上传功能的呢? 1.前端HTML代码实现 1.在前端我们需要填入一个form标签,然后在这个form标签中指定enctype='mutipart/form data'。不指定的话就不能上传文件。 2.在form标签中添加一个inp 阅读全文
摘要:
1.使用django.contrib.auth.decorators.permission_required可以非常方便的检查用户是否拥有这个权限,如果有,那么久可以进入到指定的视图中,如果不拥有,那么就会报一个400的错误。 2.在用户访问article表之前,判断用户是否登录,并且有访问arti 阅读全文
摘要:
(1)set():一次性的为用户添加多个权限,权限可以放在一个列表中。 (2)add():为用户user添加权限,不能是列表,示例代码如下: add()函数中可以是列表,但是必须是打散开的,即在列表前面有一个“ ”,示例代码如下: (3)clear():将user上的所有权限一次性全部删除。示例代码 阅读全文
摘要:
Django中内置了权限功能,他的权限都是针对表与模型级别的,比如对某个模型上的数据是否可以进行增删改查操作,它不能针对数据级别,比如针对某个表的某条数据进行增删改查操作如果要实现数据级别的,考虑使用django.guardian. 1.通过定义模型的方式添加权限 (1)权限都是django.con 阅读全文
摘要:
权限和分组 登录、注销和登录限制 1. 登录 在使用authenticate进行验证后,如果验证通过了,那么就会返回一个user对象,拿到user对象之后,可以使用django.contrib.auth.login进行登录,部分示例代码如下: 2. 注销: 注销、或者是退出登录,我们可以通过djan 阅读全文