一:orm介绍
就是对象关系映射,python当中的类能够对应到数据库当中的某一个表(一个类对应一个表),一个类的对象对应着数据库中的一条记录,类当中的某个字段对应着数据库当中表的字段,字段拥有不同的类型(可以是主键,可以为空等等),后面对应的东西又是一个类,类里面又可以传一些东西,来标注它是不是主键以及他的类型是什么 就目前来说,对我们最重要的是以下几点:
-views.py (视图函数) [最核心的文件都是在这里面写]
-models.py (对象关系的映射)
-urls.py (路由关系)
-其余的是对settings.py的配置 [简单关注一下]
二: 在 Navicat Premium 数据库中打开并查看保存的数据
  1.分别在这两个文件中修改一些个人数据信息,
    图1: 在 _init_.py 调用要使用的数据库
    图2: 在 settings.py 中修改用户信息和要使用的数据库
  如下图:
  2. 记录数据库的修改记录
  1)正常情况下在Terminal中输入: python3 manage.py makemigrations
  2)也可以在(如图)Tools --> run manage.py Task 敲命令 --> makemigrations 或者输入快捷键 Ctrl + Alt + R
 3)在命令行输入 migrations 后会在 migrations 文件夹里出现一个 0001_inital.py 文件,里面是一个记录数据库的修改记录,并没有吧数据同步到数据库里,文件内容是这个样子的,如图: 3. 同步记录到数据库
1)正常情况下在Terminal中输入: python3 manage.py migrate
2)同理,在Tools --> run manage.py Task 敲命令 --> migrate
3)在命令行输入 migrate 后会帮我们创建一些表,还有一些其他app的表,创建完成的表放在了 db.sqlite3 里面
4)打开方式:右边角点击(Database) --> 点击弹出的窗口左上角的小加号 --> 点击Data Source --> 点击Sqlite 进去后的界面如下图,完成三个步骤后点击OK, 即可,
这个是在PyCharm文件中打开的数据库,着重关注: migrations这个文件夹千万千万千万别删掉,虽然能找回来,但也会被老板骂死,如果数据较为庞大,就不能找回所有数据,所以,如果不小心删了,就...跑路吧 23333 4. 完成以上操作后打开 Navicat Premium 数据库,找到自己设置的文件名找到保存的表即可,注意:文件名不能重名,否则就打不开了,不要轻易修改表名,让它默认生成,好做区分 三: orm 能和不能干的事
  1. 能创建数据表,新增和修改,删除字段
    注意:
    1)以后要在数据库中进行增删改,一旦用了 orm 创建, 就都要在 orm 中创建,在数据库中修改只能改数据, 其它的字段,表,增删改等等,只能通过 orm 来处理
    2)数据传入之后不要急着运行,执行Tools命令后
  2. 不能创建数据库
四: id name password 介绍
id: id = models.AutoField(primary_key=True)
创建了这个类之后,如果数据库迁移,他就会在数据库里做出一个表,数据库当中的某一个字段还有一些属性,比如说它是什么类型的,可不可以为空,如果不把这些东西定义成一个类的对象的话,没有什么东西可以表达出 AutoField(primary_key=True) 的属性,所以定义了一个类,类里面可以传一些属性,来标志这个(AutoField)类 name: name = models.CharField(max_length)
这是一个字段, 第一AutoField是自增的,其次primary_key=True是一个主键,id对应了一个类的对象,CharField对应到数据库是一个varchar类型,它对应的长必须要传一个长度,不然就会报错 password: password = models.CharField(max_length=32)
同理创建password,这样只是创建一个表,已及写了这些字段,对数据库没有任何的影响,所以我们要进行数据库的迁移,这样才能把数据同步到数据库里
1) 连接mysql数据库,连接mysql数据库需要在settings中做一些配置,通过反射去settings中找DATDINE,在Django当中大量的运用到了反射和元类
2) 新建app没有在 _init_ 里面做配置,程序也能运行,但是到了程序迁徙就会报错,app如果没有注册,执行迁徙的命令就不行了,不知道你用哪个app创建的表查
 

Django day03 orm介绍的更多相关文章

  1. Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)

    Django中ORM介绍和字段及字段参数   Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...

  2. 6月20日 Django中ORM介绍和字段、字段参数、相关操作

    一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...

  3. Django中ORM介绍和字段及其参数

    ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...

  4. Django中ORM介绍

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  5. Django中ORM介绍和字段及字段参数

    Object Relational Mapping(ORM) 1 ORM介绍 1.1 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对 ...

  6. Django中ORM介绍和字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  7. Django中ORM介绍和字段

    ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...

  8. django的orm介绍以及静态文件介绍

    1 django中app的概念 大学:----------------- 项目 信息学院 ----------app01 物理学院-----------app02*强调:创建了app,要在配置文件中注 ...

  9. django中的ORM介绍和字段及字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

随机推荐

  1. servlet学习总结(一)——HttpServletRequest(转载)

    原文地址:http://www.cnblogs.com/xdp-gacl/p/3798347.html 一.HttpServletRequest介绍 HttpServletRequest对象代表客户端 ...

  2. strcmp 与 _tcscmp

    strcmp 用来比较ANSI字符串,而_tcscmp用来比较UNICODE(宽字符)的字符串.ANSI字符串中,1个英文字母为1个字节,1个中文字符为2个字节,遇到0字符表示字符串结束.而在UNIC ...

  3. apache配置多域名二级域名

    nginx配置多域名泛解析的看这个链接:https://www.cnblogs.com/Crazy-Liu/p/10879740.html 下面直接来操作: [root@localhost ~]# f ...

  4. JavaScript:一句代码输出重复字符串(字符串乘法)

    看到一个题目要求写一个函数times,输出str重复num次的字符串. 比如str:bac     num:3 输出:abcabcabc 除了利用循环还有几种方法,我学习研究之后记下以下三种方法. 1 ...

  5. 数据类型与变量(Python学习笔记01)

    数据类型与变量 Python 中的主要数据类型有 int(整数)/float(浮点数).字符串.布尔值.None.列表.元组.字典.集合等. None 每个语言都有一个专门的词来表示空,例如 Java ...

  6. 洛谷 3203 HNOI2010 BOUNCE 弹飞绵羊

    [题解] 这道题可以用Link-Cut Tree写.. 首先建立一个虚拟节点N+1,$i$与$N+1$连边表示$i$被弹飞了 对于修改操作,先$cut(i,min(n+1,i+k[i]))$,然后再$ ...

  7. 【[Offer收割]编程练习赛13 B】最大子矩阵(别人的思路)

    [题目链接]:http://hihocoder.com/problemset/problem/1502 [题意] [题解] 枚举矩形的最上面的行数和最下面的行数(i,j且i<=j); 然后一个变 ...

  8. elasticsearch match和match_phrase匹配原则(十)

    分词测试 分词后倒排索引结果:可以通过http://127.0.0.1:9200/_analyze 测试 { "analyzer":"ik_max_word", ...

  9. VNC Server Installation on CentOS 6.5

    In my case I have a fresh installed CentOS6.5 Server on which I will be installing the VNC-server so ...

  10. CTF中编码与加解密总结

    CTF中那些脑洞大开的编码和加密 转自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到 ...