VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • django模型(1)

 

03-django模型(1)

 

一、内容回顾

  1、路由层

    a、简单使用

    b、有名分组

    c、路由分发

    d、反向解析

  2、视图层

    a、HttpRequest对象

      • 常用的属性
      • 常用方法

    b、HttpResponse对象

      响应三剑客

  3、模板层

    a、模板之变量

    b、模板之过滤器

    c、模板之标签

    d、自定制标签和过滤器

    e、模版继承

二、今日概要

  1、ORM简介

  2、单表操作

三、今日详细

  1、ORM简介

    对象关系映射(Object Relational Mapping,简称ORM)。

    简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

      ORM在业务逻辑层和数据库层之间充当了桥梁的作用。

    咱们通过一张图来介绍一下数据库与python代码之间的一个关系,请看下图:

    ORM的优点:

      • 不用写繁琐的SQL语句,用咱们熟悉的python代码,就能实现对数据的操作,提高开发效率;
      • 可以平滑的操作,切换数据库。

    ORM的缺点:

      • ORM代码转换为SQL语句时,需要花费一定的时间,执行效率会有所降低;

      • 长期写ORM代码,导致写SQL语句能力,会有所减弱。 

    如果想打印orm转换过程中的sql,需要在settings中进行如下配置:

 settings配置

  2、单表操作

    1、Django如何使用MySQL数据库

      接下来,咱们梳理一下django使用MySQL的流程:

        1、创建MySQL数据库。

          注意:ORM无法操作到数据库级别,只能操作到数据表。

1
create database book_demo default charset=utf8;  # 防止编码问题,指定为utf8.

        2、在settings.py里设置

1
2
3
4
5
6
7
8
9
10
11
# settings.py配置文件
DATABASES = {
    'default': {
        'ENGINE''django.db.backends.mysql',
        'NAME''数据库名',
        'HOST''数据库IP地址',
        'PORT'3306,
        'USER''root',
        'PASSWORD': '',
    }
}

        3、告诉Django使用pymysql模块连接mysql数据库

1
2
3
# 在与settings.py同级目录下的__init__.py中
import pymysql
pymysql.install_as_MySQLdb()

        4、创建模型(在models.py中写类)

class Book(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=32)  # 书籍名称
    price = models.DecimalField(max_digits=5, decimal_places=2)  # 书籍价格
    publisher = models.CharField(max_length=32)  # 出版社名称
    pub_date = models.DateField()  # 出版时间

        扩展:更多字段和参数

          每个字段有一些特有的参数,例如,CharField需要max_length参数来指定VARCHAR数据库字段的大小。还有一些适用于所有字段的通用参数。 这些参数在文档中有详细定义,这里我们只简单介绍一些最常用的:

        更多字段:

        更多参数:

        5、执行数据量迁移的命令

1
2
python manage.py  makemigrations  # 把models.py的变更记录记录下来
python manage.py  migrate  # 把变更记录的操作同步到数据库中

        注意:如果报错如下:

1
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

相关教程