欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作

Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作

2024/10/24 11:11:58 来源:https://blog.csdn.net/m0_48173416/article/details/139331826  浏览:    关键词:Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作

在这里插入图片描述

系列文章目录

  • Django入门全攻略:从零搭建你的第一个Web项目
  • Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作
  • [Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解]
  • 还在写0.0…

文章目录

  • 系列文章目录
  • 前言
  • 一、ORM映射
    • 1.1 ORM映射概念
      • ORM(object relational mapping) :对象关系映射
            • ORM映射是双向的:既可以将类映射成表,也可以将表映射成类
    • 1.2 创建编写模型类及迁移步骤
    • 1.3 模型类编写
    • 1.4 生成迁移文件
    • 1.5 执行迁移
  • 二、admin控制台
    • 2.1 admin控制台概念
    • 2.2 admin控制台超级用户
    • 2.3 admin控制台模型类注册
  • 三、ORM视图操作
    • 3.1 如何通过ORM操作模型类
    • 3.2 模版页面数据渲染ORM操作结果


前言

    Django的ORM是Python开发者的利器,它简化了数据库操作,让编码更加高效和直观。本文将带你快速了解ORM的基本概念,指导你创建模型类、执行迁移、利用admin控制台,并探索ORM的视图操作。


一、ORM映射

1.1 ORM映射概念

ORM(object relational mapping) :对象关系映射

在这里插入图片描述

ORM映射是双向的:既可以将类映射成表,也可以将表映射成类

1.2 创建编写模型类及迁移步骤

1. 创建模型类,在models.py中创建类
2. 自定义类,需要继承models.Model
3. 自定义属性
4. 需要添加Meta()元类,指定当前类迁移完成后,在数据库表中的名字
5. 执行生成迁移文件的命令:`python manage.py makemigrations`
6. 执行具体迁移操作:`python manage.py migrate`
7. 打开pycharm中Database选项,找到sqlite选项,选择项目中的数据库文件

1.3 模型类编写

通过ORM映射在子应用app下的models.py文件中创建模型类:

#myapp/models.py
from django.db import models
# Create your models here.
class Weather(models.Model):weather = models.CharField(max_length=100,verbose_name="天气")def __str__(self):return self.weatherclass Meta:db_table='修改'verbose_name_plural = "天气"# 设置当前表名的一个可读的性更好的名字

    在这里我们使用到了 django 的ORM映射关系用来创建数据库表,继承自models.Model类,一个类用来表示一张表,类中的一个属性代表一个字段。

  • 当某个子应用APP涉及到了数据库的使用时,要记得在settings文件中进行配置
#myproject/settings.py
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','myapp',
]

1.4 生成迁移文件

接下来通过manage.py命令行管理工具提供的两条,创建我们所需要的数据

python manage.py makemigrations # 创建数据库迁移文件

1.5 执行迁移

python manage.py migrate # 根据数据库迁移文件生成对应 SQL 语句并执行

二、admin控制台

2.1 admin控制台概念

admin控制台是 django 为我们提供的一个非常便捷的用来管理数据库的界面,
主路由文件下,它对应的路由设置path('admin/', admin.site.urls)

在这里插入图片描述

2.2 admin控制台超级用户

  • 创建admin超级用户,使用manage.py命令行工具执行如下命令并按照提示创建即可
  • python manage.py createsuperuser

登录进入后:
在这里插入图片描述
并没有出现迁移后的表,这就要对模型类进行 注册

2.3 admin控制台模型类注册

app下的admin.py文件中进行模型类的注册:

#myapp/admin.py
from django.contrib import admin
from myapp import models
admin.site.register(models.Weather)
#使用 register 函数接收模型类作为参数即可完成注册

注册完成,刷新页面即可看到weather表


三、ORM视图操作

    最后,在视图中进行数据库操作,获取数据库中的数据来渲染到页面上,修改之前所编写的视图,并使用ORM的数据库操作获取数据

3.1 如何通过ORM操作模型类

# myapp/views.py
from django.shortcuts import render
from myapp import modelsdef index(request):#使用**all**方法,获取某表中的所有数据weathers = models.Weather.objects.all()content = {"weathers": weathers,}return render(request, 'index.html', content)

3.2 模版页面数据渲染ORM操作结果

<!DOCTYPE html>
<html lang="en">{% load staticfiles %}
<head><meta charset="UTF-8"><title>hi</title>
</head>
<body>{% for weather in weathers %}<p>{{ weather }}</p>{% empty %}<p>没有任何天气</p>{% endfor %}
</body>
</html>

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com