1. 发送邮件

# settings.py设置
# 邮箱设置
EMAIL_USE_SSL = True
# 邮件服务器
EMAIL_HOST = 'smtp.qq.com'
# 邮件服务端口
EMAIL_PORT = 465
# 发送邮件账号
EMAIL_HOST_USER = "1223936862@qq.com"
# SMTP服务密码
EMAIL_HOST_PASSWORD = "oxwxxxxxgbrvjejc"
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
# views.py代码
from django.conf import settings
from django.core.mail import send_mail,send_mass_mail,EmailMultiAlternatives
def email_views(request):# 获取 settings.py 的配置信息
from_email = settings.DEFAULT_FROM_EMAIL # # send_mail每次发邮件都会建立一个新的连接,如果发送多封邮件,就需要建立多个连接
# send_mail("汪小鹏","来自Django的Email",from_email,['13387234406@qq.com']) # # send_mass_mail发送多封邮件
# message1 = ("汪小鹏","来自Django的Email",from_email,['13387234406@qq.com'])
# message2 = ("汪小鹏","来自Django的Email",from_email,['wangxp1994@outlook.com'])
# send_mass_mail((message1,message2),fail_silently=False) # EmailMultiAlternatives发送邮件
content = '<p>这是一封<strong>重要的</strong>邮件</p>'
msg = EmailMultiAlternatives('汪小鹏',content,from_email,['13387234406@qq.com'])
# 将正文设置成HTML格式
msg.content_subtype = "html"
# 对正文内容进行补充和添加
msg.attach_alternative('<strong>邮件来自Django</strong>','text/html')
# 添加附件
msg.attach_file('test.txt')
msg.send() return HttpResponse("发送成功")

2. 分页功能

# urls.py
...
path('page/<page>',product_views),
...
# views.py
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
def product_views(request,page):
# 获取数据表全部数据
Product_list = Product.objects.all()
# 设置每一页数据量为3
paginator = Paginator(Product_list, 3) try:
# 获取某一页的数据对象
pageInfo = paginator.page(page)
except PageNotAnInteger:
# 如果page的数据类型不是整型,就返回第一页
pageInfo = paginator.page(1)
except EmptyPage:
# 若用户访问的页数大于实际页数,则返回最后一页
pageInfo = paginator.page(paginator.num_pages) print("="*20) # 输出分页的全部数据
print(paginator.object_list)
# 获取当前被分页的数据总量
print(paginator.count)
# 获取分页的总页数
print(paginator.num_pages)
# 将页数转换成range循环对象
print(paginator.page_range)
# 判断当前页是否存在上一页
print("上一页",pageInfo.has_previous())
# 如果当前页数存在上一页,输出上一页页数,否则抛出Empty异常
print("上一页码",pageInfo.previous_page_number())
# 判断当前页是否存在上一页
print("下一页",pageInfo.has_next())
# 如果当前页数存在下一页,输出下一页页数,否则抛出Empty异常
print("下一页码",pageInfo.next_page_number())
# 输出当前页的数据信息
print("当前页",pageInfo.object_list)
# 输出当前页的第一条数据在整个数据表的位置,从1开始计算
print(pageInfo.start_index())
# 输出当前页的最后一条数据在整个数据表的位置,从1开始计算
print(pageInfo.end_index())
return render(request,"page.html",locals())

<玩转Django2.0>读书笔记:邮件和分页的更多相关文章

  1. <玩转Django2.0>读书笔记:表单

    1. 表单字段 参考: 官方文档 Django表单字段汇总 2. 表单代码示例(forms.Form) # form.py代码 # 获取数据库数据 choices_list = [(i+1,v['ty ...

  2. <玩转Django2.0>读书笔记:模板和模型

    1. 模板内置标签 Django常用内置标签 标签 描述 {% for %} 遍历输出变量的内容 {% if %} 对变量进行条件判断 {% csrf_token %} 生成csrf_token标签, ...

  3. <玩转Django2.0>读书笔记:URL规则和视图

    1. 带变量的URL #urls.py from django.urls import path from .view import * urlpatterns = [ path('',index_v ...

  4. 《玩转Django2.0》读书笔记-探究视图

    <玩转Django2.0>读书笔记-探究视图 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 视图(View)是Django的MTV架构模式的V部分,主要负责处理用户请求 ...

  5. 《玩转Django2.0》读书笔记-编写URL规则

    <玩转Django2.0>读书笔记-编写URL规则 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. URL(Uniform Resource Locator,统一资源定位 ...

  6. 《玩转Django2.0》读书笔记-Django配置信息

    <玩转Django2.0>读书笔记-Django配置信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 项目配置是根据实际开发需求从而对整个Web框架编写相应配置信息. ...

  7. 《玩转Django2.0》读书笔记-Django建站基础

    <玩转Django2.0>读书笔记-Django建站基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.网站的定义及组成 网站(Website)是指在因特网上根据一 ...

  8. 玩转 Django2.0 笔记1

    模板静态  路由 urls.py urlpatterns = [ path("<year>/<int:month>/<slug:day>",my ...

  9. vue2.0读书笔记2-进阶

    一.深入响应式原理 二.过渡效果 三.过渡状态 四.Render函数 五.自定义指令 六.混合 七.插件 八.单文件组件 九.生产环境 十.路由 vue-router: http://router.v ...

随机推荐

  1. OpenCV初步

    目录 一 写在开头 1.1 本文内容 二 涉及的API 三 OpenCV 3.4.2在Ubuntu 16.04 LTS下的编译安装 四 OpenCV安装测试与图像的加载和显示 4.1 安装测试 4.2 ...

  2. PMP知识点(三)——挣值计算汇总表

    在新标签页打开. 附参考图 资料地址:http://pan.baidu.com/s/1bMNroq

  3. mysql设置某列不重复

    5.1版本以上:ALTER TABLE dbname.table ADD UNIQUE (fieldname); 数据库名为dbname,表名table,字段名fieldname.

  4. 【ShaderToy】基本操作——旋转

    *继续:ShaderToy基础学习中d(`・∀・)b 对每个像素点进行旋转,其实加个公式就ok了啊. 对网格进行旋转: 代码如下: #define TUTORIAL 2 #define PI 3.14 ...

  5. JAVA开发环境搭建(Mac)

    1. 打开Terminal, 执行命令: java -version 即可查看到我们所安装的jdk版本. 2.安装jdk成功之后,我们还需要配置jdk环境变量. 使用命令: /usr/libexec/ ...

  6. vm—win7

  7. 小白之微信小程序第一次完成搭建本地服务与页面进行交互

    如果忘记了搭建json-server的过程,可看上一篇随笔 1. index.xml  代码 <!--index.wxml--> <swiper indicator-dots=&qu ...

  8. git工具——对比文件的不同

    对比工作区和某个版本中文件的不同: (1)继续编辑文件code.txt,在其中添加一行内容: (2)现在要对比工作区中code.txt和head版本中code.txt的不同,使用如下命令: 前面没有出 ...

  9. 「JavaScript面向对象编程指南」基础

    DOM标准是独立的(即并不依赖JS)操作结构化文档的方式 BOM实际是个与浏览器有关的对象集合,原来没任何标准可言,H5诞生后才被定义了一些浏览器间通用的对象标准 ES5严格模式"use s ...

  10. elk的备份与恢复【转】

    elasticsearch提供了快照功能: 1.在elsticsearch的配置文件中定义一个path.repo路径配置 path.repo: ["/elk/my_backup"] ...