python-django-04
发布时间:2020-12-20 12:58:30 所属栏目:Python 来源:网络整理
导读:? python-django-04 ? 1 1 、模板 2 1 、变量(略) 3 2 、标签(略) 4 3 、过滤器(略) 5 4 、静态文件(略) 6 5 、模板的继承 7 1 、什么是模板的继承 8 当多个模板(网页)具备大部分相同的内容时,就可以使用继承的方式,将相同的内容继承过来,再增加/ 修改属
? python-django-04 ? 1 1、模板 2 1、变量(略) 3 2、标签(略) 4 3、过滤器(略) 5 4、静态文件(略) 6 5、模板的继承 7 1、什么是模板的继承 8 当多个模板(网页)具备大部分相同的内容时,就可以使用继承的方式,将相同的内容继承过来,再增加/修改属于自己的内容即可 9 2、模板继承的语法 10 1、在父模板中 11 增加{%block 名称%}...{%endblock%}标签 12 2、在子模板中 13 1、在最顶层第一句话增加 : 14 {%extends ‘父模板的名称‘%} 15 2、增加 block 标记,编写属于自己的内容 16 {%block 名称%} 17 属于子模板中自己的内容 18 {%endblock%} 19 2、模型 - Models 20 1、什么是模型 21 模型,就是根据数据库中数据表的结构而创建出来的class。数据库中的每一张表到编程语言中就是一个class。数据库表中的一个字段(列)可以被构建成class中的一个成员变量(属性)。并且在模型中,完成对数据的CRUD操作 22 C:Create 23 R:Retrieve 24 U:Update 25 D:Delete 26 2、创建 和 使用模型 - ORM 27 1、什么是ORM 28 ORM:Object Relational Mapping 29 简称:ORM,O/RM,O/R Mapping 30 中文为:对象关系映射 31 三大特征: 32 1、数据表 到 类(class) 的映射 33 允许将表自动生成 一个类 34 也允许将一个类自动生成一个表 35 2、数据类型的映射 36 允许将表中字段的类型自动生成到编程语言中对应的数据类型 37 也允许将编程语言中的数据类型生成数据库中对应的字段类型 38 3、关系映射 39 数据库中表的关联关系: 40 一对一,一对多(多对一),多对多 41
42 将表中的关联关系也映射到编程语言的class中,通过创建对象的关系来完成映射 43 2、ORM的优点 44 1、提高了开发效率,能够自动完成实体类到数据表的映射,可以省略庞大的数据访问层 45 2、不用SQL编码,就能完成对数据的CRUD操作 46 3、创建 和 配置数据库 47 1、创建数据库(支持中文) 48 create database webdb default charset utf8 collate utf8_general_ci 49 2、Django中数据库的配置 50 settings.py 中配置数据库的信息 51 DATABASES = { 52 ‘default‘:{ 53 ‘ENGINE‘:‘...‘, 54 ‘NAME‘:‘‘, 55 } 56 } 57
58 1、ENGINE :引擎 59 django.db.backends.mysql 60 2、NAME:要连接到的数据库的名称 61 3、USER:用户名称,通常为 root 62 4、PASSWORD:密码,123456
63 5、HOST:连接的主机,本机的话 localhost / 127.0.0.1 / 不写 64 6、PORT:端口,3306
65 4、数据库的同步操作 66 1、./manage.py makemigrations 67 作用:将每个应用下的models.py文件映射成一个数据库日志文件,并存放在 migrations 文件夹中 68 2、./manage.py migrate 69 作用:将每个应用下的migrations文件夹中的日志文件同步到 数据库中 70 5、编写Models 71 1、注意 72 1、Models中的每个class都称之为 模型类(Model) 或 实体类(Entry) 73 2、Models中的每个实体类,必须继承自models.Model 74 2、ex 75 models.py 76
77 from django.db import models 78 class Publisher(models.Model): 79 name = models.CharField(max_length=30) 80 address = models.CharField(max_length=50) 81 city = models.CharFiled(max_length=20) 82 country = models.CharField(max_length=20) 83 website = models.URLField() 84 6、Django提供的数据字段 以及 字段选项 85 1、数据字段(Field Types) 86 1、BooleanField() 87 2、CharField() 88 3、DateField() 89 4、DateTimeField() 90 5、FloatField() 91 6、FileField() 92 7、EmailField() 93 8、IntegerField() 94 9、ImageField() 95 10、URLField() 96 11、DecimalField() 97 2、字段选项(Field Options) 98 1、null :是否允许为空 99 name=models.CharField(max_length=30,null=True) 100 2、default :为该列设置默认值 101 name=models.CharField(max_length=30,default=‘匿名‘) 102 练习: 103 在 models.py 中追加2个class 104 1、Author - 作者 105 1、name , 106 2、age , 107 3、email , 108 2、Book - 图书 109 1、title 110 2、publication_date 111 7、数据的导入和导出(数据迁移) 以及 版本切换 112 1、版本切换 113 ./manage.py migrate 应用名称 版本号 114 ex: 115 ./manage.py migrate index 0001
116 2、数据库的导出 117 1、mysqldump -u root -p 数据库名 > 文件.sql 118 (导出所有的表结构 以及 数据) 119 2、mysqldump -u root -p -d 数据库名 > 文件.sql 120 (导出所有表结构,不导出数据) 121 3、数据库的导入 122 mysql -u root -p 数据库名 < 文件.sql 123 (要求数据库必须存在) 124 4、通过数据库自动导出Models 125 ./manage.py inspectdb > 文件.py 126
127 作业: 128 1、完善 login.html 和 register.html 129 2、根据 login.html 和 register.html 分析 天天果园项目中 用户表的信息 130 1、创建一个数据库 FruitDay 131 2、创建实体类 - models 132 ... ... 133 增加一个字段 :是否为活动用户 134
135
136
137
138
139
140 实体: 141 数据表中的一行记录,就是一个实体 142 实体完整性:确保每张表中的数据不能有重复的。数据表中的主键,是实现实体完整性的方式之一
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |