django框架学习-ORM

本文介绍了Django框架中的ORM操作,包括设计模型类、生成数据库表、建立表间关系、生成迁移文件及迁移过程。重点讲解了外键关系的设置和on_delete参数的用法,并提供了遇到问题时的解决方案。
摘要由CSDN通过智能技术生成
ORM
  • object:对象
  • relations:关系
  • mapping:映射
    在这里插入图片描述
    django内置ORM可以将对象和数据库表对应起来不需要使用SQL语句,通过类和对象对数据库进行操作。可以根据设计类生成数据库表。
设计模型类
生成数据库表

django默认配置的数据库是sqlite3
在这里插入图片描述

  1. 生成迁移文件
    python manage.py makemigrations
    执行上述命令在migrations目录下生成001-initial.py文件
# Generated by Django 3.0.3 on 2020-02-22 07:34

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='BookInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),   # 自动生成id主键
                ('title', models.CharField(max_length=32)),
                ('pubdate', models.DateField()),
            ],
        ),
    ]

记得在settings.py中添加app否则会报错:No changes detected

  1. 执行迁移生成表
    python manage.py migrate
  2. 进行数据库操作
from goods.models import BookInfo  # 引入对应app模型中的模型类
from datetime import date

b = BookInfo()  # 创建一个实例对象
b.pubdate = date(2020, 2, 2)  # 修改实例属性,属性名要和模型类中一致
b.title = '冠状病毒'
b.save()  # 提交更改,数据库表中会增加一条信息

b.title = '口罩'
b.save()  # 保存修改

# 查询信息
b1 = BookInfo.objects.get(id = 1)   # 输入查询条件
b1.title  # 显示查询内容

b1.delete()  # 删除数据
建立表间关系
# 建立表间关系
# 英雄人物类
class HeroInfo(models.Model):
    # 姓名
    hname = models.CharField(max_length=32)
    # 性别,性别为布尔型,默认值是False,代表男
    hgender = models.BooleanField(default=False)
    # 备注
    hcomment = models.CharField(max_length=128)
    # 建立和BookInfo之间的关系,设置外键
    hbook = models.ForeignKey('BookInfo', on_delete=models.CASCADE)  # 输入要关联模型类的类名

在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:
TypeError: init() missing 1 required positional argument: ‘on_delete’

on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
CASCADE:此值设置,是级联

Django是一个流行的高级Python Web框架,用于快速开发安全且可维护的Web应用程序。它以“ batteries included”为理念,提供了许多内置的功能和组件,如ORM(对象关系映射)、模板系统、认证系统和管理后台等,这使得开发者能够专注于业务逻辑而不是基础设施。 **学习Django的主要步骤包括:** 1. **安装和设置**:首先确保你已经安装了Python和pip,然后从官网下载并安装Django。 2. **基础知识**:了解Python基础语法、类和对象、数据类型、异常处理等。Django基于Python,所以Python基础至关重要。 3. **入门教程**:通过官方文档或在线教程开始,从创建第一个Django项目开始,理解项目的结构和组成部分。 4. **模型和数据库**:学习如何定义模型来映射数据库表,并使用Django ORM进行CRUD操作。 5. **视图和路由**:学习如何创建视图处理HTTP请求,以及如何配置URL路由。 6. **模板系统**:理解Django模板语言(Template Language)及其用法,用于生成HTML内容。 7. **认证和权限**:学会如何处理用户身份验证和授权。 8. **中间件**:深入理解如何扩展Django的行为和处理请求的生命周期。 9. **模板标签和过滤器**:掌握自定义模板表达式和数据处理技巧。 10. **部署**:学习将Django应用部署到生产环境,如Gunicorn和Nginx。 **相关问题--:** 1. Django的优点有哪些? 2. 在实际项目中,如何优化Django的性能? 3. 如何在Django中实现RESTful API?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值