• ORM


    简单介绍ORM:

      对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 [1]。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。

    简单分析ORM的优缺点:

      优点:1.简单,不用自己写SQL语句

         2.开发效率高

      缺点:1.你需要记住ORM的特殊语法

            2.因为不是专业的SQL语句,相对于某些大佬的SQL语句,执行效率肯定有差距

    ORM中的对应关系:

      类——数据表

      对象——数据行

      属性——字段

    ORM能做的事:

      1.操作数据表——>创建表、删除表、修改表、操作models.py里面的类

      2.操作数据行——>数据的增删改查

      但是ORM不能创建数据库,需要事先自己手动创建数据库。

    使用Django的ORM详细步骤:

      1.自己手动创建数据库

        create database 数据库名;

      2.在Django项目中的settings.py里面设置连接数据库的相关配置(告诉Django连接哪一个数据库)

     1 # 与数据库相关的配置
     2 DATABASES = {
     3     'default': {
     4         # 连接数据库的类型
     5         'ENGINE': 'django.db.backends.mysql',
     6         # 连接数据库的地址
     7         'HOST':'127.0.0.1',
     8         # 连接数据库的端口
     9         'PORT':3306,
    10         # 数据库名称
    11         'NAME': 'day61',
    12         # 用户
    13         'USER':'root',
    14         # 密码
    15         'PASSWORD':'000000'
    16     }

      3.在__init__.py里面告诉Djiango用pymysql代替默认的MySQLDB连接MySQL数据库 

    1 import pymysql
    2 # 告诉django用pymysql来代替默认的mysqldb
    3 pymysql.install_as_MySQLdb()

      4.在app下面的models.py文件夹中定义一个类,这个类必须继承models.Model.

    1 from django.db import models
    2 
    3 # Create your models here.
    4 # ORM相关的只能写在这个文件里,写在其他文件的话django找不到
    5 
    6 class UserInfo(models.Model):
    7     id = models.AutoField(primary_key=True) # 创建一个自增的主键字段
    8     name = models.CharField(null=False,max_length=20) # 创建一个varchar(20)类型的不能为空的字段

      5.在终端执行两个命令

        注:每次在models.py对ORM语句修改后,都要执行以下这两个语句。

        (1)python manage.py makemigrations————这句相当于每次改动后,将改动保存到项目文件夹下的migrations中

        这里可能会遇到一个错误,解决办法请参见:    https://blog.csdn.net/weixin_33127753/article/details/89100552

        (2)python manage.py migrate————这句相当于把改动翻译成SQL语句,然后去数据库中执行

  • 相关阅读:
    Cheapest Palindrome(区间DP)
    Dividing coins (01背包)
    Cow Exhibition (01背包)
    Bone Collector II(01背包kth)
    饭卡(01背包)
    Charm Bracelet(01背包)
    Investment(完全背包)
    Bone Collector(01背包)
    Robberies(01背包)
    ACboy needs your help(分组背包)
  • 原文地址:https://www.cnblogs.com/missdx/p/11186930.html
Copyright © 2020-2023  润新知