Fork me on GitHub

Django笔记(三)

Django版本选择

  • pip install django==2.1

第四次说了,能用Python实现的东西,不要用其他语言

  • 1 python能做桌面软件 可以用C#
  • 2 python能做网站 虽然PHP也很厉害,但是PHP真的不行,效率太低
  • 3 python能做游戏 这个就算了,还是用C#
  • 4 python能做爬虫 Python最强的领域
  • 5 Python能做人工智能 Python最骄傲的领域
  • 6 Python能做数据分析

模型-Model

1 什么是模型

  • 模型,是根据数据库中的数据表的结构创建出来的class
  • 每一张表到编程中,就是一个class,表中的每一个列,到编程语言中就是class的一个属性
  • 在模型中,还可以完成对数据库的CURD操作

2 创建和使用模型 -ORM

1 什么是orm

  • ORM: object Relational Mapping

2 自增主键

  • 默认情况下Django会自动给所有model设置自增id,无需手动设置

3 字段描述名

  • 除 ForeignKey 、 ManyToManyField 和 OneToOneField 外,每个字段类型都接受一个可选的位置参数(第一个位置)——字段的描述名。 如果没有给定描述名,Django将根据字段的属性名称自动创建描述名——将属性名称的下划线替换成空格。
  • first_name = models.CharField("用户姓", max_length=30)

4 数据类型的映射

  • 允许将表中的字段的数据类型,自动映射成编程语言中对应的数据类型
  • 也允许将编程语言中的数据类型,自动映射成表中的字段的数据类型

5 关系映射

  • 在编程语言中允许将表与表之间的关系映射出来
  • 表与表之间的关系也可以自动映射到编程语言的class中

6 数据表中的关联关系

  • 一对一
  • 一对多
  • 多对多

ORM的优点

  • 1 提高了开发的效率,能够自动完成表到对象的映射
  • 2 不用SQL编码,也能够完成对数据的CRUD操作,可以省略庞大的数据访问层

创建和配置数据库

1 创建数据库(支持中文)

  • create database 数据库名 default charset utf8 collate utf8_general-cli

2 配置数据库

  • 在settings.py中配置数据库信息
  • DATABASES=…

3 连接MySQL配置如下

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_01',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': ''
    }
}
Python

编写模型类

案例

  • 创建一个Publisher模型类
  • 表示出版社信息并包含以下属性
    • name 表示出版社名称
    • address 表示出版社的地址
    • city 表示出版社所在城市
    • country 表示出版社所在国家
    • website 表示出版社的网址
class Publisher(models.Model):
    name=models.CharField(max_length=30)
    address=models.CharField(max_length=20)
    city=models.CharField(max_length=20)
    country=models.CharField(max_length=20)
    website=models.URLField()
    #与所有 CharField 子类一样, URLField 接受 max_length 可选参数. 如果没有特别指定 max_length 默认长度是200
Python

翻译成sql数据

CREATE TABLE `index_publisher` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  `address` varchar(20) NOT NULL,
  `city` varchar(20) NOT NULL,
  `country` varchar(20) NOT NULL,
  `website` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
posted @ 2019-03-11 11:05  seymourgao  阅读(112)  评论(0编辑  收藏  举报