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 相关文章推荐
使用graphics.py实现2048小游戏
Mar 10 Python
Python 3.x 新特性及10大变化
Jun 12 Python
Python 实现简单的电话本功能
Aug 09 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
Python中文编码知识点
Feb 18 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
Jun 26 Python
Opencv 图片的OCR识别的实战示例
Mar 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
星际RPG字典
2020/03/04 星际争霸
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
JavaScript 学习技巧
2010/02/17 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
Python遍历目录中的所有文件的方法
2016/07/08 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
python实现ftp文件传输功能
2020/03/20 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
啦啦队口号大全
2014/06/16 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
Golang二维数组的使用方式
2021/05/28 Golang