随笔分类 - Django框架
摘要:HayStack 一、什么是Haystack? Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh, **Xapian搜索引擎它是一个可插拔的后端(很像Django的数据库层),
阅读全文
摘要:Celery 一、什么是Celery? Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 二、Celery架构 Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(
阅读全文
摘要:中间件 一、中间件介绍 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。 说的直白一点中间件是
阅读全文
摘要:常用组件 分页推导 首先我们需要明确的时候,get请求也是可以携带参数的,所以我们在朝后端发送查看数据的同时可以携带一个参数告诉后端我们想看第几页的数据 其次我们还需要知道一个点,queryset对象是支持索引取值和切片操作的,但是不支持负数索引情况 接下来我们就可以推导我们的自定义分页器步骤了 c
阅读全文
摘要:Ajax 一、Ajax介绍 1、什么是ajax 简单地讲,ajax就是一种前端技术,用于朝着后端程序发送请求和数据 # 总结下来,前端向后端发送请求的方式无非以下几种,ajax技术便是其中一种 1、浏览器地址栏输入url地址 请求方式默认并且只能是:get请求 2、a标签 请求方式默认并且只能是:g
阅读全文
摘要:django中ORM开启事务 一、全局开启 ATOMIC_REQUESTS设置为True,每个请求过来时,Django会在调用视图方法前开启一个事务。如果请求正确处理并正确返回了结果,Django就会提交该事务,否则,Django会回滚该事务。 DATABASES = { 'default': {
阅读全文
摘要:django中ORM的锁 一、行锁 select_for_update(nowait=False, skip_locked=False) 注意必须用在事务里面,至于如何开启事务,我们看下面的事务一节 Book.objects.select_for_update().filter(nid=3) # 锁
阅读全文
摘要:QuerySet对象与查询优化 一、QuerySet对象 Django的ORM中存在查询集的概念。 查询集,也称查询结果集,即QuerySet,表示从数据库中获取的对象集合。 当调用如下过滤器方法时,Django会返回查询集(与列表类似,但不是简单的列表): all():返回所有数据。 filter
阅读全文
摘要:记录操作之增删改查 一、单表 1、 添加记录 准备表 from django.db import models class Book(models.Model): title = models.CharField(max_length=20) price = models.DecimalField(
阅读全文
摘要:Meta选项 在模型类内部定义Meta类(可选的,所有选项都不是必须的),可以配置模型的元数据, 例如: 1、如排序选项(ordering) 2、数据库表名(db_table) 3、人类可读的单复数名称(verbose_name 和verbose_name_plural)。 from django.
阅读全文
摘要:建立表关系 显然,关系型数据库的强大之处就在于将表相互关联,Django提供了定义三种最常见的数据库关系类型的方法:多对一、多对多和一对一。 一、表关系之多对一 1、多对一关系 要定义一个多对一关系,需要使用django.db.models.ForeignKey。您可以像使用任何其他字段类型一样去使
阅读全文
摘要:一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时。 id字段是自动添加的,如果你想要指定自定义主键,只需在其中一个字段中指定 primary_key=T
阅读全文
摘要:模型层表操作之Fields字段 一、字段名命名限制 Fields字段被指定为模型类的类属性,是模型最重要的部分,也是模型唯一必须要有的部分,是用来定义数据库字段的。 Django 对字段的命名设置了一些限制: 1、注意字段名不要选择与模型API冲突的名字,如clean、save或delete等 2、
阅读全文
摘要:ORM 一、Django模型层之ORM介绍 ORM是什么?为何要有ORM? 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(增、删、改、查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql、oracle、Microsoft SQL Server
阅读全文
摘要:模板层 一、模板简介 在刚刚介绍完的视图层中我们提到,浏览器发送的请求信息会转发给视图进行处理,而视图在经过一系列处理后必须要有返回信息给浏览器。如果我们要返回html标签、css等数据给浏览器进行渲染,我们可以在视图中这么做 from django.shortcuts import HttpRes
阅读全文
摘要:视图层 一、请求与响应 视图函数 视图函数,简称视图,属于Django的视图层,默认定义在views.py文件中,是用来处理web请求信息以及返回响应信息的函数,所以研究视图函数只需熟练掌握两个对象即可:请求对象(HttpRequest)和响应对象(HttpResponse) 官网地址:https:
阅读全文
摘要:#路由层 一、路由的作用 路由即请求地址与视图函数的映射关系,如果把网站比喻为一本书,那路由就好比是这本书的目录,在Django中路由默认配置在urls.py中,如下图: 二、简单的路由配置 # urls.py from django.urls import re_path # 由一条条映射关系组成
阅读全文
摘要:Web框架与Django简介 一、Web应用的组成 我们接下来学习的目的就是为了开发一个Web应用软件。那到底什么是Web应用软件呢? 对于传统的应用软件来说,基本上都是部署于单机使用的,而Web应用软件则不一样,Web应用软件是基于B/S架构的,B与S部署于不同的计算机上,并且基于网络通信,所以B
阅读全文