#Models  模型

数据结构 + 算法 = 程序

---> URL ---> VIEW ---> Temple --->

DB:分类---关系

Teacher   Student

姓名  年龄  地址  course

DB

MongoDB

Redis

-------------------------------------

# Models 模型

- ORM

  -ObjectRelationMap: 把面向对象思想转换成关系数据库

  * 类对应表格

  * 类中的属性对用表中的字段

  *在应用中的models.py文件中定义class

  *所有需要使用ORM的class都必须是models.Model的子类

  *class中的所有属性对应表格中的字段

  *字段的类型都必须使用 models.xxx 不能使用python中的

  *在django中,Models负责跟数据库交互

- django链接数据库

  - 自带默认数据库Sqllite3

    - 关系型数据库

    - 轻量级

  - 建议开发用sqlite3,部署用mysql之类数据库

    -  切换数据库在settings中进行设置

      # django 链接 mysql

      DATABASES = [

        'default' = {

          'ENGINE' : 'django.db.backends.mysql',

          'NAME':'数据库名',

          ‘PASSWORD’:'数据库密码',

          ‘HOST’:'127.0.0.1',

          'PORT':'3306',

        }

      ]

    -  需要在项目文件下的__init__文件中导入pymysql包

    # 在主项目文件下的__init__文件中导入pymysql包

      ···

      # 在主项目的__init__文件中

      import pymysql

      pymysql.install_as_MySQLdb()

      ···

# models类的使用

- 定义和数据库表映射的类

  - 在应用中的models.py文件中定义class  

  - 所有需要使用ORM的class都必须是models.Model的子类

  -  class中的所有属性对应表格中的字段

  - 字段的类型都必须使用  modles.xxx 不能使用python中的类型

- 字段常用参数

  1、max_length:规定数值的最大长度

  2、blank:是否允许字段为空,默认不允许

  3、null:在DB中控制是否保存为null,默认为false

  4、default:默认值

  5、unique:唯一

  6、verbose_name:假名

- 数据库迁移

    1、在命令行中,生成数据迁移的语句(生成sql语句)

      ```

      python3 manage.py makemigrations

      ```

    2、在命令行中,输入数据迁移的指令

      ```

      python manage.py migrate

      ```

      ps:如果迁移中出现没有变化或者报错,可以尝试强制迁移

     

      ···

      # 强制迁移命令

      python3 manage.py makemigrations 应用名

      python3 manage.py migrate 应用名

      ```

3、对于默认数据库,为了避免出现混乱,如果数据库中没有数据,每次迁移前自带的sqlite3数据库删除

deactivate

activate

-

Python---Models 模型的更多相关文章

  1. python学习-- Django根据现有数据库,自动生成models模型文件

    Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...

  2. 转 Django根据现有数据库,自动生成models模型文件

    Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...

  3. Django models模型

    Django models模型 一. 所谓Django models模型,是指的对数据库的抽象模型,models在英文中的意思是模型,模板的意思,在这里的意思是通过models,将数据库的借口抽象成p ...

  4. python django模型内部类meta详细解释

    Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.下面对此作一总结: abstract      这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会相应 ...

  5. django的models模型类的常用数据类型和选项

    django框架的models模块ORM框架,能够让我们通过编写类的方式,帮助我们自动生成数据库表. 生成的数据库表名为 应用模块名称_类名 数据库表中字段名 如果我们没有在参数中指定,就是我们写的类 ...

  6. 玩转python主题模型程序库gensim

    gensim是python下一个极易上手的主题模型程序库(topic model),网址在:http://radimrehurek.com/gensim/index.html 安装过程较为繁琐,参考h ...

  7. models模型层

    ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装 MVC或者MTV框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需 ...

  8. <Django> MVT三大块之Models(模型)

    1.ORM(对象-关系-映射)---面向对象,不需要面向SQL语句 根据对象的类型生成表结构 将对象.列表的操作,转化成SQL语句 将SQL语句查询的结果转化成对象.列表 目的:实现数据模型与数据库的 ...

  9. python sklearn模型的保存

    使用python的机器学习包sklearn的时候,如果训练集是固定的,我们往往想要将一次训练的模型结果保存起来,以便下一次使用,这样能够避免每次运行时都要重新训练模型时的麻烦. 在python里面,有 ...

  10. pd的django To do list教程-----(2)models模型的建立

    1:在models.py中建表 from django.db import models class Tcontent(models.Model): content = models.CharFiel ...

随机推荐

  1. JavaScript入门学习笔记(JSON)

    JSON是JavaScript Object Notation的简称,是一种轻量级的数据交换格式. JSON使用JS的语法,但其格式只是一个文本,可以被任何编程语言读取病作为数据格式传递. JSON以 ...

  2. linux命令进阶

    Though unconsciously,peple are indeed moving towards their destination.Slow as the progress seen fro ...

  3. SpringBoot 请求参数后端校验

    1.例如: package com.model.user; import com.model.PageEntity;import lombok.Getter;import lombok.Setter; ...

  4. 【转】win10哪个版本最好用,推荐win10企业版LTSC

    https://msdn.itellyou.cn/ win10企业版LTSC又被称为win10企业版2019长期服务版本,这个版本小编认为是目前最好用的win10版本,在win10企业版2016长期服 ...

  5. openKM部署二次开发,eclipse环境

    1.下载openKM_install_forwin安装包,配置jdk环境,start openKM,访问localhost\OpenKM,用户:okmAdmin 密码:admin.查看是否启动成功.安 ...

  6. day18常用模块之re模块

    简单认识正则表达式 正则测试工具:http://tool.chinaz.com/regex/ 元字符,单个字符匹配 . 匹配除换行符以外的任意字符 \w 匹配字母数字下划线(word) \s 匹配任意 ...

  7. chattr和lsattr的基本用法

    lsattr filename  查看一个文件的属性 chattr filename  改变一个文件的属性 主要用途:实现文件的原有内容不允许改变,但可以增加新行,则需通过改变文件的属性来实现. ch ...

  8. JSONObject类的引用必须jar包

    JSONObject所必需的6个jar包: commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.5.jar c ...

  9. Linux中Buffer和Cache的区别

    1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而  Cache保存着CPU刚 ...

  10. day9面向对象,多线程2

    一.获取全部qq成员头像 import os,requests,pymongo class Qqgroup(object):#定义一个类 #定义获取QQ群的请求rul,抓包获取 group_rul = ...