django模型系统一

Posted mmll0911

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django模型系统一相关的知识,希望对你有一定的参考价值。

 

 

 

 

 

 

 

 

 

 

一、复习

代码布局(代码放在哪里)

  • app目录下:必需放在app目录下
  • templatetags文件夹,不能写错一个字符
  • app必需注册

1.自定义过滤器

为什么(案例:男:1,女:0...怎么展示)

定义:过滤器就是一个函数。

--有1到2个参数

--第一个参数传进来的是模板变量。(过滤器必需依赖模板变量)

--第二个参数其他的参数

--return你想要显示的数据

注册过滤器:

from django.template import Library

register=Library() 这个变量名不能写错

方法一:register.filter(过滤器名)

方法二:@register.filter(name=取个名)

在模板上去使用:

--load模块:{%load模块名%}

--{{模板变量|过滤器:参数}}

技术图片

2.自定义标签

 --简单标签

作用:实现更复杂的逻辑

定义

简单标签也就是个普通的Python函数。

--有n个参数

--返回值就是你想要的数据

注册:

from django.template import Library

register=Library()

@register.simple_tag(name=取个名)

使用:

--load 模块

--{%标签 参数1,参数2 ...%}

使用上下文变量:

@register simple_tag(takes_context=True)

定义标签函数的时候,第一个参数必需命名为context,它就会被传入上下文变量的值。

--包含标签

......

二、模型基础

1.django ORM介绍

ORM:对象关系映射(用Python的概念表达数据库)

 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

 

2.数据库的配置(mysql)

先安装接口pymysql包

技术图片

修改项目目录下的__int__.py

技术图片

手动创建一个当前项目的空的数据库,准备一个有创建数据库权限的用户

 Navicat连接远程虚拟机:

技术图片

Navicat创建数据库

 技术图片

 

settings配置

技术图片

命令行创建数据库:

技术图片

技术图片

技术图片

3.模型的创建与映射

模型:

django.db.models.Model就是一个类

技术图片

模型定义在app文件夹下的models.py文件

技术图片

激活模型:

--注册应用(模型依赖注册,必需注册)

迁移:django中对数据库的操作,对数据库结构有任何改变,都叫迁移。

--创建迁移:只是告诉django,我们修改了模型,它不会操作数据库。

python manage.py  makemigrations appname  备注:app名不写,会迁移到所有的app中

技术图片

如果我们想看,我们的更改,会对数据库产生什么影响,我们可以看它大概会执行什么sql语句。

 python manage.py  sqlmigrate teacher 0001

技术图片

--执行迁移,操作数据库,将对模型的改动应用到数据库(实际上底层就是执行了sql语句)

python manage.py migrate appname   备注:app名不写,会作用到所有的app中未执行的迁移。在所有注册的app中所有的改动,全部映射到数据库。

技术图片

show tables

技术图片

模型映射到数据库中就是一张表,表名=appname_模型name    小写   如上图所示。

技术图片

执行上面的命令,到底干了什么?

--在app中查找迁移文件,并且去django_migrations表中查找,如果有未执行的迁移文件,就去执行它。

--执行了迁移生成的sql语句

--如果成功,会在django_migrations表中增加一条记录。

 技术图片

模型每次改变,都需要执行:python manage.py  makemigrations appname

技术图片

技术图片

技术图片

 

 

4.简单数据的增删改查

 django调试环境

python manage.py shell      备注:与普通的Python解释器无任何区别

技术图片

查:

技术图片

技术图片

技术图片

增:

技术图片

需要先保存,然后在查询,如下图:save()之后,查询后才有数据。

 技术图片

技术图片

方法二:直接创建

技术图片

技术图片

删:

技术图片

改:s.age=16,直接赋值。

技术图片

技术图片

查:

技术图片

查一条:

技术图片

get返回的是对象,如果返回了多值就会报错。

带条件查询:

技术图片

多条件查询:

技术图片

改多个:

技术图片

技术图片

技术图片

 

 全删:

技术图片

带条件的删除:

技术图片

 

以上是关于django模型系统一的主要内容,如果未能解决你的问题,请参考以下文章

Django框架-Django模型(models)系统

一 Django模型层简介

django:路由,模板,模型系统

django目录

Django框架

Django框架