0
点赞
收藏
分享

微信扫一扫

李宏毅-注意力机制详解

目录

1 什么是ORM

1.1 ORM优势

1.2ORM 劣势

1.3 ORM与数据库的关系

2 ORM

2.1 作用

2.2 连接数据库

2.3 表操作--设置字段

2.4 数据库的迁移

写路由+增删改查操作

项目里的urls.py:

app里的views.py:

注意点:


1 什么是ORM

ORM中文---对象-关系映射

在MTV,MVC设计模式当中,在model模块当中都包含ORM.

1.1 ORM优势

  • 只需要面向对象编程,不需要面向数据库编写代码

    • 对数据库的操作都可以转化成类属性,类方法

    • 不用编写SQL语句

  • 实现了数据模型与数据库的解耦,还屏蔽了不同数据库操作上的差异

    • 不再关注使用的是MySQL oracle....(相同代码可以操作不同的数据库)一对多

    • 通过简单的代码配置,轻松跟换数据库,不需要频繁修改代码

1.2ORM 劣势

  • 对比直接使用SQL语句,有一些性能上的损失.(因为一对多了...)

  • 根据代码的执行,将结果转化成对象,在映射过程当中存在性能的损失

1.3 ORM与数据库的关系

  • 在Django当中,model是数据单一,明确的来源,存储了数据的一些重要的字段和行为


2 ORM

2.1 作用

2.2 连接数据库

项目的setting.py:

--替换一下-->


2.3 表操作--设置字段

每个APP都有自己的moudle.py:


2.4 数据库的迁移

  • 确保app已经注册

    python manage.py makemigrations
    
    python manage.py migrate

    --执行命令后,数据表注册成功.

  • 表字段的增加(添加新字段后,再执行命令.)

    • 手动输入一个默认值

    • 给定默认值 defaule=10

    • 允许为空

写路由+增删改查操作

项目里的urls.py:
from django.contrib import admin
from django.urls import path
from project_one import views

urlpatterns = [
    path('', views.orm_demo),
]
app里的views.py:
from django.shortcuts import render, HttpResponse
from project_one.models import DemoText


def orm_demo(request):
    # 增加数据 insert into xxx(xxx) values(xxx)
    # DemoText.objects.create(name="张三", sex="男", age=18, love="篮球")
    # DemoText.objects.create(name="李四", sex="女", age=17, love="唱歌")
    # DemoText.objects.create(name="王五", sex="男", age=19, love="跳舞")
    # DemoText.objects.create(name="赵六", sex="女", age=21, love="游戏")

    # 删除数据
    # DemoText.objects.all().delete()
    # DemoText.objects.filter(id=6).delete()
    # 查看数据
    # data_list = DemoText.objects.all()
    # for data in data_list:
    #     print(data.id, data.name, data.love, data.age)
    # data = DemoText.objects.filter(id=8).first()
    # print(data)
    # print(data.name)

    # 修改数据
    # DemoText.objects.all().update(age=20)
    DemoText.objects.filter(id=10).update(name="坤哥", age=19)

    return HttpResponse("操作成功")

注意点:

生成的数据库全都是一模一样的,所以最好不要用同一个数据库.

(不然注册迁移数据库的时候会重复生成,报错等等)

一个项目最好对应一个数据库.


举报

相关推荐

0 条评论