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 相关文章推荐
用map函数来完成Python并行任务的简单示例
Apr 02 Python
在Python的web框架中中编写日志列表的教程
Apr 30 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
玩转python爬虫之爬取糗事百科段子
Feb 17 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
python生成圆形图片的方法
Mar 25 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
在keras中实现查看其训练loss值
Jun 16 Python
python利用tkinter实现图片格式转换的示例
Sep 28 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
opencv 分类白天与夜景视频的方法
Jun 05 Python
Python学习开发之图形用户界面详解
Aug 23 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
8个出色的WordPress SEO插件收集
2011/02/26 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
yii框架通过控制台命令创建定时任务示例
2014/04/30 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PHP使用递归生成文章树
2015/04/21 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
动态控制Table的js代码
2007/03/07 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
探究Python多进程编程下线程之间变量的共享问题
2015/05/05 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
python实现决策树
2017/12/21 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
python语音识别实践之百度语音API
2018/08/30 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
详解python-图像处理(映射变换)
2019/03/22 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
python opencv肤色检测的实现示例
2020/12/21 Python
一组SQL面试题
2016/02/15 面试题
群众路线党员自我评议范文2014
2014/09/24 职场文书
会计岗位职责
2015/02/03 职场文书
致青春观后感
2015/06/09 职场文书
仓库管理制度范本
2015/08/04 职场文书