Python技术分享

深入浅出学习Python

问题

  • 使用视图通过上下文向模板传递数据,需要先加载完成模板的静态页面,再执行模型的代码,生成完整的html。返回浏览器,这个过程将页面与数据集成到了一起,扩展性差!

解决

  • 通过ajax的方式获取数据,通过dom操作将数据呈现在页面上
阅读全文 »

Paginator对象

  • 创建对象
    • Paginator(数据集合, int)
    • 返回分页对象,参数1为要分页的数据集合,参数2为每页有几条数据
  • 属性:
    • count:对象总数
    • num_pages:页码数
    • page_range:页码列表,从1开始
  • 方法:page(num)
    • num是页码,从1开始。会创建一个page对象,该对象存储当前页码的数据,如果页码不存在会抛出InvalidPage异常
  • 异常:
    • InvalidPage:当向page()传递一个无效的页码时抛出
    • PageNotAnInteger:当向page()传递一个不是整数的值时抛出
    • EmptyPage:当向page()提供了一个有效值,但是那个页码上没有任何的对象时抛出
阅读全文 »

概述

  • 当Django在处理文件上传的时候,文件数据被保存在request.FILES
  • FILES的每个键为下边代码中的name属性的值
    1
    <input type="file" name="" />
  • FILES只有在请求的方式为POST且提交的form带有enctype="multipart/form-data"的情况下才会包含数据。否则,FILES将为一个空的类似字典的对象
阅读全文 »

概述

  • 一个轻量级、底层的插件,可以介入Django的请求和响应处理过程,修改Django的输入或输出
  • 每个中间件组件就是一个独立的python类
阅读全文 »

概述

  • **内容发布:**负责添加、修改、删除内容,开发这些重复的功能是一件非常没有意义的事情,并且缺乏创造力。Django会根据定义的模型类来自动生成管理模块
  • 公共访问

配置Admin应用

  • 默认已经配置:'django.contrib.admin',
阅读全文 »

作用

  • 在注册、登陆页面为了防止暴力请求,可以加入验证码功能,如果验证错误,则不需要继续处理,可以减轻服务器和数据库的压力。
  • 也是一种有效的防止csrf的方法。
阅读全文 »

概述

  • 模板由两部分组成:
    • HTML代码
    • 逻辑控制代码:
      • 变量
      • 标签
      • 过滤器
  • **作用:**很便利的生成HTML
  • **优点:**模板的设计实现了业务逻辑与显示的分离,一个视图可以使用任意的模板,一个模板可以被多个视图使用
  • 模板的处理:
    • 加载:根据给定的标识找到对应的模板然后预处理,通常将它编译好放到到内存中
    • 渲染:使用context属性的数据插入模板形成新的字符串
阅读全文 »

概述

  • 作用
    • 接收Web请求并返回web响应
  • 本质
    • 就是一个Python函数,被定义在views.py文件中
  • 响应
    • 可以是一个网页的HTML内容、一个重定向、数据、一个404错误等等
  • 过程
    过程图
阅读全文 »

概述

  • Django对各种数据库都提供了良好的支持
  • Django为这些数据库提供了统一的调用接口API,我们可以根据业务需求选择使用不同的数据库

配置MySQL

  • DATABASES 做如下修改

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': '数据库名',
    'USER': '用户名',
    'PASSWORD': '密码',
    'HOST': '主机',
    'PORT': '端口'
    }
    }
阅读全文 »
0%