分类: 第四章:Django

20 篇文章

thumbnail
Web框架与Django简介
Web框架与Django简介 一、Web应用的组成 我们接下来学习的目的就是为了开发一个Web应用软件。那到底什么是Web应用软件呢? 对于传统的应用软件来说,基本上都是部署于单机使用的,而Web应用软件则不一样,Web应用软件是基于B/S架构的,B与S部署于不同的计算机上,并且基于网络通信,所以B与S的本质都是套接字,其中B指的是浏览器&…
thumbnail
路由层
路由层 一、路由的作用 路由即请求地址与视图函数的映射关系,如果把网站比喻为一本书,那路由就好比是这本书的目录,在Django中路由默认配置在urls.py中,如下图: 二、简单的路由配置 # urls.py from django.urls import re_path # 由一条条映射关系组成的urlpatterns这个列表称之为路由表 url…
thumbnail
视图层
视图层 一、请求与响应 视图函数 视图函数,简称视图,属于Django的视图层,默认定义在views.py文件中,是用来处理web请求信息以及返回响应信息的函数,所以研究视图函数只需熟练掌握两个对象即可:请求对象(HttpRequest)和响应对象(HttpResponse) 官网地址:https://docs.djangoproject.com/…
thumbnail
模板层
模板层 一、模板简介 在刚刚介绍完的视图层中我们提到,浏览器发送的请求信息会转发给视图进行处理,而视图在经过一系列处理后必须要有返回信息给浏览器。如果我们要返回html标签、css等数据给浏览器进行渲染,我们可以在视图中这么做 from django.shortcuts import HttpResponse import time # 返回静态内…
thumbnail
ORM
ORM 一、Django模型层之ORM介绍 ORM是什么?为何要有ORM? 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(增、删、改、查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql、oracle、Microsoft SQL Server等。 如果应用程序需要操作数据(比如将用户注册信息…
thumbnail
模型层表操作之Fields字段
模型层表操作之Fields字段 一、字段名命名限制 Fields字段被指定为模型类的类属性,是模型最重要的部分,也是模型唯一必须要有的部分,是用来定义数据库字段的。 Django 对字段的命名设置了一些限制: 1、注意字段名不要选择与模型API冲突的名字,如clean、save或delete等 2、字段名不能是Python保留字,因为这将导致Pyt…
thumbnail
建立表关系
建立表关系 显然,关系型数据库的强大之处就在于将表相互关联,Django提供了定义三种最常见的数据库关系类型的方法:多对一、多对多和一对一。 一、表关系之多对一 1、多对一关系 要定义一个多对一关系,需要使用django.db.models.ForeignKey。您可以像使用任何其他字段类型一样去使用它:将其作为模型的类属性 # ForeignKe…
thumbnail
Meta选项
Meta选项 在模型类内部定义Meta类(可选的,所有选项都不是必须的),可以配置模型的元数据, 例如: 1、如排序选项(ordering) 2、数据库表名(db_table) 3、人类可读的单复数名称(verbose_name 和verbose_name_plural)。 from django.db import models class Pe…
thumbnail
QuerySet对象与查询优化
QuerySet对象与查询优化 一、QuerySet对象 Django的ORM中存在查询集的概念。 查询集,也称查询结果集,即QuerySet,表示从数据库中获取的对象集合。 当调用如下过滤器方法时,Django会返回查询集(与列表类似,但不是简单的列表): all():返回所有数据。 filter():返回满足条件的数据。 exclude():返…
thumbnail
django中ORM的锁
django中ORM的锁 一、行锁 select_for_update(nowait=False, skip_locked=False) 注意必须用在事务里面,至于如何开启事务,我们看下面的事务一节 Book.objects.select_for_update().filter(nid=3) # 锁住nid=3的行 # 数据库锁机制详见 https…
thumbnail
django中ORM开启事务
django中ORM开启事务 一、全局开启 ATOMIC_REQUESTS设置为True,每个请求过来时,Django会在调用视图方法前开启一个事务。如果请求正确处理并正确返回了结果,Django就会提交该事务,否则,Django会回滚该事务。 DATABASES = { 'default': { 'ENGINE�…
thumbnail
Ajax
Ajax 一、Ajax介绍 1、什么是ajax 简单地讲,ajax就是一种前端技术,用于朝着后端程序发送请求和数据 # 总结下来,前端向后端发送请求的方式无非以下几种,ajax技术便是其中一种 1、浏览器地址栏输入url地址 请求方式默认并且只能是:get请求 2、a标签 请求方式默认并且只能是:get请求 3、form表单 请求方式可以是:get…
thumbnail
常用组件
常用组件 一、分页器组件 class Pagination(object): def __init__(self,current_page,all_count,per_page_num=2,pager_count=11): """ 封装分页相关数据 :param current_page: 当前页 :param all…
thumbnail
中间件
中间件 一、中间件介绍 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。 说的直白一点中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额…
thumbnail
Celery
Celery 一、什么是Celery? Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 二、Celery架构 Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。 1、消…
thumbnail
HayStack
HayStack 一、什么是Haystack? Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh, **Xapian搜索引擎它是一个可插拔的后端(很像Django的数据库层),所以几乎你所有写的代码都可以在不同搜索引擎之间便捷…
thumbnail
缓存
缓存 一、缓存介绍 简单概括就是将对数据库操作查询所得到的数据放入另外一台机器上(缓存)中,当用户再次请求时,直接去缓存中拿,避免对数据库的频繁操作,加快数据的显示时间,需要知道的是,缓存里面的数据一般都设置有超时时间,缓存一般用在数据变化不大,实时率不高的情况下。 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时…
thumbnail
信号
信号 一、信号简介 Django提供一种信号机制。其实就是观察者模式,又叫发布-订阅(Publish/Subscribe) 。当发生一些动作的时候,发出信号,然后监听了这个信号的函数就会执行。 通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者。用于在框架执行操作时解耦。 二、Django内置信号 Model signals p…
thumbnail
批量插入数据
批量插入数据 一、项目需求 浏览器中访问django后端某一条url(如:127.0.0.1:8080/index/),实时朝数据库中生成一千条数据并将生成的数据查询出来,并展示到前端页面 二、我们的常规写法 urls.py from django.conf.urls import url from app01 import views urlpa…

You cannot copy content of this page