zoukankan      html  css  js  c++  java
  • dango models and database ---- verbose name

    一、django 自带ORM

      1、在django中用models.Mode来描述一张数据库中的表、而列用models.*Field来描述列

    from django.db import models
    
    # Create your models here.
    
    class Person(models.Model):
        name=models.CharField("person's name",max_length=30)
    
    # 定义一张叫person 的表、表中包涵一个叫name的列;
    # django默认会为每一个表加上一个主键,主键名为id

      2、这张表在mysql数据端看起来是这样的

    CREATE TABLE `sitea_person` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(30) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- mysql数据库端的表

      3、由django的官方文档中所说、列的构造函数中的第一个参数表示的是verbose name 、但是这个verbose name 并没有体现到数据端

      目前尚不知道这个verbose name 在哪里用!

      4、目前django还不支持联合索引、但是普通索引可以这样建

    from django.db import models
    
    # Create your models here.
    
    class Person(models.Model):
        name=models.CharField("person's name",max_length=30,db_index=True)
    
    # db_index=True 就会在这个列上建立索引

      5、数据库端可以看到如下表结构

     CREATE TABLE `sitea_person` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(30) NOT NULL,
      PRIMARY KEY (`id`),
      KEY `sitea_person_name_768c043b` (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- 已经为name 增加了索引

    ----

  • 相关阅读:
    故障分析 | 全局读锁一直没有释放,发生了什么?
    日常笔记
    BCC观测工具的使用
    wireshark的应用
    SQL基础之实现累加值
    SQL查询语句使用rand()的执行效率与优化
    MySQL主从复制相关问题
    LVM不停机扩容
    gtid跳过错误的方法
    IO诊断文档
  • 原文地址:https://www.cnblogs.com/JiangLe/p/6908275.html
Copyright © 2011-2022 走看看