• 通过ORM创建数据库链接


    通过ORM创建数据库链接

    第一步:

      手动创建数据库      

    第二步:

      配置数据库(告诉Django链接到那个数据库)

                 在settings.py文件里边进行配置

                    

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME':'mysite',              #数据库的库名
            'USER':'root',                 #用户名
            'PASSWORD':'123456',
            'HOST':'127.0.0.1',            #mysql数据库的IP
            'PORT':3306,                    #mysql数据库的端口
        }
    }
    

    第三步:

          在models.py文件中创建一个类

    from django.db import models
    
    # Create your models here.
    
    
    # 创建User类(数据表)
    class User(models.Model):
        id = models.AutoField(primary_key=True)      #自增  并设为主键
        username = models.CharField(max_length=64)    #设置变长  以及长度
        age = models.IntegerField()                    #设置整数型
    
        def __str__(self):
            return self.username
    
        class Meta:
            db_table = "user"
    
    
    #创建Book类
    
    class Book(models.Model):
        id = models.AutoField(primary_key=True)
        title = models.CharField(max_length=64,null=True)
        price = models.IntegerField()
    
    
        class Meta:
            db_table = "book"
    

      

    from django.db import models
    
    # Create your models here.
    
    
    # 创建了一个类(类名为Class)
    class Class(models.Model):
        # 设置一个ID属性   对应的是数据库里边的ID字段
        id = models.AutoField(primary_key=True)
        # 设置一个属性   对应的是数据库里边的字段
        cname = models.CharField(max_length=32)
    
        # 第一步   类和属性创建完成后执行makemigrations,  makemigrations作为创建数据库表的登记
        # 第二步    migrate  完成数据库表的创建
        def __str__(self):        
            self.cname
    #这个__str__的作用是美化打印出来的结果,使人类更方便查看。看下面例子,如果没有__st__方法,打印的结果是<__main__.Test object at 0x0000022D6D1387B8>格式,
    #有了__str__方法后,打印时会按照__str__定义的格式来打印,打印结果为Name:xiaoming。

    # 学生列表开始 class Student(models.Model): id = models.AutoField(primary_key=True) sname = models.CharField(max_length=16) # 通过外键来实现夸表查询 cid = models.ForeignKey(to="Class",to_field="id",related_name="students",on_delete=models.CASCADE) # 通过ORM内置语法把学生列表跟详细列表做一对一关联 detail = models.OneToOneField("StudentDetail",null=True,on_delete=models.CASCADE) #新建一个学生详细信息 class StudentDetail(models.Model): height = models.PositiveIntegerField() email = models.EmailField() memo = models.CharField(max_length=128,null=True)

      

    第四步:

         告诉Django用pymysql代替默认的MySQLdb:
    在主项目的__int__.py进行操作

    # 引入pymysql
    import pymysql
    
    # 用mysql作为我们的主数据库
    pymysql.install_as_MySQLdb()
    

     

    第五步:

                        发命令:

    第一步   类和属性创建完成后执行makemigrations, makemigrations作为创建数据库表的登记

    第二步 migrate 完成数据库表的创建

     

    总结 

      

    五个步骤,四部分

                                                            models.py --> Django翻译 -->pymysql -->MySQL (四部分)

  • 相关阅读:
    poj 2584 T-Shirt Gumbo (二分匹配)
    hdu 1757 A Simple Math Problem (乘法矩阵)
    矩阵之矩阵乘法(转载)
    poj 2239 Selecting Courses (二分匹配)
    hdu 3661 Assignments (贪心)
    hdu 1348 Wall (凸包)
    poj 2060 Taxi Cab Scheme (二分匹配)
    hdu 2202 最大三角形 (凸包)
    hdu 1577 WisKey的眼神 (数学几何)
    poj 1719 Shooting Contest (二分匹配)
  • 原文地址:https://www.cnblogs.com/mainstream/p/10988494.html
Copyright © 2020-2023  润新知