• django中模型


    • 一、django需要使用数据库,则需要安装对应的驱动,比如mysql,则需要安装mysqlclient驱动:

    pip install mysqlclient
    • 二、在settings.py文件中配置数据库连接信息:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'firstsite',
            'HOST': 'localhost',
            'USER': 'root',
            'PASSWORD': '123456',
            'PORT': '3306',
        }
    }
    # 要求在自己的mysql服务中,先创建好数据库名字为:firstsite,否则django无法创建表。没有创建的话,使用python manage.py migrate,结果如下图所示:

    •  django根据python中定义的类映射到数据库中的表,自动创建app对应的

    python manage.py migrate
    # migrate命令将遍历INSTALLED_APPS设置中的所有项目,在数据库中创建对应的表,并打印出每一条动作信息
    • 三、在模型文件models.py中创建数据库中表对应的实体类(在app目录下面的models.py文件中编写):

     

    from django.db import models
    
    
    # Create your models here.
    # python manage.py makemigrations polls
    
    
    class Question(models.Model):
        question_text = models.CharField(max_length=200)
        pub_date = models.DateTimeField('date published')
    
    
    class Choice(models.Model):
        question = models.ForeignKey(Question, on_delete=models.CASCADE)
        choice_text = models.CharField(max_length=200)
        votes = models.IntegerField(default=0)
    • 告诉django,启用自己的app:

    # Application definition,在配置文件settings.py中配置:
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'firstapp' #####################填写自己的app应用名称,上面这些是django自带的应用
    ]
    • 让django根据app中定义的实体类,到配置文件中配置的数据库去创建对应的表:

    #当然,如果数据库中已经存在相应的表了,就不会创建相同的表了,这里如果不指定firstapp,那么会创建该项目下面的所有应用的表。执行这个命令后会在对应的app根目录下面的migrations目录下生成移植文件
    python manage.py makemigrations firstapp

    运行结果如下:

     

     

    •  正式将firstapp应用中models.py中的类映射到数据库中的表:

    python manage.py migrate

     

    •  使用模型中类的api

    # 默认会提供类相应的操作api
    python manage.py shell
    • 创建超级管理员:

    python manage.py createsuperuser

     四、从数据库中获取数据:在视图函数中请求数据库中的数据

  • 相关阅读:
    树莓派4B
    SpringBoot 自定义 info Actuator 原理
    RestTemplate翻译serviceId过程
    ISA, ABI, API区别
    01.编译器结构
    【Git123】Git SSH Key支持多账号
    【消息中间件123】Solace PubSub+ Event Broker介绍
    【ETL123】
    【Http123】Http Timeout
    【性能123】Linux性能之“平均负载”
  • 原文地址:https://www.cnblogs.com/igoodful/p/11479356.html
Copyright © 2020-2023  润新知