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 相关文章推荐
精确查找PHP WEBSHELL木马的方法(1)
Apr 12 Python
Python中的filter()函数的用法
Apr 27 Python
使用Python绘制图表大全总结
Feb 11 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
基于python实现生成指定大小txt文档
Jul 20 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
python实现快速文件格式批量转换的方法
Oct 16 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
Aug 30 Python
python库Tsmoothie模块数据平滑化异常点抓取
Jun 10 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
php实现网站插件机制的方法
2009/11/10 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
jQuery之折叠面板的深入解析
2013/06/19 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
npm qs模块使用详解
2020/02/07 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
python使用logging模块发送邮件代码示例
2018/01/18 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
python如何写try语句
2020/07/14 Python
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
党旗在我心中演讲稿
2014/09/15 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
医院合作意向书范本
2015/05/08 职场文书
走进科学观后感
2015/06/18 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
同学会演讲稿
2019/04/02 职场文书
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers