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保存网页上的图片或者保存页面为截图
Mar 05 Python
Python基于matplotlib绘制栈式直方图的方法示例
Aug 09 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
Python 导入文件过程图解
Oct 15 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
基于python模拟TCP3次握手连接及发送数据
Nov 06 Python
Django haystack实现全文搜索代码示例
Nov 28 Python
教你用python控制安卓手机
May 13 Python
Django集成富文本编辑器summernote的实现步骤
May 31 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 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
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
Python代码解决RenderView窗口not found问题
2016/08/28 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
python模拟实现分发扑克牌
2020/04/22 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
文员个人求职自荐信
2013/09/21 职场文书
音乐器材管理制度
2014/01/31 职场文书
企业党员一句话承诺
2014/05/30 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
语文复习计划
2015/01/19 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
java实现web实时消息推送的七种方案
2022/07/23 Java/Android