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利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
python的多重继承的理解
Aug 06 Python
pandas数据分组和聚合操作方法
Apr 11 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
浅谈python 中类属性共享的问题
Jul 02 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
tensorflow 分类损失函数使用小记
Feb 18 Python
教你怎么用python selenium实现自动化测试
May 27 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 Python
总结三种用 Python 作为小程序后端的方式
May 02 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数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
Javascript之文件操作
2007/03/07 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
原生JavaScript实现合并多个数组示例
2014/09/21 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
Django 2.0版本的新特性抢先看!
2018/01/05 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
python实现C4.5决策树算法
2018/08/29 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
python跨文件使用全局变量的实现
2020/11/17 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
毕业生自荐信的主要内容
2013/10/29 职场文书
见习期自我鉴定
2014/01/31 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
社区党员干部承诺书
2015/05/04 职场文书
世界名著读书笔记
2015/06/25 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
TS 类型兼容教程示例详解
2022/09/23 Javascript