1.常用查询 模型类上的管理器: ** 模型类.objects ** (1)常用一般查询 rs = Student.objects.all() # 查询所有记录,返回Queryset print(rs.query) # 返回rs的SQL语句, 针对Queryset对象 rs = Student.objects.filter(name='XM') # 条件查询, 可传多个参数, 返回Queryset # from django.db.models import Q # Student.object…
Ⅰ.常用查询  1.几个概念 每一个django模型类,都有一个默认的管理器,objects,查询就是依赖于objects管理器进行的(在创建时就被添加了). QuerySet表示数据库中对象的列表(QuerySet也是一个类).它可以有0到多个过滤器.过滤器通过给定参数,缩小查询范围.(filter) QuerySet等同于select语句,过滤器是一个限制子句,比如where,比如limit. 1)环境进入 2.常用查询代码 1)QuerySet 的方法(查询方法) all() 获取所有 S…
1.Django的ORM介绍 对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的"虚拟对象数据库". 对象关系映射就是通过面向对象的方式操纵数据库,达到不用编写SQL语句就能实现对数据库的增删改查.只需要通过python的面向对象的方式就能够清楚数据之间的关系. python是一个编程语言,…
1.常用的模型字段类型 https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types 2.字段的常用参数 官方文档:https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-options 3.常用查询 通过模型类上的管理器来构造QuerySet. 模型类上的管理器是啥? ​ 模型类.objects,<django.db.models.manager.M…
常用查询及表关系的实现 1.常用查询 每一个django模型类,都有一个默认的管理器 objects QuerySet表示数据库中对象的列表,它可以有0到多个过滤器.过滤器通过给定参数,缩小查询范围. QuerySet等同于select语句,过滤器是一个限制子句,比如where,limit. all() 获取所有 Student.objects.all() #返回的是queryset 获取第一条 Student.objects.first() #返回的是对象 获取最后一条 Student.obj…
Django中模型(二) 三.定义模型 1.模型.属性.表.字段间的关系: 一个模型类在数据库中对应一张表:在模型类中定义的属性,对应该模型对照表中的字段. 2.定义属性 A.概述 ·django根据属性的类型确定以下信息 ·当前选择的数据库支持字段的类型 ·渲染管理表单时使用的默认html控件 ·在管理站点最低限度的验证 B. ·django会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 C.属性命名限制 ·遵循标识…
Django入门实践(二) Django模板简单实例 上篇中将html写在了views中,这种混合方式(指Template和views混在一起)不适合大型开发,而且代码不易管理和维护,下面就用Django自带的模板来学习(显示一个通讯簿). 在views.py中添加函数addressbook from django.shortcuts import render_to_response ..... address=[ {'name':'zhou','address':'上海'}, {'name'…
Django之模型层第二篇:多表操作 一 表关系回顾 ​ 在讲解MySQL时,我们提到,把应用程序的所有数据都放在一张表里是极不合理的. ​ 比如我们开发一个员工管理系统,在数据库里只创建一张员工信息表,该表有四个字段:工号.姓名.部门名.部门职能描述,此时若公司有1万名员工,但只有3个部门,因为每一名员工后都需要跟着部门信息(部门名.部门职能),所以将会导致部门信息出现大量重复.浪费空间. ​ 解决方法就是将数据存放于不同的表中,然后基于foreign key建立表之间的关联关系. ​ 细说的…
Django之模型层第一篇:单表操作 一 ORM简介 ​ 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql.oracle.Microsoft SQL Server等. ​ 如果应用程序需要操作数据(比如将用户注册信息永久存放起来),那么我们需要在应用程序中编写原生sql语句,然后使用pymysql模块远程操作mysql数据库,详见图1 但是直接编写原生sql语句会存在两方面的…
原始数据接上篇文章来操作.可能需要查看后才能懂.点击这里查看 1.常用的模型字段类型 官方文档:https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types 定义的模型中,类名对应的表名,类属性对应的表的字段,我们在上节内容有说过,可以查看.这里我们详细了解. django和mysql的对应类型,models.Model下的方法 django类型 映射到mysql类型 IntegerField : 整型 映射到数据库中的…
Django模型简介 Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中 Django 支持 sqlite3, MySQL, oracle,PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用. 数据库的设置 在Django中,django默认使用sqlite的数据库,django默认自带sqlite的数据库驱动 引擎名称:django.db.backends.sqlite3…
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带领大家进行简单的建表.查询和删除,因为model的重要性所以后面几篇都会围绕ORM慢慢深入. 一.ORM 映射关系: 表名 <-------> 类名 字段 <-------> 属性 表记录 <------->类实例对象 二.创建表(建立模型) 1.创建表的代码写在项目下的m…
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带领大家进行简单的建表.查询和删除,因为model的重要性所以后面几篇都会围绕ORM慢慢深入. 本篇导论: ORM 创建表(建立模型) 查看表 删除 一.ORM 映射关系: 表名 <-------> 类名 字段 <-------> 属性 表记录 <------->类实例对象…
建议直接阅读末尾!!! Writing your first Django app, part 2 本节将设置数据库,创建您的第一个模型(model),并简单介绍Django自动生成的管理页面. 数据库设置 现在,打开mysite/settings.py.这是一个普通的Python模块,代表Django配置的模块级变量. 默认情况下,配置使用SQLite.如果你初涉数据库,或者只想尝试Django,这是最简单的选择.SQLlite包含在Python中,所以你不需要安装对数据库的支持.当您开始第一…
1. django 模型models 常用字段          1.models.AutoField 自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列 如果要显式的自定义一个自增列,必须设置primary_key=True.   2.models.CharField 字符串字段 必须设置max_length参数   3.models.BooleanField 布尔类型=tinyint(1) 不能为空,可添加Blank=True   4.models.ComaSepar…
Django 自学笔记兼学习教程第1章第2节--二 常用配置 点击查看教程总目录 新手建议简单浏览本文,不理解的建议跳过,不要强行理解. Django的设置涉及多个模块,需要了解Django的一些相关知识,才好理解每个设置是干什么用的, 建议在后面的章节中学过了相关的知识和概念,再回过头来看对应的设置. 1-初识settings.py: 项目的配置文件,可用于配置该项目的所有配置. 对于一个项目而言,很多配置新手是用不到的,也有很多配置不推荐更改. 这里主要给大家介绍一些常用的配置,同时也会简单…
ORM的多表创建(一对一.一对多,多对多): 1模型创建 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系(one-to-one) 出版商模型:出版商有名称,所在城市以及email. 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);一本书只应该由一个出版商…
ORM概念: MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是“对象-关系-映射”的简称. ORM之单表操作: 1.1 表的创建: from django.db import models # Create your models here. class Book(models.Model): id=m…
一.创建模型 例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一(one-to-one)的关系. 出版社模型:出版社有名称,所在城市以及email. 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多(many-to-many)的关联关系; 一本书只应该由一个出版社出版,所以出版社和书籍是一对多(one-t…
一.ORM简介       MTV或者MTV框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动. ORM(Object Relation Mapping)是“对象-关系-映射”的简称. 我们先来了解一下ORM扮演了一个什么角色,如上图,我们知道mysql是一个能够操作db/磁盘上数据的软件,python中想要操作磁盘数据时,它想到…
一 表关系回顾 在讲解MySQL时,我们提到,把应用程序的所有数据都放在一张表里是极不合理的. 比如我们开发一个员工管理系统,在数据库里只创建一张员工信息表,该表有四个字段:工号.姓名.部门名.部门职能描述,此时若公司有1万名员工,但只有3个部门,因为每一名员工后都需要跟着部门信息(部门名.部门职能),所以将会导致部门信息出现大量重复.浪费空间. 解决方法就是将数据存放于不同的表中,然后基于foreign key建立表之间的关联关系. 左表 <--------------------------…
一.多表查询 1.基于双下划线的跨表查询 Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系.要做跨关系查询,就使用两个下划线来链接模型(model)间关联字段的名称,直到最终链接到你想要的model 为止. 语法:正向查询按字段,反向查询按表名小写,用来告诉ORM引擎join哪张表. a.一对多查询 示例一:查询苹果出版社出版过的所有书籍的名字与价格 # 正向查询 按字段:publish queryResult=Book.ob…
一 ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql.oracle.Microsoft SQL Server等. 如果应用程序需要操作数据(比如将用户注册信息永久存放起来),那么我们需要在应用程序中编写原生sql语句,然后使用pymysql模块远程操作mysql数据库,详见图1 但是直接编写原生sql语句会存在两方面的问题,严重影响开发效率,如下 #1. sql语…
外键 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam.如果使用的是InnoDB引擎,是支持外键约束的. 外键的使用 使用外键前需要先确保相应外键已存储在数据库中(flask中会在你引用时自动保存相应外键). 如果想要引用另外一个app的模型,那么应该在传递to参数的时候,使用app.model_name进行指定. 如果模型的外键引用的是本身自己这个模型,那么to参数可以为'self',或者是这个模型的名字. 外键的删除 如果一个模型使用了外键.那么在对方那个模型被删掉后…
admin是django自带的后台管理,在初始的时候就默认配置好了 当输入ip地址的时候后面跟admin,就会登陆管理员的后台,这个是django自带的,可以快速管理数据表(增删改查) PS:ip地址后/admin就可以登陆,登录前要先创建一个超级用户的账号 菜单的tools - run manage.py task... 输入createsuperuser 根据提示创建,密码必须是8位不能纯数字   root/root123456 在admin.py文件夹内 from django.contr…
在每个Web请求中都提供一个 request.user 属性来表示当前用户.如果当前用户未登录,则该属性为AnonymousUser的一个实例,反之,则是一个User实例. 你可以通过is_authenticated()来区分,例如: if request.user.is_authenticated(): # Do something for authenticated users. else: # Do something for anonymous users. 登陆login login(…
尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6511177.html 完全翻译自官方文档 https://docs.djangoproject.com/en/1.10/intro/tutorial02/ 这章讲数据库相关 在settings.py的数据库配置中默认是使用sqllite,如果只是用来练手那么你不用修改数据库的配置 # Database # https://docs.djangoproject.com/en/1.10/re…
项目开端 参考的是mxonline项目 先把这两项完成 1.app设计 2.app的models的设计 经过分析系统有四个模块 users - 用户管理 course - 课程管理 oranization - 授课教师&授课机构 operation - 用户操作管理 一般系统都先设计用户模块, 把较为独立的模块也放在users模块 先设计user模块 - 用户详情里的字段有 image nick_name gender brith mobile address django默认自带用户表的字段无…
一.查询表记录 在学习查询表记录之前,先了解一下QuerySet,这是一种类似列表的数据类型,是由ORM创建的.我们学习查询表记录的方法时,一定要明确哪些方法返回了QuerySet类型,哪些方法返回model对象(一条表记录就是一个model对象)类型或者其他什么类型. 1.查询API <1> all():   查询所有结果,示例:Book.objects.all() 由objects管理器调用,返回值是QuerySet对象 <2> filter(**kwargs):   它包含了…
http://127.0.0.1:8000/boards/1/ http://127.0.0.1:8000/boards/2/ http://127.0.0.1:8000/boards/3/ http://127.0.0.1:8000/boards/1/new/http://127.0.0.1:8000/boards/2/new/ http://127.0.0.1:8000/boards/3/new/ 这是我们在前一个教程绘制的线框图.我现在意识到这个可能是一个不好的例子,因为这个特殊的表单涉及…