zoukankan      html  css  js  c++  java
  • 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输入数据库名,用户名密码,打开就有表了,

     
  • 相关阅读:
    四则运算
    Git工具学习整理
    java拦截器中使用的动态代理
    Java动态代理
    Git常用命令
    Maven学习
    ruby调用jenkins API使用
    c#认证考试第四章(国庆作业及其总结)
    C#认证考试第三章
    c#认证考试练习题目
  • 原文地址:https://www.cnblogs.com/wfl9310/p/9426163.html
Copyright © 2011-2022 走看看