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 Django做网页
Nov 04 Python
Python操作json数据的一个简单例子
Apr 17 Python
python创建列表并给列表赋初始值的方法
Jul 28 Python
django主动抛出403异常的方法详解
Jan 04 Python
不到40行代码用Python实现一个简单的推荐系统
May 10 Python
python Django 创建应用过程图示详解
Jul 29 Python
详解Python self 参数
Aug 30 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
python小程序基于Jupyter实现天气查询的方法
Mar 27 Python
10个python爬虫入门实例(小结)
Nov 01 Python
python 检测nginx服务邮件报警的脚本
Dec 31 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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的FTP学习(四)
2006/10/09 PHP
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
python实现在sqlite动态创建表的方法
2015/05/08 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
模具设计与制造专业应届生求职信
2013/10/18 职场文书
教师档案管理制度
2014/01/23 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android