我们都知道Django建立的是动态网站,正常情况下,每次请求过来都经历了这样一个过程: 接收请求 -> url路由 -> 视图处理 -> 数据库读写 -> 视图处理 -> 模版渲染 -> 返回请求 设想这么个场景,一个用户或者大量用户都对某个页面非常感兴趣,出现了大量实质相同的请求,如果每次请求都采取上面的流程,将出现大量的重复工作,尤其是大量无谓的数据库读写. 要解决这个问题,有很多办法,其中一个就是使用缓存. 缓存的思路是,既然已经处理过一次,得到了结果,就把当前结…
Django使用Python内置的logging模块实现它自己的日志系统. 如果你没有使用过logging模块,请参考Python教程中的相关章节. 直达链接<logging模块详解>. 在Python的logging模块中,主要包含下面四大金刚: Loggers: 记录器 Handlers:处理器 Filters: 过滤器 Formatters: 格式化器 下文假定你已经对logging模块有一定的了解.否则,可能真的像看天书...... 一.在Django视图中使用logging 使用方法…
代码: #-*- coding:utf- -*- """ The handle active user mail send """ from django.core.management.base import BaseCommand, CommandError from django.db import models #from placeholders import * import os import time import logging…
我们可以通过manage.py编写和注册自定义的命令. 自定义的管理命令对于独立脚本非常有用,特别是那些使用Linux的crontab服务,或者Windows的调度任务执行的脚本.比如,你有个需求,需要定时清空某篇文章下面的评论,一种解决方案就是写一个django-admin命令,再写一个运行该命令的独立脚本,最后通过crontab服务,定时执行该脚本. 下面,我们将为教程最开始的第一个Django应用中的polls应用编写一个自定义的closepoll命令. 一.创建management/co…
因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的.通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于静态网站,这可能不是个问题,而对于动态网站,尤其是京东.天猫.银行等购物或金融网站,无法识别用户并保持用户状态是致命的,根本就无法提供服务.你可以尝试将浏览器的cookie功能关闭,你会发现将无法在京东登录和购物. 为了保持连接状态,网站会通过用户的浏览器在用户机器内被限定的硬盘位置中写入一些数据,也…
Django自带一个用户认证系统,用于处理用户账户.群组.许可和基于cookie的用户会话. Django的认证系统包含了身份验证和权限管理两部分.简单地说,身份验证用于核实某个用户是否合法,权限管理则是决定一个合法用户具有哪些权限.往后,'认证'这个词同时代指上面两部分的含义. Django的认证系统主要包括下面几个部分: 用户 许可 组 可配置的密码哈希系统 用于用户登录或者限制访问的表单和视图工具 可插拔的后台系统 类似下面的问题,不是Django认证系统的业务范围,请使用第三方工具: 密…
目录 一.Django内置命令选项 check dbshell diffsettings flush makemigrations migrate runserver shell startapp startproject test 二.app提供的命令 changepassword createsuperuser clearsessions collectstatic 三. 共有参数 --pythonpath PYTHONPATH --settings SETTINGS --traceback…
Django的默认配置文件中,包含上百条配置项目,其中很多是我们'一辈子'都不碰到或者不需要单独配置的,这些项目在需要的时候再去查手册. 强调:配置的默认值不是在settings.py文件中!不要以为settings.py中的配置值就是默认值,参考前文.settings.py是使用django-admin startproject xxx命令时,额外给我们创建的. 下面介绍的是61个相对比较常用和重要的配置项,按字母顺序排序,但是最后部分是cache.auth.message.session.s…
django自带一套信号机制来帮助我们在框架的不同位置之间传递信息.也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)发送给一组接受者(receivers). 信号系统包含以下三要素: 发送者-信号的发出方 信号-信号本身 接收者-信号的接受者 Django内置了一整套信号,下面是一些比较常用的: django.db.models.signals.pre_save & django.db.models.signals.post_save…
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:无他,祝大家年会都中奖!) 第六章 跟踪用户动作 在上一章中,你在你的项目中实现了AJAX视图(views),通过使用jQuery并创建了一个JavaScript书签在你的平台中分享别的网站的内容. 在本章中,你会学习如何创建一个粉丝系统以及创建一个用户活动流(activity stream).你会发现Django信号(signal…