• django ORM 数据库操作mysql,建表连库


    表与表之间的关系:

    一对多

    多对多

    一对一

    不依赖于别的表(有主动权的表)叫做主表

    django项目:

    第一步:models.py里写类和字段(相当于表);

    from django.db import models
    
    # Create your models here.
    
    class Book(models.Model): #必须继承models.Model这个类,jango才能识别Book是一张表
        name=models.CharField(max_length=20)#charfield字符串类型,长度20
        #price=models.FloatField()类似于float可以加上长度小鼠几位。。。
        price=models.IntegerField ()
        pub_date=models.DateField()

    第二部:终端terminal写语句,(migrations是应用文件夹下的第一个文件夹名称,自己可改)

    python manage.py makemigrations

    第三部:终端输入(这两句必须配合使用)

    python manage.py migrate

    第4部;点击templates文件夹下哪个新生成的数据库标识,在有上方出现新的页面点击加号选择数据库此处sqllit为例,点击它,新页面继续sqlite选择,没有就点击下载,然后把左边template文件夹里的数据库拖入右边新出现的sqlite双击新的db就可查看表,添加信息,

    删除:先删db,然后template里的数据库,然后migrations里的除了init另一个py文件

    连接mysql:

    第一步配置信息:settings里,把原来的databases替换

    DATABASES = {
    
        'default': {
    
            'ENGINE': 'django.db.backends.mysql', 
    
            'NAME': 'books',    #你的数据库名称
    
            'USER': 'root',   #你的数据库用户名
    
            'PASSWORD': '123', #你的数据库密码
    
            'HOST': '', #你的数据库主机,留空默认为localhost
    
            'PORT': '3306', #你的数据库端口
    
        }
    
    }

    models。py文件写入类

    class Book(models.Model): #必须继承models.Model这个类,jango才能识别Book是一张表
        name=models.CharField(max_length=20)#charfield字符串类型,长度20
        #price=models.FloatField()
        price=models.IntegerField ()
        pub_date=models.DateField()

    然后终端python manage.py makemigrations

     当出现 

    no module named MySQLdb 换驱动引擎
    NAME即数据库的名字,在mysql连接前该数据库必须已经创建,而上面的sqlite数据库下的db.sqlite3则是项目自动创建
    
    USER和PASSWORD分别是数据库的用户名和密码。
    
    设置完后,再启动我们的Django项目前,我们需要激活我们的mysql。
    
    然后,启动项目,会报错:no module named MySQLdb
    
    这是因为django默认你导入的驱动是MySQLdb,可是MySQLdb对于py3有很大问题,所以我们需要的驱动是PyMySQL
    
    所以,我们只需要找到项目名文件下的__init__,在里面写入:
    
    import pymysql
    pymysql.install_as_MySQLdb()
    
    问题解决!

    终端输入python manage.py migrate执行,

    mysql先前要建好库名,然后use 库名

    mysql输入数据库名,用户名密码,打开就有表了,

     
  • 相关阅读:
    发送xml请求数据,返回数据怎么获取
    laravel打印sql语句
    布隆过滤器-使用场景的思考
    sql性能优化
    JS Date.parse() 函数详解
    vuejs中的watch监听属性
    JS正则test()方法
    golang实现简单线程池
    golang map实现set
    golang init函数
  • 原文地址:https://www.cnblogs.com/wfl9310/p/9426163.html
Copyright © 2020-2023  润新知