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基础指南
Sep 08 Python
tensorflow实现KNN识别MNIST
Mar 12 Python
python使用socket创建tcp服务器和客户端
Apr 12 Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
python中有关时间日期格式转换问题
Dec 25 Python
python topk()函数求最大和最小值实例
Apr 02 Python
python和js交互调用的方法
Jun 23 Python
python 遍历磁盘目录的三种方法
Apr 02 Python
Python爬虫基础之简单说一下scrapy的框架结构
Jun 26 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 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&amp;&amp;mysql)二
2006/10/09 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
2020/01/26 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
Windows下python3.7安装教程
2018/07/31 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
Django如何将URL映射到视图
2019/07/29 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
露营世界:Camping World
2017/02/02 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
卖车协议书
2014/04/21 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python