借助 Django ORM,让操作数据库如此简单!

一、场景:

1.数据库已存在,如何自动生成models.py?

2.SQL不熟,如何操作不熟悉的数据库,如Oracle、Greenplum?

3.借助Django ORM 模型,让操作数据库如此简单!

二、操作流程

0.设已存在MySQL数据库 jing_dong,对SQL不熟的你,想通过ORM操作复杂SQL

 

1.创建一个新的Django工程

 

2.在settings.py文件中配置数据为jing_dong,如:

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # }
    # 配置Mysql
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',  # 数据库主机
        'PORT': 3306,  # 数据库端口
        'USER': 'root',  # 数据库用户名
        'PASSWORD': 'root',  # 数据库用户密码
        'NAME': 'jing_dong'  # 数据库名字
    }
}

 

3.根据数据库自动生成模型 python manage.py inspectdb > models.py

 

4.创建子应用视图测试:

from django.http import HttpResponse
from users.models import Goods


# http://127.0.0.1:8000/users/index/
def index(request):
    good_list = Goods.objects.all()
    goods = []
    for good in good_list:
        good_dict = {}
        good_dict['id_'] = good.id
        good_dict['name'] = good.name
        goods.append(good_dict)

    return HttpResponse(f'{goods}')

 

5.浏览器访问效果:

 

参考资料:https://www.cnblogs.com/smiling-crying/p/9237452.html

1.python manage.py inspectdb # 可查看生成的models语句

2.python manage.py inspectdb > models.py # 将框架自动生成的models导入到文件

3.删除meta class中的managed = Flase,让Django对数据库进行管理
class User(BaseModel):
    """用户表"""
    id = models.BigAutoField(primary_key=True)
    name = models.CharField(max_length=255, verbose_name='用户名')
    pwd = models.CharField(max_length=255, verbose_name='密码')
    content_user = models.CharField(max_length=255)
    content_phone = models.CharField(max_length=255)
    content_mail = models.CharField(max_length=255)
    content_address = models.CharField(max_length=255)
    type = models.IntegerField(verbose_name='type:0 广告主,1 流量主,2 管理员')
    uid = models.BigIntegerField(verbose_name='操作者id')
    session_key = models.CharField(max_length=64, blank=True, null=True)
    session_key2 = models.CharField(max_length=64, blank=True, null=True)
    session_expire_date = models.DateTimeField(blank=True, null=True, verbose_name='session过期日期')

    class Meta:
        managed = False  # 删除此行,让Django对数据库进行管理
        db_table = 'user'
        verbose_name = '用户'
        verbose_name_plural = verbose_name
4.python manage.py migrate

5.进入shell环境进行测试:python manage.py shell,发现一切OK

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值