Django学习-20-信号】的更多相关文章

- Django内置的信号Model signals pre_init # django的modal执行其构造方法前,自动触发 post_init # django的modal执行其构造方法后,自动触发 pre_save # django的modal对象保存前,自动触发 post_save # django的modal对象保存后,自动触发 pre_delete # django的modal对象删除前,自动触发 post_delete # django的modal对象删除后,自动触发 m2m_ch…
目录结构 1.前言 2.[__str__]特殊方法的具体使用 2.1.当使用print打印一个类被实例化后生成的对象的时候,若类里有定义了[__str__]特殊方法,是打印出这样的数据:[__str__]特殊方法的返回值 2.1.1.首先,编写这些代码内容 2.1.2.接着,执行这些代码内容 2.1.3.接着,看打印日志 2.2.当使用print打印一个类被实例化后生成的对象的时候,若将类里的[__str__]特殊方法注释之后,是打印出这样的数据:对象是由哪一个类创建的对象信息以及在内存中的内存…
Django学习之信号 如果我想对所有在数据库创建数据的时候记录一条日志. 比如我们在django中往数据库中增加一条数据,希望生成一条操作日志,或者在数据保存和数据保存之后都保存一条操作日志,那我们应该怎么办呢? 有很多人可能会想到用装饰器来实现,但是 装饰器一般是写在函数上面的,如果我们在函数中执行了不止一条数据库操作(如下面的代码),那记录下来的只能只有一条数据日志,也就是说装饰器只有在统一操作的时候记录下东西. def signal(request): from app01 import…
Django学习之缓存和信号   一 缓存 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者memcache中之前缓存的内容拿到,并返回. Django中提供了6种缓存方式: 开发调试 内存 文件 数据库 Memcache缓存(python-memcached模块) Memca…
Django 缓存.信号和extra Django 缓存 由于Django是动态网站,所以每次请求均会去数据库进行相应的操作,当程序访问量大时,耗时必然会显著增加.最简单的解决方法是:使用缓存,缓存将某个views的返回值保存在内存或者redis/memcache中,短时间内再次访问该网页时,不再去执行viwes中的操作,而是直接从内存或缓存数据库中获取内容,并返回. Django中提供了6种缓存方式: 开发调试 内存 文件 数据库 Memcache缓存(python-memcached模块)…
本文学习如何通过Django使用Bootstrap.其实在之前好几个Django项目中已经尝试使用过了Bootstrap,而且都留有学习记录,我已经大概有了一个大的框架,那么本文就从头再走一遍流程,其实主要细节还是Bootstrap的常用的语法使用.除了基本流程,本文基于BBS+Blog项目进行学习,主要是完成其项目的模板的功能,顺带学习一下Bootstrap的内容. 我使用的Python版本为3.X,Bootstrap版本为3.3.31,Django版本为2.0. 模板语法不懂的可以参考博客:…
一.序列化 1.serializers 2.json.dumps 二.信号 1.Django内置信号 2.自定义信号 一.序列化 关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为json格式. 1.serializers from django.core import serializers ret = models.BookType.objects.all() data = serializers.serialize("json"…
前言:每个月忙碌的头20天后,在上班时间投入到django理论学习的过程中,花了差不多3天时间简单的研究了一下django,着实废了我不少脑细胞. 采用虫师前辈的一张图和话: 如果你把这过程梳理清晰了,那么你对django就算入门了. 一张流程图告诉你,django的处理流程: 正文:推荐django学习网址: django1.82官方学习网址:http://python.usyiyi.cn/django/index.html(大家在学习的过程中可以参与到django1.8汉化,希望早日djan…
QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命令.具体的参照:Django 学习笔记之二 基本命令 中同步数据库 4.查询方法 其中要用到values(*fields), filter(**kwargs), exclude(**kwargs), order_by(*fields) 1. 查询Author 表中数据记录条数  Author.obj…
 Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://5ydycm.blog.51cto.com/115934/1651453 Form对与一个网站来说就是一个灵魂,今天我们就来说说Django的Form概述. 本文内容来自官网,互联网及自己实验所得. 表单(forms.py)的定义: #coding:utf-8from dj…
疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path                                 除域名以外的请求路径,斜杠开头                      "/hello/" request.get_host()                      主机名                              …
关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/views.py from django.shortcuts import render class Person(object): def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex def say(sel…
关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hello World/temlplates/index.html中,修改html文件 <!DOCTYPE html> <html lang="zh-cn"> <head> <title>{{title}}</title> <met…
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由django的查询方式决定的. 3)定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性名=models.字段类型(选项) 1.2 字段的类型 使用时需要引入django.db.models包,字段类型如下: 类型 描述 AutoField 自动增长的IntegerField,通常不…
Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 1.Django内置信号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Model signals     pre_init                           # django的modal执行其构造方法前,自动触发     post_init                     …
中间件 1.中间件是什么? 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影响到性能.    就是存在socket和视图函数中间的一种相当于过滤的机构. 中间件共分为: (1)process_request(self,request) 接受request之后确定所执行的view之前 (2)process_view(self, request, callback,…
Reference: http://www.cnblogs.com/lianzhilei/p/6365877.html 缓存 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者Redis中之前缓存的内容拿到,并返回 Django中提供了6种缓存方式: 开发调试 内存 文件 数据库…
Django学习---Web框架 web框架的本质 我们在学socket,我们创建一个socketserver,然后运行起来,有一个client客户端要连接socket服务端,连接上之后,如果两边都没有close,就一直不断开,可以不断的进行请求. 我们下面写一个socket服务端: import socket def handle_request(client): buf = client.recv(1024) client.send(bytes("HTTP/1.1 200 ok\r\n\r\…
Django学习之DRF02 Serializer序列化器之反序列化操作    1.调⽤序列化器进⾏验证        0.准备序列化器 class BookInfoSerializer(serializers.Serializer): """图书数据序列化器""" id = serializers.IntegerField(label= 'ID', read_only= True) btitle = serializers.CharField(…
用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可以封装成函数,简单代码.不过推荐使用Django提供的一套用户认证组件,原理其实类似,只不过功能更强大. 1,用户认证——auth模块 在进行用户登录验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中:如果用户存在于数据库中,然后在验证用户输入的密码,这样一来,…
一,项目题目:扩展Django自带User模型,实现用户注册与登录 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册,登录,用户认证,注销,修改密码等功能.Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点,它内置了强大的用户认证系——auth,所以本文在不建立User模型的情况下实现用户的注册,登录和认证.另外对Django Auth自带的User模型进行扩展,运行用户添加更多的个人信息. 我在之前的Django学习笔记(9)——开…
七.django学习之聚合函数 如何使用 from django.db.models import Avg,Max,Min,Sum models.Book.objects.all().aggregate(Avg('price')) models.Book.objects.all().aggregate(price = Avg('price')) #{'price':22.6} Book.objects.aggregate(Avg('price'), Max('price'), Min('pric…
一.聚合查询和分组查询 1.聚合查询aggregate 关于数据表的数据请见上一篇:Django 学习 之ORM多表操作(点我) aggregate(*args, **kwargs),只对一个组进行聚合 # (1)计算所有图书的平均价格 from django.db.models import Avg, Sum, Count, Max, Min avg_price = models.Book.objects.all().aggregate(Avg("price")) print(avg…
今天好像巴黎有点乱,希望明天太阳还会照常升起. 简介 Django 是一个由 Python 编写.开源并采用经典的 MVC 设计模式的 Web Full Stack 应用框架. 在 Django 中,控制器接受用户输入的部分由框架自行处理,所以 Django 里关注更多在模型( Model ).模板( Template )和视图( Views ),称为 MTV 模式.他们各自的职责如下: 模型( Model ),数据存取层:处理与数据相关的所有事务,即如何存取.如何验证有效性.包含哪些行为以及数…
1.前言 通过前面博客[django学习-10.django连接mysql数据库和创建数据表]里的操作,我们已经成功在数据库[hongjingsheng_project]里创建了一张数据表[hello_person]. 接着,我们通过完整的前后端交互,来展示django框架如何通过相关操作来实现对指定的一个数据表[hello_person]进行数据的新增/编辑/查询/删除这四种基本操作. 细节: ①.为了单独验证对数据表[hello_person]进行数据的新增/编辑/查询/删除这四种基本操作,…
models.tb.objects.all().using('default'),根据using来指定在哪个库里查询,default是settings中配置的数据库的连接名称. 外话:django中引入现成数据库 Django引入外部数据库还是比较方便的,步骤如下 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自动生成models模型文件 python manage.py inspectdb,执行完这…
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介绍往数据库中添加数据,django默认的是sqlite3数据库. 在建立完django_blog项目后,不要忘了把 blog 加入到 settings.py 中的 INSTALLED_APPS 中. 一.同步数据库,创建相应的表 具体的参照Django 学习笔记之二的的同步数据库. 二.数据输入 下…
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # 用什么数据库管理系统 'NAME': '', # 数据库名称,假设用sqlite.要写完整路径 'USER': '', # 假设用sqlite,这个不用写 'PASSWORD': '', # 假设用sqlite,这个不用写 'H…
继续(一)的内容: 1-跨文件的Models 在文件头部import进来,然后用ForeignKey关联上: from django.db import models from geography.models import ZipCode class Restaurant(models.Model): # ... zip_code = models.ForeignKey(ZipCode) 2-field名字的约束 1)-不能是Python预留字 2)-不能有连续的2个下划线,例如foo__ba…
当前标签: Django   Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0     Python框架之Django学习笔记(十三) 尛鱼 2014-10-08 14:13 阅读:380 评论:0     Python框架之Django学习笔记(十二) 尛鱼 2014-10-07 19:01 阅读:449 评论:0     Python框架之Django学习笔记(十一) 尛鱼 2014-09-28 09:17 阅读:476 评论:0…