Django组件之contenttype的应用】的更多相关文章

Django 组件之 content-type的使用 一个表和多个表进行关联,但具体随着业务的加深,表不断的增加,关联的数量不断的增加,怎么通过一开始通过表的设计后,不在后期在修改表,彻底的解决这个问题呢呢 django中的一个组件content-type可以帮助我们解决这样的一个问题 在这里我先设计了3张表  学位表   普通课程  和价格策略表   大致的设计如下 在上图中我们可以看到价格策略表和其他的两个表进行了关联,可以根据表明 models.py from django.db impo…
django组件之contenttype(一) 方式1:适用于1张表和另一张表要关联的时候. 1.路飞学成表设计: 2.将2个价格策略表合并1张表. 3.如果再加一张表,那价格策略表的表结构会发生改变.  这样不合理的,我们的表结构一般设计完就不会改变. 方式2:适用于1张表和多张表关联的时候. 4.接下来换一种方式.表名+id   数据库表结构不会改变. 5.创建一个新项目 6.创建表 方式3:ContentType组件 7.settings.py 8. from django.contrib…
1.django组件:contenttype 组件的作用:可以通过两个字段让表和N张表创建FK关系 1.专题课,学位课 如何关联 过期时间?? 方法1:分别创建 专题课--过期时间表 .学位课--过期时间表 方法2:专题课,学位课对应到一张过期时间表 方法3:过期时间表与 学位课,专业课,or 其他课程,创建外键关系 2.models初始表结构 $ python manage.py makemigrations $ python manage.py migrate 3.contenttype表…
ContentTyep组件: 帮助我们关联所有数据库的表 帮助我们反向查询关联数据表中的所有策略信息 GenericForeignkey(帮助我们快速插入数据) GenericRelation(用于反向查找) 有上面两个外键的字段仅用于快速查找,不再数据库生成表结构 一  需求 1.1需求信息 项目,有课程,学位课(不同的课程字段不一样),价格策略 问题,1 如何设计表结构,来表示这种规则      2 为专题课,添加三个价格策略          3 查询所有价格策略,并且显示对应的课程名称 …
方式1:适用于1张表和另一张表要关联的时候. 1.路飞学成表设计: 2.将2个价格策略表合并1张表. 3.如果再加一张表,那价格策略表的表结构会发生改变.  这样不合理的,我们的表结构一般设计完就不会改变. 方式2:适用于1张表和多张表关联的时候. 4.接下来换一种方式.表名+id   数据库表结构不会改变. 5.创建一个新项目 6.创建表 方式3:ContentType组件 7.settings.py 8. from django.contrib.contenttypes.fields imp…
contenttypes 是Django内置的一个应用,可以追踪项目中所有app和model的对应关系,并记录在ContentType表中. 每当我们创建了新的model并执行数据库迁移后,ContentType表中就会自动新增一条记录.比如我在应用app01的models.py中创建表class Electrics(models.Model): pass.从数据库查看ContentType表,显示如下: id app_label model … admin, auth等内置应用… … 5 co…
昨日内容回顾 1 json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() 反序列化方法:JSON.parse() 2 ajax $.ajax({ url:"", type:"", data:{}, // 默认contentType="urlencoded" success:function(data){ } }) 一.Dj…
一.文件上传准备知识 - Content-Type 1.请求头 - Content-Type Content-Type指的是请求体的编码类型,常见的类型共有3种: 1)application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了.浏览器的原生 <form> 表单,如果不设置 enctype 属性,那么默认就会以 application/x-www-form-urlencoded 方式提交数据.请求类似于下面这样(无关的请求头在本文中都省略掉了…
昨日内容回顾: json 轻量级的数据交换格式 在python 序列化方法:json.dumps() 反序列化方法:json.loads() 在JS中: 序列化方法:JSON.stringfy() 反序列化方法:JSON.parse() ajax $.ajax({ url:"", type:"", data:{}, // 默认contentType="urlencoded" success:function(data){ } }) 一.Djang…
一.Django组件-forms组件 forms组件 django中的Form组件有以下几个功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 校验字段功能 之前写的视图函数,提交的数据,没有做校验,就添加到数据库里面了.这样是不对的! 比如:用户名,必须要符合一定的长度.密码复杂度,等等. forms组件最大的作用,就是做数据校验. 普通做法,一个一个写校验规则,没有解耦.校验规则,都在视图函数里面. 新建项目formDemo 修…
Django组件补充(缓存,信号,序列化) Django的缓存机制 1.1 缓存介绍 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. 缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcac…
Django组件---Django请求生命周期和中间件 Django请求生命周期 说明: client代表浏览器,浏览器的内部为我们封装了socket,Django的WSGI模块也为我们封装了socket 当用户在浏览器输入URL或者点击某一个链接的时候,浏览器会生成请求头(get)和请求体(post)发送给服务器 请求到达Django的服务器之后,首先WSGI会根据http请求将请求的信息解包,然后封装到HttpRequest中, 再依次通过Django的中间件proces_request方法…
Django组件介绍 分页器的使用 分页器在页面中非常常见,当数据库条数数据过多时,页面一次性显示不好看时,我们可以使用分页器,将数据分几次显示. 1.1 数据库内插入大量数据 Booklist=[] for i in range(100): Booklist.append(Book(title="book"+str(i),price=30+i*i)) Book.objects.bulk_create(Booklist) 使用对象下面的bulk_create(),可以实现批量插入 1.…
day09 Django: 组件cookie session   一.cookie和session都是会话跟踪技术     1.什么是会话             可以理解为客户端和服务端之间的一次会晤: 在一次会晤中可能包含多次请求和响应     2.何时关闭会话     浏览器关闭, 或服务端短连接断开     3.什么是会话跟踪技术     在一个会话中的多个请求共享数据, 这就是会话跟踪技术: 一般共享的数据是用户信息     4.为什么要有cookie和session     因为ht…
基础使用 -contenttype组件 -django提供的一个快速连表操作的组件,可以追踪项目中所有的APP和model的对应关系,并记录在ContentType表中. 当我们的项目做数据迁移后,会有很多django自带的表,其中就有django_content_type表 ContentType组件应用: 在model中定义ForeignKey字段,并关联到ContentType表,通常这个字段命名为content_type 在model中定义PositiveIntergerField字段,…
前言 参考博客:https://www.zhangshengrong.com/p/zD1yQJwp1r/ 一个表和多个表进行关联,但具体随着业务的加深,表不断的增加,关联的数量不断的增加,怎么通过一开始通过表的设计后,不在后期在修改表,彻底的解决这个问题呢? django中的一个组件content-type可以帮助我们解决这样的一个问题.在这里我先设计了3张表:学位表. 普通课程 和价格策略表 ,价格策略表和其他的两个表进行了关联,可以根据表content-type进行关联. models.py…
一.Django中的Form表单介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确.如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.. Django form组件就实现了上面所述的功能: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 二.普通方式的form表单注册 1.views…
content type: django内置组件,这个组件帮忙做连表操作(混搭连表) 适用场景:适用于一张表与多张表同时做关联的时候.直接导入就可以使用了. 关联数据库所有的表:可以快速插入数据,并且用反向查找就能快速查找到数据. models.py文件建立表 from django.db import models # Create your models here. from django.contrib.contenttypes.fields import GenericForeignKe…
AJAX简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据). 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求: 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求. AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新:(这一特…
表结构讨论: 是用一张表价格策略表来记录两种不同的价格策略 content-type原理: 使用一张表来记录不同课程的价目,增加一行表名称 注释: 适用于多张表关联一张表的情况 会自动生成这种的结构: content_type: Django内置的一个组件, 帮助开发者做连表操作 连表操作: 普通的又 ForeignKey,OneToOne, ManyToMany 高级连表操作: content_type 第一版: 普通方式来生成这种表关联 class Course(models.Model):…
Django的Forms组件主要有以下几大功能: 页面初始化,生成HTML标签 校验用户数据(显示错误信息) HTML Form提交保留上次提交数据 一.小试牛刀 1.定义Form类 from django import forms class EmpForm(forms.Form): name = forms.CharField(min_length=5, label="姓名", error_messages={"required": "该字段不能为空!…
一.forms组件--校验类的使用 二.form组件--校验类的参数 三.forms组件校验的局部钩子--自定义校验规则(要看源码理解) 四.forms组件校验的全局钩子--校验form表单两次密码输入是否一致 五.forms组件的渲染标签功能(推荐方式二) 一.forms组件--校验类的使用 1.校验字段功能(最核心功能) 示例1:在服务端进行格式校验-------这个写在一个新模块里-------------from django import formsclass UserForm(for…
1.分页器基础学习 1.1 补充知识-批量创建 数据库中数据批量创建,不要每创建一个就往数据库中塞一个,会造成撞库,造成大量I/O操作,速速较慢,应该采用一次性创建大量数据,一次性将大量数据塞入到数据库中. 主要用到:库名.objects.bulk_create(数据) def index(request): book_list=[] for i in range(1,101): book = Book(title="book%s"%i,price=i*i) book_list.app…
forms组件 校验字段功能 针对一个实例:注册用户 模型:models.py class UserInfo(models.Model): name=models.CharField(max_length=) pwd=models.CharField(max_length=) email=models.EmailField() tel=models.CharField(max_length=) 模板: register.html <!DOCTYPE html> <html lang=&q…
分页器 Django内置分页器(paginator) 分页器函数为paginator,里面有几个重要的参数需要我们了解 paginator = Paginator(book_list, 10) #第二个参数表示每页显示的数量 paginator.count) #数据总数 paginator.num_pages #总页数 paginator.page_range #页码的列表 page1=paginator.page(1) #第1页的page对象 for i in page1: #遍历第1页的所有…
form默认的content-type是 'application/x-www-form-urlencoded' 可以修改为多文档: enctype即为mime类型 <form action="/login/" method="post" enctype="multipart/form-data"> <input type="text" name="username" placeholde…
1. Form组件扩展: 验证用户输入 obj = Form(reuest,POST,request.FILES) if obj.is_valid(): obj.clean_data else: obj.error 1.简单扩展 利用Form组件自带的正则扩展: a. 方式一 from django.forms import Form from django.forms import widgets from django.forms import fields from django.core…
一.contenttypes介绍 它的作用:可以通过两个字段让表和N张表创建FK关系 二.ContentType.GenericForeignKey.GenericRelation 表结构: from django.db import models from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.fields import GenericForeignKey,…
Django的分页器(paginator)简介 在页面显示分页数据,需要用到Django分页器组件 from django.core.paginator import Paginator Paginator对象: paginator = Paginator(user_list, 10) # per_page: 每页显示条目数量 # count: 数据总个数 # num_pages:总页数 # page_range:总页数的索引范围,如: (1,10),(1,200) # page: page对象…
Forms组件概述 forms组件 -Django提供的用语数据校验和模板渲染的组件 -在项目中创建一个py文件 -1 写一个类继承Form -2 在类中写属性,写的属性,就是要校验的字段 -3 使用:生成一个你写的类的对象myform,把要校验的数据(字典),传到对象中:MyForm(字典) -数据多?数据少?数据多可以,少不行(required控制) -4 myform.is_valid() 是True表示所有字段都通过校验 -5 myform.cleaned_data:是一个字典,所有通过…