django 发送邮件和缓存的实现代码


Posted in Python onJuly 18, 2018

发送邮件

概述:Django中内置了邮件发送功能,发送邮件需要使用SMTP服务,常用的免费服务器有:163、126、QQ

  • 注册并登陆163邮箱
  • 打开POP3/SMTP服务与IMAP/SMTP服务
  • 重置授权密码

配置

#邮件发送
EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST='smtp.163.com'
EMAIL_PORT=25
#发送邮件的邮箱
EMAIL_HOST_USER='clement@163.com'
#邮箱的授权密码
EMAIL_HOST_PASSWORD='xxxxxx'
#收件人看到的发件人
EMAIL_FROM='DAI<clement@163.com>'

发送

send_mail(subject, message, from_email, recipient_list)

from django.conf import settings
from django.core.mail import send_mail
def sendMail(request):
  msg = '<a href="http://127.0.0.1:8000/index/" rel="external nofollow" >点击激活</a>'
  send_mail("注册激活","",settings.EMAIL_FROM,["clement@163.com"],html_message=msg)
  return HttpResponse("邮件已发送")

缓存

概述:对于中等流量的网站来说,尽可能的减少开销是非常必要的。缓存数据就是为了保存那些需要很多计算资源的结果,这样的话就不必在下次重复消耗计算资源。

Django自带了一个健壮的缓存系统来保存动态页面,避免每次请求都重新计算。

Django提供了不同级别的缓存策略,可以缓存特定的视图的输出、可以仅仅缓存那些很难计算出来的部分、或者缓存整个网站

设置缓存

通过设置决定把数据缓存在哪里,是数据库中、文件系统中还是内存中

默认缓存

CACHES={
  'default':{
    'BACKEND':'django.core.cache.backends.locmem.LocMemCache',
    'TIMEOUT':60
  }
}

参数TIMEOUT:缓存的默认过期时间,以秒为单位

  • 默认为300秒
  • 设置为None,表示永不过期
  • 设置为0造成缓存立即失效

将缓存存储到redis

默认使用redis中的1数据库

安装

pip install django-redis-cache

配置

CACHES={
  'default':{
    'BACKEND':'redis_cache.cache.RedisCache',
    'LOCATION':'localhost:6379',
    'TIMEOUT':60
  }
}

单个view缓存

django.views.decorators.cache.cache_page装饰器用于对视图的输出进行缓存

from django.views.decorators.cache import cache_page

@cache_page(60 * 2)
def index(request):
  # return HttpResponse("sunck is a good man")
  return HttpResponse("sunck is a nice man")

模板片段缓存

cache标签: 参数

  • 缓存时间,以秒为单位
  • 给缓存片段起名字
{#{% load static from staticfiles %}#}
{% load static %}
{% load cache %}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>主页</title>

{#  <link rel="stylesheet" type="text/css" href="/static/css/index.css" rel="external nofollow" >#}
  <link rel="stylesheet" type="text/css" href="{% static 'css/index.css' %}" rel="external nofollow" >
</head>
<body>
  <h1>sunck is a nice man</h1>
  {% cache 120 sunck %}
    <h1>nice man</h1>
    <!--<h1>good man</h1>-->
  {% endcache %}
</body>
</html>

底层的缓存API

from django.core.cache import cache
  • 设置:cache.set(键, 值, 有效时间)
  • 获取:cache.get(键)
  • 删除:cache.delete(键)
  • 清空:cache.clear()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
python爬虫爬取快手视频多线程下载功能
Feb 28 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
详解Python 4.0 预计推出的新功能
Jul 26 Python
python函数的作用域及关键字详解
Aug 20 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
Python自定义sorted排序实现方法详解
Sep 18 Python
用python进行视频剪辑
Nov 02 Python
详细介绍python操作RabbitMq
Apr 12 Python
python实现linux下抓包并存库功能
Jul 18 #Python
python调用tcpdump抓包过滤的方法
Jul 18 #Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 #Python
解决Python3中的中文字符编码的问题
Jul 18 #Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 #Python
python 将print输出的内容保存到txt文件中
Jul 17 #Python
python 实现对数据集的归一化的方法(0-1之间)
Jul 17 #Python
You might like
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
CI框架的安全性分析
2016/05/18 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
详解React 条件渲染
2020/07/08 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
python实现爬山算法的思路详解
2019/04/09 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
Python中文纠错的简单实现
2021/07/07 Python