#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. 什么是内部类? Static Nested Class 和 Inner Class 的不同。

    什么是内部类? Static Nested Class 和 Inner Class 的不同.        内部类就是在一个类的内部定义的类,内部类中不能定义静态成员(静态成员不是对象的特性,只是为了 ...

  2. Jmeter_24个常用函数

    JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示:${__functionName(var1 ...

  3. 一条很用的MSSQL语句

    select *,ActionName= stuff((select ',' + ActionName from Sys_Action_Table where ModuleId = Sys_Modul ...

  4. Cordova IOT Lesson002

    hello index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...

  5. git操作:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (警告:远程主机标识已更改!)

    问题背景: 前几日,把云服务器系统由centos改成Ubuntu之后,重新搭建的git服务器环境. 问题描述: 从本机不能clone远程git仓库. 报错如下: @@@@@@@@@@@@@@@@@@@ ...

  6. Mybatis内批量插入Oracle

    <insert id="insertManagerInfoBatch" parameterType="java.util.List"> <se ...

  7. 20172328 2018-2019《Java软件结构与数据结构》第一周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第一周学习总结 概述 Generalization 本周学习了软件质量.数据结构以及算法分析的具体内容,主要依托于所用教材 ...

  8. C# 错误集锦

    ①字段重复 js → qs  仔细 ② 代码臃肿 通过判断 资产类型zc_type来判断模块的显隐 实际在其中嵌入 <%=zc_type == "2"?"" ...

  9. Spark环境搭建(四)-----------数据仓库Hive环境搭建

    Hive产生背景 1)MapReduce的编程不便,需通过Java语言等编写程序 2) HDFS上的文缺失Schema(在数据库中的表名列名等),方便开发者通过SQL的方式处理结构化的数据,而不需要J ...

  10. Nikita and string [思维-暴力] ACM

    codeforces Nikita and string time limit per test   2 seconds memory limit per test   256 megabytes O ...