zoukankan      html  css  js  c++  java
  • Django day03 orm介绍

    一: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创建的表查
     
  • 相关阅读:
    Mybatis框架学习_6_mapper.xml 文件中的输入参数详解 (paraterType)
    Mybatis框架学习_5_自定义类型转换器
    Mybatis框架学习_4_属性文件、全局参数、别名
    Mybatis框架学习_3_基于约定或动态代理实现增删改查
    Mybatis框架学习_2_增删改查的简单实现
    Mybatis框架学习_1_简介以及入门示例
    Linux 系统下启动命名的书写过程
    spring-boot-Web学习2-模板引擎 Thymeleaf
    spring-boot-Web学习1-简介
    MacBook无法开机问题
  • 原文地址:https://www.cnblogs.com/zedong/p/9917290.html
Copyright © 2011-2022 走看看