Django-4.Model模型基础


一、数据库配置

1.ORM概念

定义:对象关系映射(Object Relational Mapping,简称ORM)
优势:不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。
在这里插入图片描述

2.模型映射关系

在这里插入图片描述

  • 模型类必须都写在app下的models.py文件中
  • 模型如果需要映射到数据库,所在的app必须被安装.
  • 一个数据表对应一个模型类,表中的字段,对应模型中的类属性.

3.数据库的配置

  • 1.在settings.py中配置DATABASES
    DATABASES = {
         
         
        'default': {
         
         
            'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
            'NAME': 'mydb',                        #数据库名称
            'USER': 'admin',                       # 链接数据库的用户名
            'PASSWORD':'qwe123',                   # 链接数据库的密码
            'HOST': '127.0.0.1',                   # mysql服务器的域名和ip地址
            'PORT': '3306',                        # mysql的一个端口号,默认是3306
        }
    }
    

在这里插入图片描述

  • 2._init_.py
    设置连接器为pymysql:
    在主目录下的的__init__.py文件添加下面两句
    import pymysql
    pymysql.install_as_MySQLdb()
    

二、模型的创建与映射

1.使用Django中的模型

在app下面的models.py中创建django的模型类.

代码如下:

from django.db import models

class User(models.Model):  #模型类名  对应表名
    id = models.AutoField(primary_key=True) #id 可以省略 会自动创建
    name = models.CharField(max_length=30)  #字符类型
    age = models.IntegerField()  #整数类型

    def __str__(self):  #使用查询方法时,数据的展示方式
        return "User<id={0}>,name={1},age={2}".format(self.id, self.name, self.age)

2.将模型类映射到数据库

  1. 首先执行以下命令,要创建映射文件
    - python manage.py makemigrations app_name
    - 命令后面可以跟app名称,表示指定对某个app的模型进行映射,没写所有的app都执行.
  2. 执行以下命令,将映射文件中的映射数据提交到数据库中
    - python manage.py migrate
    - 在执行前,保证我们创建模型的APP是已经注册过的APP
	(django_moran) [lemon@iZbp159egvvktszc82dr5xZ testPro]$ python manage.py makemigrations model_test

Migrations for 'model_test':
  model_test/migrations/0001_initial.py
    - Create model User

在这里插入图片描述
在这里插入图片描述
打开数据我们能看到创建的以app名_模型名的数据表,而其他的一些表格是django自动生成的.
注意:如果要删除表,那么可以去django模型中注释掉模型类,然后执行映射的命令,不要手动在命令行里面去删除.

3.数据的增删改查

3.1数据的增删改查----------增加数据

在视图函数中导入User模型类,然后使用下面的方法添加数据

def add_user(request):
    #方法一
    moran = User(name='wuyifan', age=43)
    moran.save()#保存上传
    return HttpResponse('数据添加成功')

    #方法二
    wufeng = User()
    wufeng.name = 'Tom'
    wufeng.age = 19
    wufeng.city = 'Shanghai'
    wufeng.save()
    return HttpResponse(f'数据{
     
     wufeng.name}添加成功!')

    #方法三
    User.objects.create(name='Siri', age=17, city='Shijiazhuang')
    return HttpResponse('数据添加成功!')


    #方法四
    User.objects.</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值