python-django-04

 

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     实体完整性:确保每张表中的数据不能有重复的。数据表中的主键,是实现实体完整性的方式之一

 

posted on 2019-07-23 14:44  微子天明  阅读(142)  评论(0编辑  收藏  举报

导航