zoukankan      html  css  js  c++  java
  • 通过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 (四部分)

  • 相关阅读:
    MMORPG programming in Silverlight Tutorial (1)Animate the object (Part I)
    MMORPG programming in Silverlight Tutorial (2)Animate the object (Part II)
    算法大全(2)栈和队列
    .NET 4 并行(多核)编程系列之二 从Task开始
    [原创].NET 分布式架构开发实战之二 草稿设计
    .NET 4 并行(多核)编程系列之一入门介绍
    .NET 4 并行(多核)编程系列之三 从Task的取消
    .NET 4 并行(多核)编程系列之四 Task的休眠
    [原创].NET 分布式架构开发实战五 Framework改进篇
    [原创].NET 分布式架构开发实战之三 数据访问深入一点的思考
  • 原文地址:https://www.cnblogs.com/mainstream/p/10988494.html
Copyright © 2011-2022 走看看